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
Install
uv tool install "arka-agent[chat]" # or: pipx install "arka-agent[chat]"
arka setup
arka doctor
One-off without a global install:
uvx --from "arka-agent[chat]" arka doctor
Need the latest commit before the next PyPI release?
pipx install "arka-agent[chat] @ git+https://github.com/Sumit884-byte/arka.git"
Requirements: Python 3.11+ · macOS / Linux full · Windows CLI works (fish unlocks the full router)
Keys: add a free Gemini or Groq key, or run Ollama locally —arka free tier setuphelps.
Quick start
arka ask "what is Rust?"
arka "convert 100 USD to INR"
arka council "should I learn Rust?"
arka quiz python
arka listen # optional: "hey arka, what's the weather"
Connect Cursor / Claude over MCP:
arka mcp doctor && arka mcp install
More: Quickstart · Skills · MCP
Why Arka
| Zero-token-first | 120+ symbolic rules resolve common asks before any model is called |
| 70+ local skills | Code, media, research, deploy, memory — plugins via skill.json |
| 24-provider failover | Gemini → Groq → Ollama → OpenRouter and more |
| Secure by default | Injection checks, risky-action prompts, hard blocks on destructive shell |
| Local-first | Skills run on your machine; you choose which LLM providers see prompts |
| MCP + HTTP API | stdio/SSE tools for Cursor/Claude, REST on :8765 |
Architecture
Requests share one path: clients → symbolic router → dispatcher or LLM failover → local skills. Most asks never call a model.
| Layer | What it does |
|---|---|
| Clients | CLI, MCP (Cursor / Claude), REST on :8765 |
| Route | 120+ offline rules — zero tokens on a match |
| Decide | Skill dispatcher + security gate, or Gemini → Groq → Ollama → OpenRouter |
| Run | 70+ local skills (code, data, media, deploy, memory) |
Hosted/headless Linux can set ARKA_HOSTED_MODE=1 to block desktop/GUI/audio skills. Deploy with arka deploy --all (Cloud VM, Railway, Vercel, Netlify, Render).
Privacy
-
Skills run on your machine — no hosted Arka account or shared demo instance
-
Many requests never leave your machine (symbolic routing, zero tokens)
-
LLM traffic goes only to providers you configure; force local-only with:
arka run-only-local-llm "summarize this repo" arka hybrid config local-only -
Secrets live under your user config (
~/.config/arka// macOS Application Support /%APPDATA%\arka\) -
Memory defaults local; web content is sanitized; risky actions prompt
[y/N] -
Telemetry defaults to local SigNoz (
127.0.0.1:4318) — disable withOTEL_SDK_DISABLED=true
Platforms
| Platform | Support |
|---|---|
| macOS | Full — recommended for daily use |
| Linux | Full |
| Windows | Python CLI works; fish unlocks the full skill router (scoop / winget) |
Develop from source
git clone https://github.com/Sumit884-byte/arka.git
cd arka
./scripts/refetch.sh --install
pip install -e ".[chat,dev]"
arka setup && arka doctor
Fork + PR: see CONTRIBUTING.md. Local landing preview: landing/.
Contributing
Issues and PRs welcome — start with good first issue.
gh repo fork Sumit884-byte/arka --clone
cd arka && pip install -e ".[chat,dev]" && pytest
gh pr create --repo Sumit884-byte/arka
If Arka is useful, ★ star the repo — or gh repo star Sumit884-byte/arka.
License
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.