Skip to main content

arccode

CI Release Python License: MIT

Website: https://acnologiaslayer.github.io/arccode/ (also at http://arcma.dev/arccode/)

A multi-provider agent harness, as a CLI. arccode routes each task to the right model based on complexity, cost, performance, and intent, and can spawn specialist agents, load/import skills, and build new agents and skills at runtime.

Inspired by the architectures of Claude Code (file-based agents + skills), jcode (model routing + swarm), and openclaw (clean provider/tool abstraction).

flowchart TB
    U[Task] --> R[Router]
    R -->|picks model| A[Agent Loop]
    A --> P[Provider Adapter]
    P --> M[(Model API)]
    M -->|tool calls| A
    A --> T[Tool Executor]
    A -->|spawn| S[Sub-Agents]
    A -->|load| K[Skills]

Features

  • Multi-provider: Anthropic, OpenAI, Ollama (local), OpenRouter behind one normalized interface. Models are hot-swappable.
  • Smart routing: heuristic classifier scores each model by capability, cost, and latency for the task's intent and complexity. Explicit overrides win.
  • Agents as files: Markdown + YAML frontmatter, auto-discovered. Each agent pins a model policy, tool allowlist, and skills.
  • Skills with progressive disclosure: SKILL.md folders; descriptions are always indexed, bodies load on demand.
  • Orchestration: coordinator spawns specialists and fans out subtasks.
  • Full toolset: read/write/edit/multiedit, ls/glob/grep, bash (+background), web fetch/search, todo, memory, MCP tools, and meta-tools that build agents and skills.
  • MCP client: connect stdio MCP servers; their tools appear as mcp__<server>__<tool>.
  • Hooks + slash commands: PreToolUse/PostToolUse shell hooks; /command prompt templates.

Install

Recommended (isolated, global CLI):

pipx install git+https://github.com/acnologiaslayer/arccode

Or into the current environment:

pip install git+https://github.com/acnologiaslayer/arccode

From a clone (for development):

git clone https://github.com/acnologiaslayer/arccode && cd arccode
pip install -e .                 # provider SDKs (anthropic, openai) included
pip install -e '.[dev]'          # + pytest/ruff for development

Once a release is tagged, the same command works from PyPI: pipx install arccode.

Set the keys for whatever providers you use:

export ANTHROPIC_API_KEY=...
export OPENAI_API_KEY=...
# Ollama runs locally at http://localhost:11434, no key needed

Usage

arccode run "Add a --json flag to the export command and test it"
arccode run "Design a rate limiter for 10k rps" --agent architect -v
arccode run "Summarize every file in src/" --agent researcher
arccode chat                       # interactive REPL
arccode spawn debugger "pytest fails in test_auth" -v

arccode agents                     # list agents
arccode skills                     # list skills
arccode models                     # model catalog + pricing
arccode whichmodel "refactor the distributed cache layer"   # explain routing
arccode mcp                        # list connected MCP servers

Force a model, auto-approve tools, run non-interactively:

arccode run "fix the failing build" -m workhorse -y

Resumable sessions (history persists to ~/.arccode/sessions/<id>.json):

arccode run "Start reviewing the auth module" -s new     # prints a session id
arccode run "Now check the token refresh path" -s 20260809-...   # resumes
arccode sessions                                          # list saved sessions

Configuration

  • Models: edit src/arccode/config.py, or point ARCCODE_CONFIG at a YAML file with a models: map to add/override entries.

  • Agents: drop a .md file in src/arccode/agents/registry/ (or set ARCCODE_AGENTS_DIR). Format:

    ---
    name: my-agent
    description: When to use this agent.
    model: workhorse        # catalog key, full id, or "auto"
    effort: medium
    tools: [read_file, write_file, bash, grep]
    skills: [git-commit]
    ---
    System prompt body...
    
  • Skills: create skills/registry/<name>/SKILL.md with name + description frontmatter and a body. Import external skills with the import_skill tool.

  • MCP: ~/.arccode/mcp.json:

    { "servers": { "fs": { "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "."] } } }
    
  • Hooks: ~/.arccode/hooks.json or ./.arccode/hooks.json:

    { "PreToolUse": [{ "match": "bash", "command": "grep -q 'rm -rf' && exit 2 || exit 0" }] }
    
  • Slash commands: ./.arccode/commands/<name>.md; body is a prompt template with $ARGUMENTS.

Routing policy

Intent Model tier Rationale
bulk read / summarize small / cheap high volume, low stakes
implement mid workhorse good tools + code, moderate cost
design / debug / review frontier needs strong reasoning
chat small latency matters

Complexity nudges the choice up a tier; explicit --model always wins.

Architecture

src/arccode/
  config.py          model catalog + pricing + weights
  router.py          intent/complexity -> model
  providers/         base + anthropic + openai_compat (openai/ollama/openrouter)
  tools/             fs, shell, web, productivity, meta + registry
  agents/            loader + runtime loop + registry/*.md
  skills/            SkillRegistry + registry/<name>/SKILL.md
  orchestrator.py    spawn / fan-out
  mcp.py             stdio MCP client
  hooks.py           hooks + slash commands
  app.py             assembly
  cli.py             typer CLI

Testing

pip install '.[dev]' && pytest -q

The suite includes real-path integration tests: a scripted fake provider drives the actual agent loop, tool execution (files written/read on disk), the orchestrator spawn path (a sub-agent really runs and writes a file), hook blocking (a PreToolUse hook prevents a side effect), and graceful handling of provider errors. Only the LLM HTTP call is substituted; everything else is real.

CI (.github/workflows/ci.yml) additionally verifies that a bare pip install . bundles the provider SDKs and that the CLI runs, across Python 3.10-3.12.

Scope vs jcode / Claude Code

arccode implements the core harness architecture those tools share, not their full surface. Present: multi-provider routing, file-based agents + skills, spawn/orchestration, the tool suite above, an MCP stdio client, hooks, slash commands, and persistent resumable sessions. Not yet: response streaming, a browser tool, sandboxed execution, tiered permission policies, background-task supervision, and an LLM-based (vs heuristic) router. Contributions welcome.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arccode-0.1.0.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arccode-0.1.0-py3-none-any.whl (38.4 kB view details)

Uploaded Python 3

File details

Details for the file arccode-0.1.0.tar.gz.

File metadata

  • Download URL: arccode-0.1.0.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for arccode-0.1.0.tar.gz
Algorithm Hash digest
SHA256 060407be18773c88ec9de9ceaa7cdaeb9200891ce72f52a961811b8fdf9e24f9
MD5 e4b91db37c0dc414fee797fe86b33fe4
BLAKE2b-256 f2b4d2f75ce92aa9a1037d4f62a0c765f4c1f1eecf255cafc6c42f11659b15cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for arccode-0.1.0.tar.gz:

Publisher: release.yml on acnologiaslayer/arccode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arccode-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: arccode-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for arccode-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6546efe3c8c48bcf28d167776b0c1c598f7072e2671a23310acad6f7a0e6c9bb
MD5 7f4f49892dea594868ac90da08643fd6
BLAKE2b-256 f53ba9c34ce9105723de0790ea7ae7e8ab9c66e860884503a3335cefd288e4c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for arccode-0.1.0-py3-none-any.whl:

Publisher: release.yml on acnologiaslayer/arccode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page