maka
Apache Maka (Incubating) is a local-first AI agent workspace. Model messages, tool calls, tool results, permission decisions, and termination events are recorded as an append-only log.
What is it?
What it is
Apache Maka (Incubating) is a local-first Agent workspace built for real work. It inspects projects, runs tools under a sandbox boundary, and records model messages and tool calls as recoverable execution facts — on your machine, through one Runtime Host. It provides a Desktop (Electron + React), a TUI/CLI, and an Eval surface, all sharing a single Runtime Host that executes agent runs.
Why it exists
Maka exists so that agent work stays on your machine and your data stays local by default, while still letting you bring any model (cloud API, local model, or compatible gateway). It keeps a durable execution record of model messages, tool calls, tool results, and turn outcomes so history is not lost when context is shortened, and it funnels Desktop, terminal, and evaluation workflows through one Runtime Host so behavior is consistent and recoverable across surfaces.
Who should use it
Developers and AI enthusiasts seeking a local-first agent workspace with desktop, CLI, and evaluation features.
Who should avoid it
Users requiring a stable production release, Linux users (currently unsupported), or those uncomfortable with early-stage experimental software.
Stars over time
No change stars in the last 1 day
How it works
A quick walkthrough in plain English
How maka works in 4 steps
Step 1 of 4
Something triggers the flow
A schedule, webhook, or manual click tells maka to start.
Features
Advantages
- Apache Software Foundation incubation provides governance, license clarity, and a recognized vendor-neutral home
- Local-first design keeps sensitive sessions, credentials, and run history on the user's machine rather than a vendor cloud
- Bring-your-own-model approach avoids vendor lock-in and supports cloud APIs, local models, or gateways
- Event-sourced execution record enables recovery, branching, replay, and trustworthy auditing of agent behavior
- Single Runtime Host shared across Desktop, CLI, and evaluation reduces behavioral drift between surfaces
- Clear sandbox boundary and explicit approval for tool invocations that leave it strengthens safety
- Multiple first-class surfaces (Desktop, TUI/CLI, Eval) cover interactive, scripted, and benchmark use cases
- Built-in evaluation framework with declarative specs supports reproducible agent benchmarking
- Open-source under Apache-2.0 with transparent NOTICE and third-party attribution
- Active development with documented architecture, contributing guide, and security policy
- Strong typing via TypeScript and modular package layout improve maintainability and extensibility
- Crash recovery plus opt-in safe resume reduces lost-work risk for long-running agent turns
Disadvantages
- No Apache source release has been published yet; current artifacts are pre-incubation and not officially endorsed by the ASF
- Limited platform support: stable desktop build targets only macOS Apple Silicon, with Windows as an unsigned preview and Linux not yet supported
- Project is in Apache Incubator status, meaning infrastructure, communications, and decision-making are still stabilizing
- Active development implies data formats, CLI commands, and experimental capabilities may change without notice
- Requires a relatively recent toolchain: Node.js 22.19+ (CI uses Node 24), npm 11, Git, and ripgrep, raising setup friction
- Peer mesh development additionally requires Rust 1.98+ and platform-specific linkers (Xcode CLT / MSVC), adding native-build complexity
- No bundled model account or shared credentials; users must configure their own model connections on first run
- Credentials are stored in a local plaintext file (`credential-vault.json`) readable by the OS account, which may not meet strict enterprise secret-management requirements
- Upgrade path is conservative: older JSONL transcripts and legacy safeStorage credentials are not auto-imported, which can show empty threads after upgrade
- Safe resume and auto-resume are off by default and require an explicit environment variable to enable
- Several capabilities are marked experimental or optional (e.g., Computer Use, catalog skills, IM bots), so feature availability is uneven
- Prebuilt downloads are not recommended until an approved Apache source release exists, forcing users to build from source for now
- DeepWiki documentation is third-party AI-generated and may not be authoritative
Installation
native
Clone the repository (git clone https://github.com/apache/maka.git), cd into the project, run npm ci to install dependencies, then use npm run dev to start the Desktop development environment with HMR. For CLI/TUI usage, first run npm run build, then npm run cli:dev. Requirements: Node.js 22.19+, npm, Git, ripgrep.
FAQ
What are the minimum system requirements to run Maka?
Node.js 22.19 or newer (CI uses Node.js 24), npm (the lockfile and scripts use npm; the current packageManager is npm 11), Git, and ripgrep (used by the Grep tool). The Desktop app currently targets macOS Apple Silicon (arm64); Intel Macs and Linux are not yet supported, and Windows is an unsigned preview.
How do I install and start Maka on macOS?
Clone the repository (git clone https://github.com/apache/maka.git), cd into the directory, run npm ci to install dependencies, then start the Desktop development environment with npm run dev. For a full build before starting Electron, use npm run dev:full. If you need peer-enabled features, also install Rust stable 1.98 or newer and the platform linker, then use npm run dev:peer or npm run dev:full:peer. If you set ELECTRON_SKIP_BINARY_DOWNLOAD=1, run node node_modules/electron/install.js before starting.
How can I run a single turn using the CLI?
First build the workspaces with npm run build. Then run npm run cli:dev -- run "Your task". You can optionally add --graph to wait for the durable Graph to finish before printing the final supervisor output. The TUI also accepts /graph on, /graph off, and /graph <task> commands.
How do I configure a model provider in Maka?
On first launch, open Settings → Models, add an API, local-model, or supported account connection, test it, and choose a default model. The app distinguishes configured, send-ready, and experimental connection states; only connections wired into Runtime are presented as usable models.
Where does Maka store my data and how is it secured?
Workspace data lives under Electron userData by default: runtime.sqlite (the live record), connection-catalog.json, credential-vault.json (API keys and secrets in plaintext readable only by your OS account), settings.json, and artifacts/. Tools that write files or run a shell must pass the sandbox boundary first. Older JSONL transcripts and Electron safeStorage credential files are not imported; an upgraded workspace may show empty threads and credentials must be entered again.
Featured in Videos
YouTube tutorials and walkthroughs for maka
Alternatives
Similar projects ranked by category, topics, and text overlap.