Apache Maka (Incubating) is a high-performance agent workspace that keeps a complete record of everything it did.
Website · Documentation · Download · 中文文档
An agent harness exists to finish tasks. We hold it to one measure: how many it completes and at what cost. We publish every run: same model, same official verifier, full per-task record.
- Measured, not claimed. Maka is benchmarked against other harnesses on the same model with the official verifier, and the per-task results ship with every report in
docs/eval/. - The log is the runtime. Every model message, tool call, permission decision and termination is an append-only RuntimeEvent. The UI, the next prompt and crash recovery are projections of that log, never the only copy. Old tool output can leave the next prompt without leaving the log.
- Your machine, your model. Sessions, settings and run records stay local. You bring the model: a cloud API, a local model or a compatible gateway.
- One Runtime Host. Desktop, the TUI and CLI, and Eval are thin clients of one execution authority; Eval owns only the experiment and its scores.
The website walks through one turn of the log and links the published runs. ARCHITECTURE.md has the system map.
Apache Releases: Maka has not made an Apache release yet. When one exists, the signed source archive will be the official release; packages distributed elsewhere are convenience artifacts. See the downloads page and .github/ASF_SOURCE_RELEASE.md for candidate criteria, signing procedures, and verification steps.
Desktop Nightly: Built daily from main for developers and testers, for macOS on Apple Silicon and Intel, Windows x64 and Linux x64 and arm64; the Windows and Linux builds are unsigned previews. It is not an ASF release and is not intended for production use. The downloads page has the installers and the platform status.
Build from source: To compile and run Desktop, the TUI, or the CLI directly from a source checkout, see the Build from source section below.
- Node.js 22.19 or newer (CI uses Node.js 24);
- npm (the lockfile and scripts use npm; the current
packageManageris npm 11); - Git;
ripgrep, used by Runtime'sGreptool.
git clone https://github.com/apache/maka.git
cd maka
npm ci
npm run devnpm run dev starts the Desktop development environment with HMR. To build every workspace before starting Electron, use:
npm run dev:fullDirect Peer and Peer Mesh development additionally requires Rust stable 1.98 or newer and the platform linker (Xcode Command Line Tools on macOS, MSVC Build Tools on Windows). Use the peer-enabled entry point so the native addon is built before Desktop starts:
npm run dev:peer # HMR
npm run dev:full:peer # full buildIf dependencies were installed with ELECTRON_SKIP_BINARY_DOWNLOAD=1, install the Electron platform binary before starting:
node node_modules/electron/install.jsMaka does not bundle a shared model account. On first launch:
- Open
Settings → Models; - Add an API, local-model, or supported account connection;
- Test it and choose a default model;
- Return to the workspace and start a task.
The app distinguishes configured, send-ready, and experimental connection states. An account flow that is not wired into Runtime is not presented as a usable model.
For the public npm package, see the CLI installation and usage guide. The commands below run the development CLI from a source checkout.
Build the workspaces first:
npm run buildThen start the TUI or run one Turn:
npm run cli:dev
npm run cli:dev -- run "Summarize this repository and identify its most important risk"
npm run cli:dev -- run --graph "Implement two independent slices, integrate them, then review the result"
npm run cli:dev -- --helpThe TUI also accepts /graph on, /graph off, and /graph <task>. Non-interactive
--graph runs wait for the durable Graph to finish before printing the final
supervisor output. Graph implementation operators use isolated Git worktrees, so
the source project must be a clean Git worktree.
The repository CLI uses the same Maka Dev profile as a development Desktop build. The
released maka binary continues to use the Maka profile; the two profiles are not copied or
synchronized automatically. Evaluation specs and adapters live in packages/eval.
The backend spine is:
Desktop / TUI / CLI → Runtime Host → SessionManager → AgentRun
↓
Model + Tool Runtime → Runtime Event Log
↓
Context / Session / UI projections
Experiment → Cells → Attempts → Results
↓
Runtime Host executes Maka subjects
Start with ARCHITECTURE.md. It provides the system map, code boundaries, problem-oriented reading paths, and links to the deep dives under docs/architecture/.
apps/desktop/ Electron main / preload / React renderer
packages/core/ Pure contracts for Sessions, Events, Permissions, and Connections
packages/storage/ SQLite operational state, configuration, and payload stores
packages/mcp/ Provider-neutral Model Context Protocol client integration
packages/runtime/ AgentRun, model adapters, tools, context, and recovery
packages/runtime-host/ Single-owner Runtime Host lifecycle, protocol, and client bootstrap
packages/eval/ Experiment cells, attempts, results, and executor/subject adapters
packages/computer-use/ Computer-use backend selection, host lifecycle, and protocol adapters
packages/cli/ TUI and non-interactive CLI
packages/ui/ Shared conversation, Markdown, Artifact, and UI primitives
native/ Rust: the direct-peer addon for Runtime Host and the gitoxide helper
website/ Astro source for maka.apache.org
docs/ Architecture, product, security, privacy, and test contracts
scripts/ Build hygiene, visual checks, smoke tests, and release helpers
skills/ Agent skills shipped with the repository
patches/ Patches applied to npm dependencies at install
experiments/ Platform experiments, currently the Windows sandbox smoke scripts
Workspace data lives under Electron userData by default:
<Electron userData>/workspaces/default/
runtime.sqlite
connection-catalog.json
credential-vault.json
settings.json
artifacts/
- API keys and similar secrets are a local plaintext file (
credential-vault.json), readable only by your OS account. The renderer never sees them. - Tools that write files or run a shell must pass the sandbox boundary first.
runtime.sqliteis the live record. Older JSONL transcripts and ElectronsafeStoragecredential files are not imported; an upgraded workspace can show empty threads, and those credentials must be entered again.- Resuming an interrupted turn is off by default. Set
MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1only if you want Desktop Safe resume, CLI/resume, and startup auto-resume — those calls hit the model and use tokens.
Details: SECURITY.md, privacy, resume.
Before sending a change, read CONTRIBUTING.md.
Common repository-level commands:
npm run build
npm run typecheck
npm test
npm run check:releaseRun one workspace in isolation:
npm --workspace @maka/runtime run test:dist
npm --workspace @maka/eval run test:dist
npm --workspace @maka/desktop run test:distUse refresh:model-metadata to fetch the current catalog from models.dev, update the committed snapshot, and regenerate the derived TypeScript files. A refresh fails closed when any committed model, capability, provider override, or pricing field disappears; after reviewing an intentional upstream removal, acknowledge it with npm run refresh:model-metadata -- --accept-upstream-removals. sync:model-metadata is intentionally offline: it only regenerates those files from the committed snapshot. Keep access-path-specific overrides in model-metadata.ts; do not edit the generated files by hand.
npm run refresh:model-metadata
npm --workspace @maka/core run test:distDesktop real-window and visual verification:
npm --workspace @maka/desktop run e2e
npm --workspace @maka/desktop run smoke:real-windowBefore submitting code, run typecheck, build, and focused tests proportionate to the change, followed by git diff --check.
- Website
- Documentation index and authority map
- Backend architecture
- Product design
- Contributing guide
- Security policy
- DeepWiki, third-party AI-generated documentation the project does not maintain
Maka is licensed under the Apache License 2.0. See NOTICE for attribution information. Third-party components remain subject to their respective licenses and notices.
Apache Maka, Maka, Apache, the Apache feather, and the Apache Maka project logo are either registered trademarks or trademarks of The Apache Software Foundation.
Note
Apache Maka (Incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision-making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. DISCLAIMER-WIP records the issues the project is currently aware of.
Important
Maka is under active development. Data formats, CLI commands, and experimental capabilities may still change.