blob: 7a41242a01dd1d312f3765124b8ce7b36b266b1b [file] [view]
# Maka CLI
[简体中文](https://github.com/maka-agent/maka-agent/blob/main/packages/cli/README.zh-CN.md)
Maka is a local-first agent workspace. The `maka-agent` npm package installs the interactive
terminal UI, the non-interactive CLI, Runtime Host tooling, and the Eval command.
> **Beta:** The CLI is under active development. Commands and local data formats may change before
> the stable release.
## Requirements
- Node.js 22.19.0 or newer;
- a terminal with interactive input for the TUI;
- a configured model connection for agent turns; first-run setup currently supports API-key
providers.
The release gate validates the following installed-package matrix:
| Platform | Architecture | Node.js | TUI, CLI, Runtime Host | Real Harbor/Pier Eval |
| --- | --- | --- | --- | --- |
| Linux | x64 | 22.19 | Validated | Preflight only |
| Linux | x64 | 24 | Validated | Validated |
| macOS | arm64 | 24 | Validated | Preflight only |
| Windows | x64 | 24 | Validated | Preflight only |
Other combinations that satisfy the Node.js minimum may work, but are not part of the current
release gate. Real Eval executor validation currently runs on Linux x64 with Node.js 24.
## Install
Install the current beta explicitly from the `next` dist-tag:
```sh
npm install --global maka-agent@next
maka --version
maka --help
```
`maka-agent` is an alias for `maka`. For a one-off invocation, use
`npx --yes maka-agent@next`; the unrelated `maka` package on npm is not this project.
`runtime-host service install` uses the persistent global installation above; `runtime-host setup`
creates its own managed copy from the exact package invoked by `npx`.
## First run
Start Maka from the project directory the agent should work in:
```sh
cd path/to/project
maka
```
If no model connection exists, Maka opens the provider setup flow. Select a provider, enter its API
key, choose the enabled models, and save. Run `/setup` later to add or update a provider and `/model`
to switch models.
API keys and workspace state stay in the local `Maka` profile. The current credential vault is a
local plaintext file protected by the operating-system account boundary; on POSIX systems Maka
enforces owner-only directory and file modes. It is not an OS keychain. See the repository
[security policy](https://github.com/maka-agent/maka-agent/blob/main/SECURITY.md) for the current
boundary.
Run one non-interactive turn with:
```sh
maka run "Summarize this project and identify its highest-risk area"
maka run --help
```
Maka asks before privileged tool operations by default. `maka run --yolo` grants the task full file
and network access and should only be used in an environment you are prepared to let the task
modify.
## Upgrade
While using prereleases, keep the `next` tag explicit:
```sh
npm install --global maka-agent@next
maka --version
```
Do not use a bare `npm update --global maka-agent` for beta upgrades: global npm updates follow the
`latest` tag and may select a different release line. After a stable release is available, install it
with `npm install --global maka-agent@latest`.
## Remote Runtime Host setup
To set up a persistent remote Runtime Host from an exact released package on Linux:
```sh
npx --yes maka-agent@next runtime-host setup \
--principal my-client \
--preset terminal-client
```
Rerunning setup replaces that Client credential. The service no longer depends on the temporary
`npx` cache after setup succeeds.
## Uninstall
```sh
# Linux only, when a managed Runtime Host service was installed
npx --yes maka-agent@next runtime-host service uninstall
# If Maka was installed globally
npm uninstall --global maka-agent
```
Remove the managed service before removing a global package so systemd does not retain a unit
pointing to the deleted CLI. Neither command deletes model connections, credentials, sessions, or
artifacts.
Those remain in the profile shared by the released CLI and Desktop app:
| Platform | Profile directory |
| --- | --- |
| macOS | `~/Library/Application Support/Maka` |
| Linux | `$XDG_CONFIG_HOME/Maka`, or `~/.config/Maka` when unset |
| Windows | `%APPDATA%\Maka` |
Back up and remove that directory separately only when you intend to delete all local Maka data.
Close the CLI and Desktop app first.
## Eval
Run a declarative experiment with:
```sh
maka eval run experiment.json --out .maka-eval/run-001
```
The npm package includes Maka's Eval runtime, relay, wrapper, and container policy assets. It does
not install the executor's external software or machine-local benchmark data. Before starting any
trial, Eval checks the exact prerequisites declared by the spec and fails without running a cell if
one is missing.
For Docker-based Harbor or Pier specs, provide:
- a reachable Docker CLI and daemon;
- a dedicated Python environment containing the exact framework version declared by
`executor.config.frameworkVersion`;
- an executable interpreter through the environment variable named by `pythonPathEnv`;
- writable trial storage through `trialsRootEnv`;
- for Pier, the task directory named by `tasksRootEnv`;
- every machine path and subject credential environment variable declared by the spec.
Harbor and Pier must use separate Python environments. The currently validated versions are:
```sh
python3.12 -m venv ~/.venvs/maka-harbor-0.20.0
~/.venvs/maka-harbor-0.20.0/bin/python -m pip install 'harbor==0.20.0'
python3.12 -m venv ~/.venvs/maka-pier-0.3.0
~/.venvs/maka-pier-0.3.0/bin/python -m pip install 'datacurve-pier==0.3.0'
```
Set the spec's `pythonPathEnv` to the corresponding `bin/python` path. Do not reuse one environment
for both frameworks: their dependency and trial contracts differ. Advanced experiment and
toolchain details live in the
[Eval documentation](https://github.com/maka-agent/maka-agent/tree/main/packages/eval).
## Troubleshooting
Start by recording the installed versions:
```sh
node --version
npm --version
maka --version
```
- If `maka` is not found after a global install, ensure npm's global executable directory is on
`PATH`.
- If no model is available, start the TUI and run `/setup`.
- If Eval refuses to start, follow the reported environment-variable name and expected framework
version; it does not install or silently substitute missing prerequisites.
- When reporting a problem, include the three versions above, the operating system and
architecture, the command, and the complete error with credentials removed.
Report issues at <https://github.com/maka-agent/maka-agent/issues>.
## Links
- [Repository](https://github.com/maka-agent/maka-agent)
- [Release operations](https://github.com/maka-agent/maka-agent/blob/main/docs/cli-npm-release.md)
- [License](https://github.com/maka-agent/maka-agent/blob/main/LICENSE)