apache / maka
- понедельник, 24 августа 2026 г. в 00:00:08
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.
Incubating at The Apache Software Foundation
A local-first Agent workspace built for real work.
Maka 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.
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. The macOS Apple Silicon desktop build is an early public release; data formats, CLI commands, and experimental capabilities may still change.
Read Maka Backend Architecture for the design.
| Entry point | Best for | Current capability |
|---|---|---|
| Desktop | Daily interaction, file and Artifact workflows, model and permission setup | Electron + React with streaming sessions, tool timelines, branching, search, and recovery |
| TUI / CLI | Using Maka in the current project directory or running one non-interactive Turn | maka, maka run; shares workspace and model connections with Desktop |
| Eval | Reproducible benchmark experiments across Maka and external subjects | maka eval run <spec> --out <directory> |
Read, Write, Edit, Bash, Glob, Grep. Computer Use and catalog skills are optional and not on by default;Apache Maka has not made an Apache release yet. Everything currently published from this repository or from a package registry was produced before or during incubation, is not an Apache Software Foundation release, and has not been reviewed or voted on by the Incubator PMC.
Once Apache releases exist, the official release is the source release published by the ASF and approved by the podling PPMC and the Incubator PMC. A package built from that source and distributed elsewhere, for example through a package registry or as a Desktop installer, is a convenience artifact rather than the release itself, and it is valid only when it is built from an approved source release. .github/ASF_SOURCE_RELEASE.md holds the candidate contract, signing path, and verification steps.
Until an approved source release exists, this README recommends no prebuilt download. Build and run Maka from source as described below. Desktop currently targets Apple Silicon Macs (arm64). Intel Macs and Linux are not supported yet. Windows is an unsigned preview, not a supported release tier.
packageManager is npm 11);ripgrep, used by Runtime's Grep tool.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:fullIf 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:
Settings → Models;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 six bilingual deep dives.
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/runtime/ AgentRun, model adapters, tools, context, and recovery
packages/eval/ Experiment cells, attempts, results, and executor/subject adapters
packages/cli/ TUI and non-interactive CLI
packages/ui/ Shared conversation, Markdown, Artifact, and UI primitives
docs/ Architecture, product, security, privacy, and test contracts
scripts/ Build hygiene, visual checks, smoke tests, and release helpers
Workspace data lives under Electron userData by default:
<Electron userData>/workspaces/default/
runtime.sqlite
connection-catalog.json
credential-vault.json
settings.json
artifacts/
credential-vault.json), readable only by your OS account. The renderer never sees them.runtime.sqlite is the live record. Older JSONL transcripts and Electron safeStorage credential files are not imported; an upgraded workspace can show empty threads, and those credentials must be entered again.MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1 only 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 test
npm --workspace @maka/eval test
npm --workspace @maka/desktop testUse 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 testDesktop 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.
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.