Project Info
GitHub · PyPI: arka-agent · Docs
Inspiration
We wanted a local-first AI agent that actually does things in the terminal — not another chat window that hallucinates shell commands. Most assistants treat the repo as an afterthought: they guess test commands, miss project-specific scripts, and burn tokens on routing that should be deterministic. Arka started from a simple idea: route plain English to real, local skills with symbolic rules first and LLMs only when needed. Over the week of July 14–20, 2026, that grew into something we could ship: a PyPI package (arka-agent 0.1.0), a Mintlify docs site with real install paths, an interactive coding TUI for plan → execute → test loops, MCP tools for Cursor, and a hosted remote UI on Railway. We built Arka the way we wanted to use it — pair-programming with Codex in Cursor, letting the agent fix CI, write docs, discover scripts, and iterate on routing while we focused on architecture and product decisions.
What it does
Arka is your terminal, upgraded. It routes natural language to 70+ local skills using 120+ symbolic rules before any LLM is called. Core routing & dev workflows Deterministic NL routing for dev tasks: route audit, CI checks, code review, natural-language PR creation Symbolic URL repair and exact-url routing Screenshot-to-design project routing Language-agnostic lint project command Recurring self-improve scheduling Coding TUI — the centerpiece /plan — LLM-generated plans in plan-only mode, with local fallback /run — execute goals with resilient git handling and honest pytest reporting /test — strict read-only test mode vs. flexible /run tests with optional --fix /ci and /review shortcuts, enriched /status, auto-execute on plan approval Greenfield project support outside the Arka repo Agentic script discovery — script_discovery.py finds verification scripts under scripts/ via heuristics (stem patterns, docstrings, argparse), not hardcoded names; wired into repo_health and the coding TUI MCP & IDE integration arka mcp serve documented and configured for Cursor arka mcp self-tools — lists native MCP tools for self-discovery Heartbeat, jsonkit, and other MCP-exposed tools wired into NL routing Remote UI & hosting React-based remote coding demo with Dockerfile and Railway deploy config Profile tests for coding server behavior Creative & media skills 3D generation with free backends (Hugging Face, Meshy, procedural fallback) Slide composition with pitch/executive themes Deterministic 3D space scaffold with auto-install of trusted dependencies Docs, PyPI, and distribution Published arka-agent 0.1.0 on PyPI — pipx install "arka-agent[chat]" and go Mintlify docs at arka-agent.mintlify.site: five top-level tabs, sidebar icons on every page, install guides for macOS/Linux/Windows New guides: "How to code with Arka," hosted mode, MCP, loop engineering, and more
How we built it
We worked in a tight loop: Codex in Cursor + Arka itself, shipping ~40 commits in six days. Architecture Python 3.11+ monorepo with optional extras (chat, observability, 3d, video, etc.) in pyproject.toml fish shell as the NL router front-end; Python CLI (arka) as the skill dispatcher Symbolic routing layer (src/arka/routing/symbolic.py) handles most intents with zero tokens; LLM failover across 24 providers when needed Skill plugins via skill.json — no fork required to extend Key implementation decisions How Codex helped Codex was our pair-programming partner throughout: Routing fixes — caught coding-tui being misrouted to web_answer instead of the TUI skill CI triage — aligned MCP tests when Spotify tool was disabled; cleared ruff errors Test reliability — made /run tests call pytest honestly; handled skipped commands and bad JSON from the goal agent Script discovery — helped design the heuristic classifier and write tests (test_script_discovery.py) Docs — drafted Mintlify guides, tightened prose, added install paths and platform tables to README PyPI readiness — updated README with pipx install, GitHub fallback, and contributor clone paths We also dogfooded Arka: the self-improve loop re-indexed the repo, and we used the coding TUI's /plan → approve → auto-execute flow for feature work.
Challenges we ran into
Routing is harder than it looks Early in the week, typing "coding tui" in fish landed on web_answer instead of launching the TUI. We added explicit routes, tests for NL parsing, and a route-audit dev tool to catch mismatches. /run tests lied (briefly) The goal agent would report success without actually running pytest. We split concerns: /test always runs repo-detected tests directly; /run tests goes through the readonly goal agent unless --fix is passed. Codex helped trace the dishonest reporting path and write the fix. CI kept breaking on small changes Disabling the Spotify MCP tool broke tests that still expected it. Ruff flagged unused imports in CI-only paths. Each fix was small but blocked merges — Codex was useful for running the exact failing test, patching the assertion, and clearing lint in one pass. Greenfield vs. in-repo assumptions The coding TUI assumed it was always running inside the Arka repo. Greenfield projects outside Arka's scope crashed or skipped useful commands. We added scope detection and safer defaults. Docs sprawl Mintlify had orphaned pages and no consistent nav. Restructuring into five tabs and adding icons to every page took a dedicated push — tedious but necessary for a public launch. Remote UI + Railway Shipping a hosted demo meant Dockerfile, env examples (.env.railway.example), profile-specific server behavior, and profile tests. Getting the coding profile to behave correctly over HTTP was non-trivial.
Accomplishments we're proud of
Shipped arka-agent 0.1.0 on PyPI — anyone can pipx install "arka-agent[chat]" and run arka setup without cloning the repo Coding TUI end-to-end loop — /plan → approve → auto-execute → /test with honest pytest output and optional auto-fix script_discovery.py — no hardcoded script manifest; heuristics find test/verify/smoke scripts in any repo Mintlify docs site — five tabs, icons everywhere, platform-specific install guides MCP in Cursor — documented config, self-tools discovery, NL routes in sync with terminal routing Remote coding UI on Railway — shareable demo without local setup 40+ commits in six days — routing, TUI, docs, MCP, 3D, slides, observability, CI — with Codex as a genuine force multiplier Security by default — prompt-injection checks, risky-action prompts, and hard blocks on destructive shell patterns
What we learned
Deterministic routing first, LLM second. Every symbolic rule we added cut latency and made behavior predictable. The LLM is for planning and edge cases, not "what command should I run?" Split read-only from agent-assisted paths. Users need a trustworthy /test before they'll trust auto-fix. Dogfooding catches real bugs. Using the coding TUI on Arka itself surfaced greenfield assumptions and routing drift unit tests missed. AI pair programming works when scopes are clear. Codex excelled at CI fixes, test writing, docs prose, and routing bugs. We owned architecture (script discovery heuristics, MCP tool surface, TUI session model). Docs are part of the product. Restructuring Mintlify felt like overhead until someone installed from PyPI using only the docs site. Publish early. Getting 0.1.0 on PyPI forced us to nail install paths, platform tables, and arka doctor.
What's next
Near term Polish the remote UI — session persistence, file tree browsing, tighter integration with the local coding TUI Expand script discovery — support package.json scripts, Makefile targets, and monorepo layouts More MCP tools in NL routing — full self-tools surface reachable from fish without memorizing names Windows portable mode — document and test the Python-only fallback path more thoroughly Medium term Plugin marketplace — third-party skill.json plugins installable via arka skill install Team / hosted mode — build on Railway deploy and backend client work for shared agent sessions Observability defaults — one-command arka observability setup that instruments the agent itself Voice + multimodal — extend screenshot-to-design and 3D scaffolds to voice-driven coding sessions Long term Self-improve on autopilot — open PRs for routing gaps Arka finds in its own telemetry Cross-agent interoperability — Arka as the local execution layer for Cursor, Codex, Claude Code, and other IDE agents via MCP, with shared session memory
Arka
Your terminal, upgraded. Route plain English to 70+ local skills — deterministic offline routing, voice, 24-provider LLM failover, and security gates on by default.
Documentation: arka-agent.mintlify.site · Repository: github.com/Sumit884-byte/arka · Local landing preview: landing/ (python3 -m http.server from that folder)
PyPI downloads
| Window | Downloads (no mirrors) |
|---|---|
| Last 7 days | 23 |
| Last 30 days | 63 |
| Tracked since launch (2026-07-20) | 447 |
| With mirrors (same window) | 1,585 |
Live charts: pypistats.org/packages/arka-agent · pepy.tech/projects/arka-agent · snapshot 2026-08-30
Why Arka?
- Deterministic routing: 120+ symbolic rules handle most requests with zero LLM tokens before any model is called.
- Extensible: Add third-party skills via
skill.jsonplugins — no fork required. - Secure by default: Prompt-injection checks, risky-action prompts, and hard blocks on destructive shell patterns.
- Local-first: Skills run on your machine; LLM calls failover across Gemini, Groq, Ollama, and 20+ other providers.
If Arka looks useful, star the upstream repo — it helps others discover the project and signals that it's worth a look:
gh repo star Sumit884-byte/arka
Or open github.com/Sumit884-byte/arka and click Star.
Architecture
Arka is built as a layered system. Requests flow through deterministic symbolic routing first (zero LLM tokens), fall back to a multi-provider LLM chain only when needed, and dispatch to a pluggable skill dispatcher. All layers — MCP server, remote API server, memory, telemetry, and cloud deployment — are independently composable.
flowchart TD
CLI["🖥️ CLI / Natural Language Input\n`arka ...` or `arka ask '...'`"]
subgraph Router["Routing Layer (zero-token-first)"]
SR["⚡ Symbolic Router\n120+ deterministic rules"]
LLM["🤖 LLM Failover Chain\nGemini → Groq → Ollama\n→ OpenRouter → 20+ providers"]
SR -->|"no match"| LLM
end
subgraph Dispatch["Skill Dispatcher"]
SD["🎯 Skill Dispatcher\nHosted-mode guard · Security gate\nPrompt-injection check"]
end
subgraph Skills["70+ Skills"]
direction TB
CODE["💻 Code & Repo\ncode · repo_health · repo_map\nreview · ci · pr_check · security"]
DATA["📊 Data & Research\nask · search · pdf_rag\nstocks · data_ask · kaggle"]
MEDIA["🎵 Media & Voice\nvoice · youtube · spotify\ncompose_video · tts"]
INFRA["☁️ Infra & Deploy\ndeploy · cloud · railway\ndocker · render · vercel"]
MEM["🧠 Memory\nmemory · recall · supermemory\ncontext · session"]
end
subgraph Interfaces["Interfaces"]
MCP["🔌 MCP Server\nstdio / SSE\nCursor · Claude · Copilot"]
REMOTE["🌐 Remote HTTP API\nGET /v1/health\nPOST /v1/agent\nMobile UI :8765"]
TLM["📡 Telemetry\nOpenTelemetry · SigNoz"]
end
subgraph LLMs["LLM Providers"]
G["Gemini"]
GQ["Groq"]
OL["Ollama (local)"]
OR["OpenRouter\n+ 20 providers"]
end
CLI --> Router
SR -->|"matched rule"| SD
LLM --> G & GQ & OL & OR
LLM --> SD
SD --> CODE & DATA & MEDIA & INFRA & MEM
SD --> MCP
SD --> REMOTE
SD --> TLM
style CLI fill:#1e293b,color:#f8fafc,stroke:#f97316
style SR fill:#0f172a,color:#fb923c,stroke:#f97316
style LLM fill:#0f172a,color:#a78bfa,stroke:#7c3aed
style SD fill:#0f172a,color:#34d399,stroke:#059669
style MCP fill:#0f172a,color:#60a5fa,stroke:#2563eb
style REMOTE fill:#0f172a,color:#60a5fa,stroke:#2563eb
style TLM fill:#0f172a,color:#94a3b8,stroke:#475569
style CODE fill:#0f172a,color:#f8fafc,stroke:#334155
style DATA fill:#0f172a,color:#f8fafc,stroke:#334155
style MEDIA fill:#0f172a,color:#f8fafc,stroke:#334155
style INFRA fill:#0f172a,color:#f8fafc,stroke:#334155
style MEM fill:#0f172a,color:#f8fafc,stroke:#334155
style G fill:#1a2744,color:#93c5fd,stroke:#1d4ed8
style GQ fill:#1a2744,color:#93c5fd,stroke:#1d4ed8
style OL fill:#1a2744,color:#93c5fd,stroke:#1d4ed8
style OR fill:#1a2744,color:#93c5fd,stroke:#1d4ed8
Key design properties:
- Zero-token-first — Symbolic routing resolves most requests without any LLM call.
- Hosted-mode safety — Skill dispatcher blocks desktop/GUI/audio skills automatically on cloud/headless Linux (
ARKA_HOSTED_MODE=1). - Multi-platform deploy —
arka deploy --alldeploys to Cloud VM, Railway, Vercel, Netlify, Render in one command. - MCP + Remote API — Arka exposes all skills as MCP tools (stdio/SSE) and a REST HTTP API on port 8765.
Privacy
Arka is designed so you stay in control of your data:
-
Runs on your machine — Skills execute locally. There is no hosted Arka account and no shared demo instance; your terminal, files, and config stay on your system.
-
Local-first routing — 120+ symbolic rules handle many requests with zero LLM tokens, so common tasks never leave your machine.
-
You choose where prompts go — LLM calls use only the providers you configure (Gemini, Groq, Ollama, etc.). For sensitive work, force a local-only boundary:
arka run-only-local-llm "summarize this repo" arka hybrid config local-onlyWith
local-only, hosted providers are not used as fallbacks. -
Secrets stay local — API keys and
.envlive under your user config directory (~/.config/arka/on Linux,~/Library/Application Support/arka/on macOS).arka integration setupnever prints secret values. -
Memory stays local by default — Long-term memory uses a local cache unless you add a Supermemory key (
MEMORY=autofalls back to local). SetMEMORY=localto keep recall entirely on disk. -
Web content is sanitized — Arka strips suspicious injection patterns from search results and scraped pages before they reach the model (
SECURITY_SANITIZE=1by default). -
Risky actions need confirmation — Installs, deletes, downloads, and automation prompt
[y/N]unless you explicitly auto-confirm (SECURITY_ACTIONS=1by default). -
Telemetry defaults to SigNoz — OpenTelemetry traces, metrics, and logs export to
http://127.0.0.1:4318by default. SetOTEL_SDK_DISABLED=trueorOTEL_TRACES_ENABLED=0to opt out.
Details: Security model · Memory · Hybrid local/hosted routing
Supported platforms
| Platform | Support |
|---|---|
| macOS | Full support — recommended for daily use |
| Linux | Full support |
| Windows | Python CLI and arka subcommands work; the full 70+ skill router needs fish shell (scoop install fish or winget install fishshell). Without fish, Arka runs in portable mode with Python fallbacks. Some fish-oriented skills target macOS/Linux. |
Requirements: Python 3.11+. Optional: fish shell for natural-language routing and voice integration.
Config paths: ~/.config/arka/ (Linux), ~/Library/Application Support/arka/ (macOS), %APPDATA%\arka\ (Windows).
Installation
PyPI package name is arka-agent — published at pypi.org/project/arka-agent.
Recommended (standalone, no clone, no build):
uv installs arka-agent from PyPI — no separate uv registry or token:
uv tool install "arka-agent[chat]"
arka setup
arka doctor
Or with pipx:
pipx install "arka-agent[chat]"
arka setup
arka doctor
One-off without global install:
uvx --from "arka-agent[chat]" arka doctor
Or with pip in a venv:
python3 -m pip install "arka-agent[chat]"
arka setup
arka doctor
GitHub fallback (if you need the latest commit before the next PyPI release):
pipx install "arka-agent[chat] @ git+https://github.com/Sumit884-byte/arka.git"
arka setup
arka doctor
From a git clone (best for contributors or tracking main):
Upstream (canonical):
git clone https://github.com/Sumit884-byte/arka.git
cd arka
./scripts/refetch.sh --install
arka setup
arka doctor
Working from a fork (recommended if you do not have push access to upstream):
gh repo fork Sumit884-byte/arka --clone
cd arka
./scripts/refetch.sh --install
pip install -e ".[chat,dev]"
arka setup
arka doctor
Example active fork: sumitmishra884byte-cpu/arka (fork of upstream). Sync your fork before opening a PR:
gh repo sync --source Sumit884-byte/arka
git push origin main
Configure API keys (at least one cloud key or local Ollama):
cp .env.example ~/.config/arka/.env # macOS/Linux; see Supported platforms for Windows path
Add a free-tier key from Google AI Studio or Groq Console, then run arka free tier setup for recommended .env settings.
Optional one-liners:
brew install fish # macOS — unlocks full skill router
arka mcp doctor && arka mcp install # verify MCP server; print Cursor snippet
See the Quickstart guide and MCP integration for fish setup, Cursor merge steps, and optional extras ([voice], [pdf], [all]).
Try Arka without building from source
There is no hosted demo instance or shared test account. The fastest path to evaluate Arka:
-
Browse the live docs — arka-agent.mintlify.site (skills catalog, routing concepts, CLI reference).
-
Install in one command — use the pip/pipx git install above (no manual build step).
-
Use free-tier LLM keys — Gemini and Groq both offer free tiers; Ollama is local and costs nothing:
arka free tier setup arka doctor -
Run sample commands that exercise routing and LLM failover:
arka ask "what is Rust?" arka "convert 100 USD to INR" arka council "should I learn Rust?" arka quiz python arka coding-tui . arka repo_health scanInside the coding TUI,
/test scriptsruns verification scripts discovered underscripts/(no hardcoded list — Arka inspects filenames, docstrings, argparse, andtest_*functions). Use/testfor pytest andrepo_health scanto see why each script matched. -
Try MCP in Cursor — after install,
arka mcp doctorthenarka mcp install; merge the printed snippet into Cursor Settings → MCP and restart Cursor.
Full walkthrough: Quickstart · Free credits guide
Quick start
Get to a working answer in under a minute:
arka doctor # verify install + keys
arka ask "what is Rust?" # web + AI answer
arka "convert 100 USD to INR" # natural language routing
arka council "should I learn Rust?" # multi-persona deliberation
Voice (optional):
arka listen # then say: "hey arka, what's the weather"
More guides — skills, stocks, PDF RAG, Google Workspace, goal agent, testing — live on the documentation site.
Built with Codex & GPT-5.6
Arka was built for the OpenAI Build Week Developer Tools track (July 2026):
- Codex — routing rule hardening, NL routing test coverage, coding TUI iteration (
/planauto-execute,/test,/test scripts), and demo pipeline tooling. - GPT-5.6 — primary model in the
arka askfailover chain and agent steps insidearka coding-tui(via OpenRouter).
Judges can reproduce the full path with pipx install "arka-agent[chat]", arka setup, and arka doctor. Demo video and CLI screenshots live under recordings/.
Contributing
We welcome contributions of all sizes! Please read our Contribution Guidelines to get started with the local development workflow.
Quick fork workflow with GitHub CLI:
gh repo view Sumit884-byte/arka # upstream metadata
gh repo fork Sumit884-byte/arka --clone # your fork + local clone
cd arka
pip install -e ".[chat,dev]"
pytest
# push to your fork, then open a PR back to Sumit884-byte/arka
gh pr create --repo Sumit884-byte/arka
Look for the good first issue label on GitHub Issues to find a welcoming entry point.
License
Distributed under the MIT License. See LICENSE for more information.
Analysis
View
Metric
- 72
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- HTMLIn code
- Hugging FaceIn code
- JavaScriptIn code
- OpenAIIn code
- PythonIn code
- PyTorchIn code
- ReactIn code
- RustIn code
- StreamlitIn code
- TypeScriptIn code
- DockerClaimed
- Google GeminiClaimed
- OllamaClaimed
12 of 15 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
9.3 MB
Source files
1,523
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Sumit884-byte/arka
4,000 files · 226.5 MB · @ 17e8fd8
Structure
Interface
30 files · 1%Screens, components and styles rendered to the user.
API & routing
1 file · 0%Request entry points: routes, handlers and controllers.
Application logic
196 files · 5%Domain rules, services and shared utilities.
+5 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python32%
- Markdown23%
- CSS13%
- TypeScript12%
- HTML11%
- YAML4%
- Other (3)4%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 235- aiofiles
- altair
- annotated-types
- anyio
- aptdaemon
- arch
- argcomplete
- attrs
- autocommand
- babel
- bcc
- bcrypt
- beautifulsoup4
- blinker
- Brlapi
- Brotli
- cachetools
- certifi
- +217 more
pyproject.toml
pypi · 46- cryptography
- feedparser
- platformdirs
- qrcode
- +42 more
speech-to-speech/pyproject.toml
pypi · 41- espeakng-loader
- fastapi
- faster-qwen3-tts
- httpx
- lingua-language-detector
- miniaudio
- misaki
- mlx
- mlx-audio
- mlx-lm
- mlx-metal
- nano-parakeet
- nltk
- numpy
- openai
- phonemizer-fork
- pillow
- pydantic
- +23 more
desktop/ui/package.json
npm · 16- framer-motion
- fuse.js
- highlight.js
- lucide-react
- react
- react-dom
- react-markdown
- react-router-dom
- rehype-highlight
- remark-gfm
- sonner
- +5 more
desktop/src-tauri/Cargo.toml
cargo · 4- serde
- serde_json
- tauri
- +1 more
desktop/package.json
npm · 11 development-only dependencies.
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This repository has more files than are indexed here, so the diagram and browser show a partial tree. Open it on GitHub for the complete structure.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.