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.
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:
- built-in defaults
~/.abstract/config.json— your global settings.abstract/config.json— per-project settingsABSTRACT_*environment variables- 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.
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:
| Form | Meaning |
|---|---|
!command | Runs the rest as a shell command and uses its trimmed stdout as the key. |
env:VAR | Reads the environment variable VAR. |
anything else | Treated 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:
| Variable | Overrides |
|---|---|
ABSTRACT_MODEL | model |
ABSTRACT_PROVIDER | provider |
ABSTRACT_EFFORT | effort |
ABSTRACT_THEME | theme |
ABSTRACT_MAX_TURNS | max_turns |
<PROVIDER>_API_KEY | a 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.