[DISCUSS] Incubating Proposal for Maka Agent
tison <[email protected]> Wed, 5 Aug 2026 13:49:14 +0800
| Newsgroups | gmane.comp.apache.incubator.general |
|---|---|
| Message-ID | <CALL9TYKyOp0Jky4-cMLcV6znBJTJfmS+9UU4k3pqYwZb4ORy6g@mail.gmail.com> |
--000000000000072d0e06584657a1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi IPMC, I would like to propose Maka[1] as a new apache incubator project, you can find the proposal[2] of Maka for more detail. [1] https://github.com/maka-agent/maka-agent/ [2] https://cwiki.apache.org/confluence/spaces/INCUBATOR/pages/446070971/Maka+P= roposal Best, tison. Full text of the proposal below: ## Abstract Maka is a local-first AI agent runtime and workspace. It records model messages, tool calls, tool results, permission decisions, and termination events in append-only logs. Sessions, model context, durable tasks, and recovery are derived from those logs, allowing interrupted or long-running agent work to be inspected, replayed, resumed, and evaluated. ## Proposal Maka provides a single execution runtime shared by its desktop application, terminal TUI, non-interactive CLI, and headless task runner. Its design separates durable execution facts from the temporary context sent to a model. Maka provides: - Append-only execution records. Model messages, tool calls, tool results, permission decisions, and termination events are persisted before they are projected into user-facing state. - Rebuildable state. Sessions, active context, UI state, and recovery decisions are derived from the event log rather than maintained as independent sources of truth. - Context management without history deletion. Tool-result pruning and LLM compaction reduce the context used for the next inference while preserving the original execution record. - Durable work beyond one turn. The headless runner gives a task its own identity, event log, budgets, permission pauses, continuation, and resume behavior. - Evidence-based completion. The runtime records a model's completion claim separately from verified process and tool outcomes. - Multiple surfaces over one runtime. Maka provides an Electron desktop application, a terminal TUI, a non-interactive CLI, and a headless runner. Maka is written primarily in TypeScript and runs on Node.js. Sessions, settings, credentials, and run records remain on the user's machine by default. ## Background An AI agent combines an LLM with tools, permissions, persistent state, and a control loop. As tasks become longer, the surrounding runtime must handle partial tool execution, context limits, process interruption, permission boundaries, and recovery. Maka focuses on this runtime layer. The public GitHub project was created on 2026-05-27 and has been developed through public issues and pull requests since then. ## Rationale Many agent applications persist a final conversation but not the full execution process that produced it. This makes interrupted work difficult to recover and tool behavior difficult to audit or evaluate. Maka treats execution history as durable evidence and uses that evidence to rebuild state and resume work. The ASF offers neutral ownership, public decision-making, meritocratic community growth, and long-term stewardship. These properties are important for an agent runtime intended to support integrations and products maintained by independent organizations. ## Initial Goals - Transfer the codebase to the ASF and complete name, provenance, license, and IP clearance. - Conduct technical and governance decisions on the public mailing list. - Document a contributor-to-committer path based on sustained, reviewable contributions. - Broaden ownership across runtime, desktop, integrations, documentation, and release engineering. - Produce an Apache-compliant source release and establish a repeatable release process. - Grow adoption without coupling the project to a single model vendor or commercial sponsor. ## Current Status ### Meritocracy Development takes place through public issues and pull requests. Contributions are reviewed on technical merit, and repeat contributors have taken responsibility for runtime, desktop, computer-use, provider, and documentation work. During incubation, the project will make this progression explicit through documented committer criteria and public discussion. ### Community As of 2026-08-03, the repository has 1,104 GitHub stars, 123 forks, and 40 contributors. In the preceding 30 days, 34 authors contributed commits. Collaboration currently takes place through GitHub issues and pull requests; during incubation, project-wide decisions will move to the public development mailing list. ### Core Developers - Jie Wen (jackwener) =E2=80=94 project initiator; runtime architecture and distributed-systems design. He is a PMC member and committer of Apache Arrow, Apache DataFusion, and Apache Doris. - Yuhan Lei (Astro-Han) =E2=80=94 runtime, evaluation, benchmarking, and de= sktop development; also an OpenCLI contributor. - Kun Li (likun666661) =E2=80=94 runtime event-log architecture, the headle= ss task loop, and completion verification. Additional module owners and repeat contributors include Haoqing Wang (hqhq1025, computer-use), Zhanghan Gao (YayoiNanoka), sunheyi6, Nyvo-io, Yongtao Wang (M4n5ter), Colafornia, GabrielDrapor, MicroGery, zhiiw, and others. ### Alignment Maka is intended to be a vendor-neutral runtime used below model providers and end-user applications. ASF governance can keep its interfaces, execution records, and extension points independent of any single vendor. The project also shares engineering concerns with ASF data and infrastructure projects, including append-only logs, projections, durable state, and reproducible execution. ## Known Risks ### Project Name A preliminary web and repository search found unrelated uses of "Maka," including a Chinese design and marketing service and several small open-source projects. None appears to provide the same developer-facing AI agent runtime, but this preliminary search is not a substitute for the ASF name review. The podling will complete `PODLINGNAMESEARCH` during incubation and will rename the project if required by ASF policy. ### Orphan Products The project is young, so long-term continuity has not yet been demonstrated. The risk is reduced by multiple active maintainers and contributors who already own runtime, desktop, headless, and computer-use components. Incubation will focus on documenting these ownership boundaries, adding committers, and making release knowledge shared rather than person-specific. ### Inexperience with Open Source One initial committer is a PMC member and committer of Apache Arrow, Apache DataFusion, and Apache Doris. Several other developers have experience contributing to open-source projects. Most of the proposed community has not yet operated an Apache release or conducted project business on an ASF mailing list. The mentors will help the podling establish release, voting, IP, and community practices, and those practices will be documented so they do not depend on one experienced committer. ### Length of Incubation The project has no fixed graduation deadline. The initial expectation is approximately two years, but graduation will depend on a sustainable and diverse committer base, public governance, shared release ownership, and multiple Apache-compliant releases. ### Homogenous Developers The initial committers currently share overlapping social and professional networks, and much real-time coordination occurs in Chinese. They nevertheless represent multiple employers, a university, and independent contributors. The project will conduct decisions and votes in English on the public development mailing list, improve English documentation, and recruit contributors outside the current networks. ### Reliance on Salaried Developers The initial committers represent several employers, a university, and individual contributors; they are not all paid by one organization. Paid work may nevertheless influence where some contributors spend their time. The podling will track affiliation diversity and broaden the committer base so development and releases do not depend on one employer or a small group. ### Relationships with Other Apache Products Maka does not duplicate an existing ASF product. It operates at the AI agent runtime layer, while sharing concepts with Apache data and infrastructure projects such as append-only logs, projections, and durable state. Future integrations may expose ASF storage, data-processing, and observability systems as tools or backends, but no such integration is required for incubation. ### An Excessive Fascination with the Apache Brand The project seeks neutral governance, public decision-making, a meritocratic committer model, and long-term stewardship. The initial goals focus on community and release practices rather than promotion under the Apache name. ## Documentation - Repository and README: [ https://github.com/maka-agent/maka-agent](https://github.com/maka-agent/mak= a-agent) - Documentation index: [docs/README.md]( https://github.com/maka-agent/maka-agent/blob/main/docs/README.md) - Architecture guide: [ARCHITECTURE.md]( https://github.com/maka-agent/maka-agent/blob/main/ARCHITECTURE.md), with an eight-chapter index and bilingual English/Chinese chapters under [docs/architecture/]( https://github.com/maka-agent/maka-agent/tree/main/docs/architecture). - Additional design and verification documents cover computer-use safety, execution evidence, durable workspaces, permissions, skills, and evaluation= . ## Initial Source The source is currently hosted at [ https://github.com/maka-agent/maka-agent](https://github.com/maka-agent/mak= a-agent). The public repository was created on 2026-05-27 and is licensed under the Apache License, Version 2.0. If the proposal is accepted, the repository will move to [ https://github.com/apache/incubator-maka](https://github.com/apache/incubat= or-maka). A future project website will use [https://maka.apache.org]( https://maka.apache.org). ## Source and Intellectual Property Submission Plan The existing source is licensed under the Apache License, Version 2.0. Before or during code transfer, the podling will: - Obtain ICLAs from all initial committers and determine with the Incubator PMC whether a Software Grant or CCLA is required for any contributed code. - Verify the provenance of the initial codebase and identify code owned by contributors or their employers. - Bring source headers, `LICENSE`, and `NOTICE` files into line with ASF policy. - Remove, replace, or relicense any code or asset that cannot be contributed to the ASF. - Re-run dependency and assembled-artifact license audits before the first Apache release. ### External Dependencies Maka is a TypeScript monorepo. Most of the runtime is implemented in Maka's own workspace packages; the repository currently has 33 direct third-party production dependencies. The full transitive closure is larger and is generated from `package-lock.json` for each release rather than maintained by hand in this proposal. The dependencies fall into five groups: - Runtime and user interfaces. Node.js (currently 22.19 or later) runs the shared runtime, CLI, and headless surfaces. Electron/Chromium hosts the desktop application. React and Astryx provide the desktop UI, while `@earendil-works/pi-tui` provides the terminal TUI. The CLI and headless runner do not require Electron or React. - Model access. The Apache-2.0 Vercel `ai` SDK and its Anthropic, Cohere, Google, OpenAI, and OpenAI-compatible adapters normalize model-provider protocols. Maka does not require a particular commercial model service or a Maka-operated control plane. A user may configure a remote provider or a local compatible endpoint; credentials remain local and are not part of any release. - Agent protocols and local execution. `@modelcontextprotocol/sdk` implements MCP interoperability. `node-pty` and the headless xterm packages provide interactive shell sessions and terminal emulation, `fs-native-extensions` provides cross-process file locking, and `@jackwener/opencli` provides browser automation over CDP. Smaller libraries such as `undici`, `ws`, `yaml`, and `zod` handle networking, configuration, and validation. - Optional integrations. Slack, Lark/Feishu, and WeCom SDKs are used only when the user enables the corresponding bot channel. These services are integrations, not infrastructure required to build or start Maka. - Build and test tooling. TypeScript, esbuild, Vite, Electron Builder, Playwright, Storybook, and Tailwind CSS build and test the project; Biome provides linting and formatting. These tools are not loaded by the CLI or headless runtime. Build outputs that enter a binary release are covered by the release audit described below. #### License and Release Treatment On 2026-08-03, this inventory was regenerated and verified after `npm ci` in a clean checkout. The result matches the checked-in file and records 239 production npm packages: 180 MIT, 21 Apache-2.0, 19 ISC, 15 BSD-3-Clause, 2 BSD-2-Clause, 1 Python-2.0, and 1 BlueOak-1.0.0. These are ASF Category A licenses, and that inventory records no Category X dependency. Generated npm inventory (exact `package@version`, grouped by selected license) The following list is generated from the exact `@maka/desktop` production dependency closure in `package-lock.json` by `scripts/generate-third-party-notices.mjs`: - Apache-2.0 (21) - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@ai-sdk/[email protected]` - `@jackwener/[email protected]` - `@mozilla/[email protected]` - `@vercel/[email protected]` - `@workflow/[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - BSD-2-Clause (2) - `@mixmark-io/[email protected]` - `[email protected]` - BSD-3-Clause (15) - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `@protobufjs/[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - BlueOak-1.0.0 (1) - `[email protected]` - ISC (19) - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - MIT (180) - `@astryxdesign/[email protected]` - `@astryxdesign/[email protected]` - `@colors/[email protected]` - `@formatjs/[email protected]` - `@formatjs/[email protected]` - `@formatjs/[email protected]` - `@hono/[email protected]` - `@larksuiteoapi/[email protected]` - `@modelcontextprotocol/[email protected]` - `@slack/[email protected]` - `@slack/[email protected]` - `@slack/[email protected]` - `@slack/[email protected]` - `@standard-schema/[email protected]` - `@stylexjs/[email protected]` - `@types/[email protected]` - `@types/[email protected]` - `@types/[email protected]` - `@wecom/[email protected]` - `@xterm/[email protected]` - `@xterm/[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - `[email protected]` - Python-2.0 (1) - `[email protected]` This inventory is enforced by `scripts/generate-third-party-notices.mjs`. The script walks the exact desktop production closure, rejects missing or unapproved license metadata, records the selected license for dual-licensed packages, and generates the complete license text shipped as `THIRD_PARTY_NOTICES.txt`. The source distribution does not vendor `node_modules`. Binary distributions carry separate notices for the npm closure, Electron/Chromium, fonts, and icon assets. Build-only dependencies `lightningcss` (MPL-2.0) and `caniuse-lite` (CC-BY-4.0) are used only to build the desktop application. They are not redistributed as components of Maka. Optional macOS dependency The optional macOS computer-use backend uses `cua-driver`, which is based on the MIT-licensed `trycua/cua` project. The `cua-driver` executable and its Rust crates are not included in Maka source or binary distributions. Apache releases ship with this backend disabled, so `cua-driver` is not part of the release dependency inventory above. ### Cryptography Maka is not primarily a cryptographic product; it uses standard TLS/HTTPS libraries for talking to model providers and standard hashing for content-addressed artifacts. If any bundled cryptographic functionality triggers ASF export-notification (ECCN) requirements, we will notify the ASF and complete the required paperwork. ## Required Resources ### Mailing Lists - [email protected] - [email protected] - [email protected] - [email protected] ### Subversion Directory Not requested. ### Git Repositories - [ https://gitbox.apache.org/repos/asf/incubator-maka.git](https://gitbox.apac= he.org/repos/asf/incubator-maka.git) - Mirrored to [ https://github.com/apache/incubator-maka](https://github.com/apache/incubat= or-maka) ### Issue Tracking The community would like to continue using GitHub Issues at [ https://github.com/apache/incubator-maka/issues](https://github.com/apache/= incubator-maka/issues) . ### Other Resources The community would like to continue using GitHub Actions for continuous integration. No additional infrastructure is currently required. ## Initial Committers | Name | GitHub ID | Mail Address | Affiliation | | --- | --- | --- | --- | | Jie Wen | jackwener | [email protected] | Botiverse, Inc. | | Yuhan Lei | Astro-Han | [email protected] | Shanghai CENO New Material Technology Co., Ltd. | | Kun Li | likun666661 | [email protected] | Shanghai Geshu Zhizhi Technology Co., Ltd. | | Zhanghan Gao | YayoiNanoka | [email protected] | South China University of Technology | | Haoqing Wang | hqhq1025 | [email protected] | Beijing University of Posts and Telecommunications | | Yuhang Chang | MicroGery | [email protected] | Shenzhen Morphi Intelligence Technology Co., Ltd. | | Yongtao Wang | M4n5ter | [email protected] | Individual | ## Sponsors ### Champion tison [[email protected]] ### Nominated Mentors - tison [[email protected]] - Hao Ding [[email protected]] - Zhuoran Shang [[email protected]] - Xinyu Tan [[email protected]] ### Sponsor Entity - The Incubator --000000000000072d0e06584657a1--