Skip to content

Configuration Reference

Tarsk stores settings in a local SQLite database and uses markdown files for agent configuration. This reference covers every configuration surface.

Tarsk stores its database and managed workspace folders under the application support directory:

PlatformDefault path
macOS~/Library/Application Support/Tarsk/
Linux / Windows (CLI)Same path under your home directory

Use TARSK_APP_SUPPORT_DIR to change the application support root, or --data-dir / TARSK_DATA_DIR to change the data directory. Use --assets-dir / TARSK_ASSETS_DIR for companion assets; this does not move application data.

VariableDescription
TARSK_APP_SUPPORT_DIRRoot application support directory
TARSK_DATA_DIRData directory (defaults to <appSupport>/data)
TARSK_ASSETS_DIRCompanion assets next to the compiled server binary

Contents:

File / DirectoryPurpose
data/tarsk.dbSQLite database (projects, threads, settings, conversation history)
data/{repo-slug}/Managed clones or copies (numeric suffix on conflict)
port.jsonActive server port (written on server start)

Tarsk stores provider API keys, enabled models, and onboarding state in the database. It also mirrors provider keys to .env in the server’s working directory. The frontend stores appearance preferences in browser local storage. Tarsk stores the server bind mode in data/server-bind-mode.json.

Tarsk uses .agents/ directories for skills, rules, commands, subagents, and MCP configuration. Write skills, rules, commands, and subagents as Markdown files with YAML frontmatter. Use JSON for MCP configuration.

ItemGlobal (all projects)Project-level (per repo)
Skills~/.agents/skills/<threadPath>/.agents/skills/
Rules~/.agents/rules/<threadPath>/.agents/rules/
Slash Commands~/.agents/commands/<threadPath>/.agents/commands/
Subagents~/.agents/agents/<threadPath>/.agents/agents/
MCP ConfigNone (project-level only).agents/mcp.json or mcp.json
AGENTS.mdNot exposed in SettingsSelected thread root (AGENTS.md)

Project-level files override global files with the same name.

---
name: my-skill
description: What this skill does (shown in the skill catalog)
license: MIT
compatibility: Node.js 18+
allowed-tools: Bash(git *)
when_to_use: Guidance on when to use this skill
disable-model-invocation: false
---
FieldRequiredDescription
nameYesMust match directory name. 1-64 lowercase letters, digits, or hyphens; no leading, trailing, or consecutive hyphens
descriptionYesDescription in the model’s skill catalog (1-1024 chars)
licenseNoLicense identifier
compatibilityNoSystem requirements text
allowed-toolsNoRestricts which tools and shell commands the skill can use
when_to_useNoUsage guidance in the model’s skill catalog
disable-model-invocationNoWhen true, only activates via explicit /skill-name
---
description: What this rule enforces
alwaysApply: false
---
FieldRequiredDescription
descriptionNoTells the agent when to consult the rule
alwaysApplyNotrue = full content always in context; false = on-demand

The rule name is derived from the filename (e.g. coding-standards.md becomes coding-standards).

---
description: What this command does
argument-hint: focus area
mode: plan
---
FieldRequiredDescription
descriptionNoDescription in the autocomplete dropdown
argument-hintNoPlaceholder text for user input after the command name
modeNoplan, ralph, or orchestrate (activates that chat mode when the command runs)
actionNoInternal metadata for built-in commands; the Markdown parser ignores this field
---
name: code-reviewer
description: Review code for quality
tools: read grep
agents: [security-auditor]
model: gemini-2.5-flash
provider: google
user-invocable: true
disable-model-invocation: false
---
FieldRequiredDescription
nameYesMust match directory name
descriptionYesShown in the agent picker
toolsNoSpace-separated list of allowed tools
agentsNoParsed metadata; does not restrict nested invocation
modelNoModel override for this agent
providerNoProvider override for this agent
user-invocableNoParsed metadata; does not control invocation
disable-model-invocationNoExclude from the model’s subagent catalog and tool (default: false)

MCP servers are configured in .agents/mcp.json (preferred) or mcp.json (fallback) at the project root. Both servers and mcpServers root keys are accepted.

{
"servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"],
"env": {
"ALLOWED_DIRECTORIES": "/Users/username/projects"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/db"
}
}
}
}
{
"servers": {
"zapier": {
"url": "https://mcp.zapier.com/api/v1/connect?token=YOUR_TOKEN",
"transport": "streamableHttp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
FieldTypeRequiredDescription
commandstringFor stdioCommand to start a local server
argsstring[]For stdioCommand arguments; use [] for none
urlstringFor remoteRemote server URL (SSE or Streamable HTTP)
transportstringNo"sse" or "streamableHttp"
headersobjectNoHTTP headers for remote requests
envobjectNoEnvironment variables for the local stdio process
timeoutnumberNoAccepted in configuration; the MCP client does not apply it
VariableDescription
PORTServer port in normal mode (default: 641). Ignored when --debug is set.
MODESet to development for dev server behavior (used by cli web script)
LOCAL_API_URLOverride the Local provider API URL (default: http://127.0.0.1:8000/v1)
LOCAL_API_KEYAPI key for the Local provider
TARSK_DEBUGSet to 1 for extra debug logging (disabled during tests)
TARSK_MICROCOMPACTSet to false to disable microcompact token compression
TARSK_SUPERSESSION_PRUNINGSet to false to keep superseded tool results in model request context
TARSK_CONTENT_ADDRESSED_OBSERVATIONSSet to false to disable content-addressed tool observations
MCP_OAUTH_CALLBACK_PORTPort for MCP OAuth callback (auto-selected if unset)
BETTERSTACK_SOURCE_TOKENBetter Stack log source token (with BETTERSTACK_INGESTING_HOST)
BETTERSTACK_INGESTING_HOSTBetter Stack ingest host — allowlisted (in.logs.betterstack.com or *.betterstack.com / *.betterstackdata.com), paired with BETTERSTACK_SOURCE_TOKEN
FlagDescription
--serverStart the API server only (do not open a browser tab)
--debugEnable verbose logging
--data-dirOverride the data directory
--assets-dirOverride companion assets path
--portServer port (sets PORT)
--openOpen the browser even when --server is set

Debug mode runs the server on port 462 instead of 641.

Missing API keys: Configure provider keys in Settings > Providers. Tarsk stores keys in the database and mirrors keys with a provider environment variable to .env in the server’s working directory.

Debug logs: Run with npx tarsk --debug, or enable Logging in Settings → Settings, to raise log verbosity. View recent entries in Settings → Logs.

Reset onboarding: Triple-click the Settings item in the settings sidebar to re-run the onboarding wizard.