Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CLI Options

meka [OPTIONS] [PROMPT]
meka <COMMAND>

Commands

setup

Run the interactive configuration wizard. Prompts for provider, authentication, model, and base URL, then writes the configuration to ~/.config/meka/config.toml.

meka setup

This wizard also runs automatically on first launch when no config file exists.

export

Export a session as Markdown.

meka export <SESSION_ID> [-o <PATH>]

Use -o - to print to stdout. See Sessions for details.

delete

Delete one or more sessions by UUID, or all sessions with --all.

meka delete <SESSION_ID>...
meka delete --all

list

List past sessions with ID, last update time, and a preview.

meka list [-n <LIMIT>]

Default limit: 20.

Arguments

[PROMPT]

Run the agent’s first turn immediately with this text as the user message, then drop into the interactive REPL for follow-up. Pair with --oneshot to exit after the first turn instead of opening the REPL.

meka "list all files larger than 1MB in the current directory"   # first turn, then REPL
meka --oneshot "list all files larger than 1MB"                  # first turn, then exit

When omitted, meka starts the REPL with no initial input.

Options

-c, --continue [SESSION_ID]

Resume a session. Without a session ID, resumes the most recently updated session. With a session ID, resumes that specific session — accepts either the full UUID or any unique leading prefix (most-recent-first if the prefix matches more than one).

meka -c                                          # resume last session
meka -c 550e8400-e29b-41d4-a716-446655440000     # full UUID
meka -c 550e                                     # prefix; works if unique

Errors if the session does not exist, the prefix matches multiple sessions (with the matching IDs listed for disambiguation), or the session is locked by another meka instance.

--permission <MODE>

Set the initial permission mode. Accepts none (or n), read (or r), ask (or a), write (or w).

meka --permission write
meka --permission ask

Default: read.

--provider <NAME>

Set the LLM provider. Overrides MEKA_PROVIDER and the config file.

meka --provider claude-oauth

Supported values: openai-api, claude-api, claude-oauth.

-m, --model <MODEL>

Set the model name. Overrides MEKA_MODEL and the config file.

meka -m gpt-4o-mini

--base-url <URL>

Set a custom API base URL. Overrides OPENAI_BASE_URL and the config file.

meka --base-url http://localhost:11434/v1

--no-stream

Disable streaming mode. The agent waits for the complete response before displaying it. By default, responses are streamed token-by-token.

meka --no-stream

--render-mode <MODE>

Set the output render mode. Accepts bat (default), termimad (or rich), or raw.

  • bat: Syntax-highlighted markdown output via bat.
  • termimad: Full terminal formatting (box-drawn code blocks, reflowed paragraphs, formatted tables).
  • raw: Raw markdown printed verbatim with aligned tables.
meka --render-mode raw

Can also be set permanently via display.render_mode in the config file.

--thinking

Enable extended thinking (claude-api and claude-oauth providers).

meka --thinking

--thinking-budget <TOKENS>

Set the extended thinking token budget. Implies --thinking.

meka --thinking-budget 20000

--instructions <STRING>

Override prompt.instructions for this run, replacing whatever is in the config file. Also reads from MEKA_INSTRUCTIONS if the flag is not given.

meka --instructions "Be terse. No code fences in answers."

--skill <NAME>

Invoke a skill as the first turn. Mirrors the REPL slash command /skill <name> [extra...] — the positional [PROMPT] arg, if given, is prepended to the rendered skill body as additional context. Pair with --oneshot to exit after the turn instead of opening the REPL.

meka --skill download-videos "https://example.com/video"             # first turn, then REPL
meka --skill download-videos --oneshot "https://example.com/video"   # first turn, then exit

Errors out with a clean message if the skill name is unknown.

--oneshot

Exit after the first turn finishes. Requires either the positional [PROMPT] or --skill <NAME> — without one of those, meka has nothing to do. Useful for scripts and CI invocations.

meka --oneshot "summarize the last commit"
meka --oneshot --skill deploy "to staging"

--eager-load-tool <SERVER:TOOL>

Eager-load a specific MCP tool for this session, bypassing the load_tool round-trip. The tool’s schema ships in the cacheable tools-array prefix from turn 1 instead of being deferred. Mirrors the per-server eager_load_tools config field — repeatable, raw tool names (the server-advertised form, not mcp__<server>__<tool>).

Particularly useful for scripted runs that know up front which tools they’ll need. The flag appends to whatever eager_load_tools lists in config.toml for that server — it doesn’t replace existing entries. Unknown server names log a warning and are skipped.

meka --eager-load-tool notion:search --eager-load-tool github:create_issue \
     --oneshot "search Notion for the deploy runbook and open a GitHub issue"

-v, --verbose

Increase log verbosity. Can be repeated up to three times.

meka -v      # info
meka -vv     # debug
meka -vvv    # trace

--help

Print help information.

--version

Print version information.