Configuration and paths
1. Persistence principles
aic does not depend on SQLite. All state is files:
- Project config lives in
<project>/.aic/ - User config lives in
~/.aic/ - Per-tool links live in each tool’s directory
- Registry contents are cached at
~/.aic/cache
2. Project-level paths
| Path | Content | Commit to Git? |
|---|---|---|
<project>/.aic/.aicrc | Project declaration (installed Skills, active Context, MCP list, env-required list, link_mode) | Yes |
<project>/.aic/.aic-env | Project-level environment variables (sensitive) | No, add to .gitignore |
.aic/.aicrc is the project’s declaration of fact. It travels with git, and a fresh aic sync after cloning restores the full configuration.
3. User-level paths
| Path | Content |
|---|---|
~/.aic/config.toml | Global config (Registry protocol / ssh_key_path / tui_theme / mirror options) |
~/.aic/aic-env | Global environment variables (sensitive) |
~/.aic/cache | Local Git clone of the Registry (aic-registry) |
4. Tool link paths
Each installed Skill / Context / MCP is linked into the corresponding tool directory:
Claude Code: <project>/.claude/skills/<name>
Codex CLI: <project>/.codex/skills/<name>
Gemini CLI: <project>/.gemini/skills/<name>
OpenCode: <project>/.opencode/skills/<name>
Shared (.agents):<project>/.agents/skills/<name>
isolatedmode (default): links only into the first four tool directories.sharedmode: also adds.agents/skills/<name>.- Windows Beta uses copy sync without admin privileges or Developer Mode. Files land in the same locations but are not symlinks.
5. OpenCode specifics
OpenCode’s path conventions differ slightly from the other tools:
- The project Context reuses
AGENTS.md(same source asCLAUDE.md/GEMINI.mdbut goes through the AIC managed block). - Provider profile switching copies
opencode.json.<name>oropencode.jsonc.<name>intoopencode.json/opencode.jsonc. - MCP only maintains the top-level
mcpfield ofopencode.jsonand does not manage OpenCode permission rules or OAuth.
6. AIC managed block
To keep aic from overwriting user-authored content in CLAUDE.md / AGENTS.md / GEMINI.md, aic writes into these files inside marked managed blocks:
<!-- AIC-MANAGED-BLOCK:start id=<context-id> version=<vX.Y.Z> -->
... rendered Context content ...
<!-- AIC-MANAGED-BLOCK:end id=<context-id> -->
Anything outside the block is left untouched by aic.
7. Temporary and backup directories
| Path | Purpose | Lifecycle |
|---|---|---|
<tmp>/aic-install-<rand> | Installer extraction directory | Removed immediately after install completes |
~/.aic/cache/<provider>/.<name>.bak | Automatic backup before provider switch | Retained until the next switch overwrites it |