Skip to content

Configuration

~/.aisw/config.json

Override with the AISW_HOME environment variable:

Terminal window
AISW_HOME=/tmp/aisw-test aisw list

AISW_HOME is useful for isolated testing or for keeping multiple independent aisw data directories.

config.json is written with 0600 permissions (owner read/write only). aisw doctor warns if the file has broader permissions. The ~/.aisw/ directory is created with 0700.

{
"version": 1,
"active": {
"claude": "work",
"codex": null,
"gemini": null
},
"profiles": {
"claude": {
"work": {
"added_at": "2026-03-25T10:00:00Z",
"auth_method": "oauth",
"credential_backend": "file",
"label": "Work"
}
},
"codex": {},
"gemini": {}
},
"settings": {
"backup_on_switch": true,
"max_backups": 10
}
}
FieldTypeDescription
versionintegerConfig schema version. Commands fail with an upgrade message if this exceeds the installed binary’s supported version.
active.<tool>string or nullName of the currently active profile for the tool, or null if none.
profiles.<tool>.<name>objectMetadata for a stored profile. Does not contain credential material.
profiles.<tool>.<name>.added_atISO 8601 timestampWhen the profile was created.
profiles.<tool>.<name>.auth_method"oauth" or "api_key"How the profile was authenticated.
profiles.<tool>.<name>.credential_backend"file" or "system_keyring"Where the credential bytes are stored.
profiles.<tool>.<name>.labelstring or nullOptional human-readable label.
settings.backup_on_switchbooleanCreate a backup before activating a profile. Default: true.
settings.max_backupsintegerMaximum number of backups to retain. Older ones are pruned when the limit is exceeded. Default: 10.

Credentials are stored under ~/.aisw/profiles/, not in config.json.

~/.aisw/
├── config.json # profile registry and settings
├── profiles/
│ ├── claude/
│ │ ├── work/
│ │ │ ├── .credentials.json # Claude credential file (0600)
│ │ │ └── oauth_account.json # OAuth account metadata (if OAuth)
│ │ └── personal/
│ ├── codex/
│ │ └── work/
│ │ ├── auth.json # Codex auth file (0600)
│ │ └── config.toml
│ └── gemini/
│ └── personal/
│ ├── oauth_creds.json # Gemini OAuth cache (0600)
│ └── settings.json
└── backups/
└── 20260325T114502Z-claude-work/ # timestamped backup snapshot

If config.json has a schema version higher than your installed aisw binary supports, all commands fail with a message asking you to upgrade. Downgrade compatibility (using a newer config with an older binary) is not guaranteed.