ICA is a skills installer and manager for coding agents.
It gives you one clean control plane for:
- installing, uninstalling, syncing, and auditing skills
- managing multiple skill sources with explicit source pinning (
<source>/<skill>) - running from CLI or a local-first dashboard
- using verified bootstrap installers and signed, reproducible releases
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/intelligentcode-ai/intelligent-code-agents/main/scripts/bootstrap/install.sh | bashWindows PowerShell:
iwr https://raw.githubusercontent.com/intelligentcode-ai/intelligent-code-agents/main/scripts/bootstrap/install.ps1 -UseBasicParsing | iexICA supports multiple skill repositories side-by-side.
- Add official and custom repos (HTTPS/SSH)
- Keep each source cached locally under
~/.ica/<source-id>/skills - Keep each source publish workspace under
~/.ica/source-workspaces/<source-id>/repo - Select skills explicitly as
<source>/<skill>to avoid ambiguity - Remove a source without deleting already installed skills (they are marked orphaned)
- Use the same model in CLI and dashboard
- Configure per-source publishing defaults:
direct-push,branch-only, orbranch-pr
Initial installed/selected overview before changing targets, scope, or skills.
Project scope with explicit target + skill selection (reviewer, developer, process).
Live filtering by keyword (review) while preserving selected targets/scope.
Post-install evidence with expanded Installed State and Operation Report.
Management action example (Uninstall selected) with updated state/report.
npm ci
npm run build# Install into user scope for Codex + Claude
node dist/src/installer-cli/index.js install --yes \
--targets=codex,claude \
--scope=user \
--mode=symlink# Project scope, selected skills only
node dist/src/installer-cli/index.js install --yes \
--targets=codex \
--scope=project \
--project-path=/path/to/project \
--mode=symlink \
--skills=developer,architect,reviewerCommands:
ica installica uninstallica syncica listica doctorica catalogica sources listica sources add --repo-url=...(or--repo-path=...; defaults to current directory when omitted)ica sources remove --id=...ica sources auth --id=... --token=...ica sources refresh [--id=...]ica sources update --id=... --name=... --repo-url=... --publish-default-mode=branch-pr --default-base-branch=main --provider-hint=github --official-contribution-enabled=falseica skills validate --path=/path/to/skill --profile=personalica skills publish --source=<source-id> --path=/path/to/skill --message="feat(skill): publish my-skill"ica skills contribute-official --path=/path/to/skill --message="Add my-skill"ica container mount-project --project-path=/path --confirm
Source-qualified example:
node dist/src/installer-cli/index.js install --yes \
--targets=codex \
--scope=user \
--skills=official-skills/reviewer,official-skills/developerLegacy --skills=<name> is still accepted and resolves against the official source.
ica skills validatesupportspersonalandofficialprofiles- Personal publishing uses the source's configured default mode:
direct-push: commits to base branch and pushesbranch-only: pushes a feature branchbranch-pr: pushes a feature branch and attempts PR creation when provider integration is available
- Official contribution uses strict validation and PR-oriented flow (defaults to official source base branch
dev) - Skill bundles are copied recursively and support
SKILL.md+ additional resources/assets/scripts/other files - Source settings include
officialContributionEnabledto mark official contribution targets
Custom repositories are persisted in ~/.ica/sources.json (or $ICA_STATE_HOME/sources.json when set).
Downloaded source skills are materialized under ~/.ica/<source-id>/skills (or $ICA_STATE_HOME/<source-id>/skills).
When install mode is symlink, ICA links installed skills from that local skills snapshot.
Start locally (binds to 127.0.0.1):
npm ci
npm run build
npm run start:dashboardOpen: http://127.0.0.1:4173
Dashboard highlights:
- Install, uninstall, and sync skills across multiple targets
- Add/remove/auth/refresh skill sources (HTTPS + SSH)
- Target discovery plus user/project scope management
- Native project directory picker (host helper) plus container mount orchestration endpoint
- Skill catalog filtering with bulk selection controls
- Installed-state and operation-report inspection in the UI
Container image can be built from src/installer-dashboard/Dockerfile and published to GHCR via .github/workflows/dashboard-ghcr.yml.
Build from source:
docker build -f src/installer-dashboard/Dockerfile -t ica-dashboard:local .Run:
docker run --rm -p 4173:4173 ica-dashboard:localclaudecodexcursorgeminiantigravity
symlink(default)copy
If symlink creation fails, ICA falls back to copy and records the effective mode.
userscope: installs into tool home (~/.claude,~/.codex, ...)projectscope: installs into<project>/<agent-home-dir>
CLI default for project scope: when --scope=project is used without --project-path, ICA uses the current working directory.
ICA tracks managed installs in:
<agent-home>/.ica/install-state.json
This enables safe uninstall/sync of managed assets without deleting unmanaged user content.
Tag releases from main (vX.Y.Z). The release-sign workflow:
- builds deterministic artifacts
- verifies reproducibility
- signs via keyless Sigstore flow
- attaches signatures/certs/checksums to GitHub release assets
Legacy deployment entrypoints were removed:
Makefiledeployment flow- Ansible deployment flow
- old root
install.ps1deployment wrapper
Use bootstrap, ica CLI, or dashboard going forward.
