mycode-cli
Interactive coding agent CLI and web server, built on mycode-sdk.
Quick Start
Requires Python 3.12+. Install via uv:
uv tool install mycode-cli
Set a provider API key, then start:
export ANTHROPIC_API_KEY=...
mycode
Web UI (default at http://localhost:8000):
mycode web [--port <port>] [--hostname <hostname>]
Single message, non-interactive:
mycode run "explain how the session store works"
Providers
| Provider | id | Env var |
|---|---|---|
| Anthropic | anthropic |
ANTHROPIC_API_KEY |
| OpenAI | openai |
OPENAI_API_KEY |
| Google Gemini | google |
GEMINI_API_KEY |
| Moonshot | moonshotai |
MOONSHOT_API_KEY |
| MiniMax | minimax |
MINIMAX_API_KEY |
| DeepSeek | deepseek |
DEEPSEEK_API_KEY |
| Z.AI | zai |
ZAI_API_KEY |
| OpenRouter | openrouter |
OPENROUTER_API_KEY |
| Alibaba Cloud | alibaba |
DASHSCOPE_API_KEY |
| xAI | xai |
XAI_API_KEY |
| OpenAI-compatible | openai_chat |
- |
Run /model in the TUI to see available models.
Configuration
A config file is optional — API keys from the environment are usually enough. Create ~/.mycode/config.json (global) or .mycode/config.json in a project to customize further.
Expose additional models on an existing provider, or register a custom endpoint such as a private or regional deployment:
{
"providers": {
"openrouter": {
"models": {"deepseek/deepseek-v4-pro": {}}
},
"my-endpoint": {
"type": "openai_chat",
"base_url": "https://example.com/v1",
"api_key": "${MY_API_KEY}",
"models": {"my-model": {}}
}
}
}
A providers key matching a built-in provider id overrides it; other names are custom providers and must declare a type (one of the ids in the table above). api_key accepts a literal value or a ${ENV_VAR} reference. {} is enough for models covered by the bundled models.dev metadata; add fields only for models it doesn't list.
Built-in Moonshot, MiniMax, and Z.AI providers default to international endpoints. Override
base_urlfor China endpoints.
See docs/config.md for the full schema — permission levels, web providers, and resolution rules.
Skills and instructions
The CLI assembles the system prompt from instructions files and discovered skills.
AGENTS.mdfiles are injected as project instructions:~/.mycode/AGENTS.md(fallback~/.agents/AGENTS.md), then everyAGENTS.mdfrom the project root down to the current directory. Later files take precedence.- Skills are directories containing a
SKILL.md. Scan roots, lowest to highest priority:~/.agents/skills/,~/.mycode/skills/, then.agents/skills/and.mycode/skills/from the project root down to the current directory. Later roots override earlier ones by skill name.SKILL.mdneeds YAML frontmatter withnameanddescription. - A standalone
/<skill-name>token in a message loads the matching skill, e.g.Use /fastapi to review this route. Names matching built-in slash commands are reserved.
Terminal UI
| Key | Action |
|---|---|
| Enter | Send the message; with a completion menu open, accept the highlighted entry |
| Esc then Enter, or Alt+Enter | Insert a newline |
| Esc | Interrupt the reply; close a selection list |
| Ctrl+C | Interrupt the reply; otherwise clear the input |
| Ctrl+D | Exit (empty input only) |
| Ctrl+L | Clear the screen |
| Up / Down | Move between lines; on the first or last line, browse input history |
Messages typed while a reply runs are queued and sent in order after it finishes.
@path attaches a file to the message: text files as snapshots, images and PDFs as image or document input. Pasted file paths become @path references.
Slash commands: /new /resume /rewind /model /effort /clear /compact /q. exit and quit also exit.
CLI Reference
mycode start interactive session (new)
mycode --continue resume the most recent session
mycode --session <id> resume a specific session
mycode run "..." send one message, non-interactive
mycode run --effort high "..." set effort for one run
mycode web start web server (default port 8000)
mycode web --dev API only, no static files
mycode session list list saved sessions
License
MIT
Metadata
Release files for mycode-cli 0.18.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mycode_cli-0.18.0.tar.gz | 3.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mycode_cli-0.18.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.6 MB
Release files / mycode_cli-0.18.0.tar.gz
| Download URL | mycode_cli-0.18.0.tar.gz |
|---|---|
| Size | 3.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f9d2f5f082d92216cfb194aa600f3517dcef479490f4e91d32a8156b173bbf0
|
|
BLAKE2b-256 checksum How to use checksums |
223df05da8f02f2104641d8238de3c30d384aa58e0a11b6432a066c0cb43a343
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / mycode_cli-0.18.0-py3-none-any.whl
| Download URL | mycode_cli-0.18.0-py3-none-any.whl |
|---|---|
| Size | 3.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f4a22fd91b37d7ea923dbdfe2ff850fc79b8cf6ac25d03c84129f96549110dc3
|
|
BLAKE2b-256 checksum How to use checksums |
870c8baff72eecb26c199eb8d05c478592e5be08634618a947be8bea83ab28de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|