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.