Skip to content

Configuration

Where the app's settings live: the in-app panes for everyday preferences, and the layered JSON config for the agent, sync accounts, and model providers.

Nothing here is required
A local task list needs no configuration at all. The agent and the sync integrations are opt-in, and each one asks for credentials the first time you use it.

In-app settings

Preferences are edited in the app rather than in a file. Each of these is a pane of its own:

  • Settings — application-level preferences.
  • Tag settings — per-tag behavior for the tag tree.
  • Integrations — the connected accounts: Todoist and GitHub.
  • Automations — the semi-automated workflows a task can carry.
  • Mini-apps — the panels that manage their own slice of your lists, such as travel checklists.

Agent providers and models

The agent pane and agent-cli share one configuration, a layered JSON file merged in this order — later wins:

  1. built-in defaults
  2. ~/.abstract/config.json — your global settings
  3. .abstract/config.json — per-project settings
  4. ABSTRACT_* environment variables
  5. CLI flags

Providers are OpenAI-compatible and come with sensible defaults, so the common case is picking one and supplying a key. Override or add a provider under providers; only set the fields you want to change.

.abstract/config.json
 1  {
 2    "provider": "auto",
 3    "model": "auto",
 4    "max_turns": 50,
 5  
 6    "providers": {
 7      "openrouter": {
 8        "base_url": "https://openrouter.ai/api/v1",
 9        "api_key": "env:OPENROUTER_API_KEY",
10        "models": ["openrouter/free"]
11      }
12    },
13  
14    "combos": {
15      "coding": [
16        ["poolside", "poolside/laguna-xs-2.1"],
17        ["openrouter", "openrouter/free"]
18      ]
19    }
20  }

An api_key takes one of three forms:

FormMeaning
!commandRuns the rest as a shell command and uses its trimmed stdout as the key.
env:VARReads the environment variable VAR.
anything elseTreated as a literal key.

A combo is a named list of provider/model pairs that shows up in the model picker as a single choice. It runs on its first entry and, if that fails before producing any output (a provider error or a rate limit), retries on the next one. Because the retry only happens before any output, work is never duplicated.

Environment variables override the file, which is handy for shells and CI:

VariableOverrides
ABSTRACT_MODELmodel
ABSTRACT_PROVIDERprovider
ABSTRACT_EFFORTeffort
ABSTRACT_THEMEtheme
ABSTRACT_MAX_TURNSmax_turns
<PROVIDER>_API_KEYa provider key, via its env: spec

The complete provider, model, and environment-variable reference is in apps/agent-cli/README.md.

Todoist

Add your Todoist account in the integrations pane to turn on two-way sync. Once connected, the app imports your projects and tasks and keeps changes flowing in both directions; you keep working wherever you prefer, and the local database stays authoritative when the network is not there.

How the mapping works, and exactly which fields are pushed today, is on the integrations page.

GitHub

GitHub issues and projects sync is in preview. preview Authenticate from the integrations pane; the app then maps issues and projects onto your lists, and the coding workflow can use a real checkout for its git-backed stages.

Going deeper

Tool servers, lifecycle hooks, and proxies are configured in the same JSON file — those, plus the Agent Client Protocol that connects the app to the agent, are documented on the integrations page because they are closer to the internals than to a preference.

Edit this page on GitHub