aicfg
Unified AI assistant configuration management.
Currently, aicfg has only one command: link.
Link Command
One source of truth per assistant. Pick any as your source.
What It Does
AI coding assistants each have their own config files — instructions, skills, rules, agents. Managing them across multiple tools means editing the same content in multiple places. aicfg link solves this by creating symlinks so all assistants point to a single source.
Note: you can pick any of the supported assistants as a source or a target.
Supported Assistants
| Name | Instructions | Skills | Rules | Agents |
|---|---|---|---|---|
| claude-code | CLAUDE.md |
.claude/skills/ |
.claude/rules/ |
.claude/agents/ |
| cursor | .cursorrules |
.cursor/skills/ |
.cursor/rules/ |
.cursor/agents/ |
| github-copilot | .github/copilot-instructions.md |
.github/skills/ |
.github/instructions/ |
.github/agents/ |
| agents | AGENTS.md |
.agents/skills/ |
.agents/rules/ |
.agents/agents/ |
| opencode | AGENTS.md |
.opencode/skills/ |
.opencode/rules/ |
.opencode/agents/ |
Usage
# Dry run — see what would happen without creating symlinks
uvx aicfg link github-copilot --to claude-code,cursor --dry-run
# Link github-copilot → claude-code and cursor
uvx aicfg link github-copilot --to claude-code,cursor
# Link to all assistants at once
uvx aicfg link agents --to claude-code,cursor,github-copilot,opencode
# Verbose output
uvx aicfg link cursor --to claude-code --verbose
Install with pip
# Install with pip
pip install aicfg
# Run installed
aicfg link agents --to claude-code
Pre-commit Hook
Add this to your .pre-commit-config.yaml:
- repo: https://github.com/TomerFi/aicfg
rev: "0.0.6"
hooks:
- id: link
args: ["cursor", "--to", "claude-code", "opencode"]
Choose a source from the table above as the first arg and your targets via --to.
CI
Add this to a GitHub Action to fail if symlinks drift:
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v9
- name: Ensure assistants links are up to date
run: uvx aicfg link cursor --to claude-code,opencode --ci
The --ci flag will fail the CI if any links need to be created or replaced.
How It Works
aicfg link creates relative symlinks between assistants. For instructions, a file symlink is created at the target path pointing back to the source. For directory categories (skills, rules, agents), the target directory is created and each direct entry inside it is symlinked.
For directories, each entry (file or subdirectory) is symlinked as-is into the target directory. Files become file symlinks, directories become directory symlinks — the entries themselves are symlinked, not their individual contents. The source file acts as the single source of truth — edit it once and all targets receive your changes immediately.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aicfg-0.0.6.tar.gz.
File metadata
- Download URL: aicfg-0.0.6.tar.gz
- Upload date:
- Size: 209.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06393cc5949ddd52f0a0dc4d682425d7c4e1360a3e990dbd16f588b677f14113
|
|
| MD5 |
e6b458a6fe8a0c22ab235530a0560c75
|
|
| BLAKE2b-256 |
ed2259462a3f5d6bfd5e24dab469c613cdc4742b2e253b669fb6f947a7d973b0
|
Provenance
The following attestation bundles were made for aicfg-0.0.6.tar.gz:
Publisher:
release.yml on TomerFi/aicfg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aicfg-0.0.6.tar.gz -
Subject digest:
06393cc5949ddd52f0a0dc4d682425d7c4e1360a3e990dbd16f588b677f14113 - Sigstore transparency entry: 2376831254
- Sigstore integration time:
-
Permalink:
TomerFi/aicfg@a25e2532b7e464489d13bd8b4db82aae88713928 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/TomerFi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a25e2532b7e464489d13bd8b4db82aae88713928 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file aicfg-0.0.6-py3-none-any.whl.
File metadata
- Download URL: aicfg-0.0.6-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18a1e3c2e9be8a068821deb2f02334c7ae4231af11a6a58aa2d729d032b1c3b7
|
|
| MD5 |
da97e320a27f7259dbbb492304399beb
|
|
| BLAKE2b-256 |
7d97b78febbe7ab298f9907888d11b46cf6b4058726664bc44283087259eb6c7
|
Provenance
The following attestation bundles were made for aicfg-0.0.6-py3-none-any.whl:
Publisher:
release.yml on TomerFi/aicfg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aicfg-0.0.6-py3-none-any.whl -
Subject digest:
18a1e3c2e9be8a068821deb2f02334c7ae4231af11a6a58aa2d729d032b1c3b7 - Sigstore transparency entry: 2376831356
- Sigstore integration time:
-
Permalink:
TomerFi/aicfg@a25e2532b7e464489d13bd8b4db82aae88713928 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/TomerFi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a25e2532b7e464489d13bd8b4db82aae88713928 -
Trigger Event:
workflow_dispatch
-
Statement type: