# maka

> Local-first desktop, terminal and CLI agent workspace that logs every model and tool event

- Repository: https://github.com/apache/maka
- Category: AI agents
- Stars: 5,865 · Forks: 563 · Language: TypeScript · License: Apache-2.0
- Experience: Some experience
- Page: https://ir.adyog.com/repos/apache/maka/

Maka runs AI agents that read files, run shell commands and edit code. Its main idea is that the event log is the runtime. Every model message, tool call, permission decision and ending is added to an append-only log of RuntimeEvents.

The desktop screen, the next prompt sent to the model and crash recovery are all built from that log. Old tool output can be dropped from the next prompt and still stay in the log. Sessions, settings and run records stay on your machine, and you bring your own model: a cloud API, a local model or a compatible gateway.

Desktop, the TUI and CLI are thin clients of a single Runtime Host. The project also ships an evaluation package that benchmarks Maka against other agent harnesses on the same model with the official verifier. It says it publishes per-task results in docs/eval. The README does not name specific rival tools. It is an Apache Incubator project with no Apache release yet, and the README warns that data formats and commands may change.

## What it does

- **Append-only event log**: Messages, tool calls, permission decisions and terminations are all recorded as events. The UI, context and crash recovery are projections of that log.
- **Desktop, TUI and CLI**: An Electron desktop app, a terminal UI and a non-interactive CLI share one Runtime Host. You can run a single task from the command line with `run`.
- **Bring your own model**: You add a cloud API, a local model or a compatible gateway under Settings → Models, test it, and pick a default. No shared model account is bundled.
- **Graph runs and resume**: A `--graph` mode splits work into independent slices that use isolated Git worktrees. Interrupted turns can be resumed with `/resume`, which calls the model again and uses tokens.
- **Published evaluations**: An eval package runs experiments across cells and attempts. The project says it ships per-task results with each benchmark report.

## What you could build

- Run a coding agent on a local repository and review exactly what it did afterwards.
- Summarize a codebase and flag its main risks from the command line with a single `run` command.
- Split a larger change into independent slices and have a supervisor integrate and review them.
- Compare agent harnesses on the same model using the eval package.
- Study an event-sourced agent runtime by reading its architecture docs and TypeScript code.

## Who it's for

Developers comfortable with Node.js, npm and Git who want a local, inspectable agent runtime. They should have a model API key or a local model ready.

## Get started

Install Node.js 22.19 or newer, Git and ripgrep, then clone the repo and run the dev command to open the desktop app. On first launch, go to Settings → Models, add and test a model connection, then start a task.

```
git clone https://github.com/apache/maka.git
cd maka
npm ci
npm run dev
```
```
npm run build
```
```
npm run cli:dev -- run "Summarize this repository and identify its most important risk"
```

Tags: agent-runtime, event-sourcing, local-first, electron, cli
