codelean
v1.0.0
Published
Faster, cheaper, safer Codex-like coding agent with multi-provider model routing
Maintainers
Readme
codelean
codelean is a faster, cheaper, safer Codex-like coding agent with a multi-provider model boundary. It keeps the provider layer small so you can switch cloud model backends without changing caller code.
Current Scope
- Use a Codex fork as the future execution base.
- Optimize for lower cost, lower latency, and safer execution.
- Keep Codex-like file/shell/approval/diff/test capabilities as the product direction.
- Provide a unified
ModelProviderboundary for model calls, streaming, tool-call events, usage, and errors. - Support
anthropicdirectly and OpenAI-compatible providers includingopenai,qwen, andmimo. - Keep
geminiplanned but not implemented yet.
Install
npm install
npm run buildUsage
MiMo
MiMo is OpenAI-compatible. The default MiMo base URL is https://api.xiaomimimo.com/v1, and the default model is mimo-v2.5-pro.
export MIMO_API_KEY="sk-..."
node dist/cli/index.js --provider mimo --prompt "Explain this repo"You can also set defaults:
export CODELEAN_PROVIDER="mimo"
export CODELEAN_MODEL="mimo-v2.5-pro"
export MIMO_API_KEY="sk-..."
node dist/cli/index.js --prompt "Write a TypeScript function"For Token Plan usage, override the base URL:
export MIMO_BASE_URL="https://token-plan-cn.xiaomimimo.com/v1"Anthropic
export ANTHROPIC_API_KEY="sk-ant-..."
node dist/cli/index.js --provider anthropic --model claude-sonnet-4-5 --prompt "Explain this repo"OpenAI-compatible providers
export OPENAI_API_KEY="sk-..."
node dist/cli/index.js --provider openai --model gpt-4o --prompt "Explain this repo"
export QWEN_API_KEY="sk-..."
node dist/cli/index.js --provider qwen --model qwen-plus --prompt "Explain this repo"Environment
| Variable | Description |
|----------|-------------|
| CODELEAN_PROVIDER | Default provider: anthropic, openai, qwen, or mimo |
| CODELEAN_MODEL | Default model for the selected provider |
| CODELEAN_API_KEY | Generic API key override for the selected provider |
| CODELEAN_BASE_URL | Generic base URL override for OpenAI-compatible providers |
| ANTHROPIC_API_KEY | Anthropic API key |
| OPENAI_API_KEY | OpenAI API key |
| QWEN_API_KEY | Qwen API key |
| MIMO_API_KEY | MiMo API key |
| MIMO_BASE_URL | MiMo base URL, default https://api.xiaomimimo.com/v1 |
| CODELEAN_MAX_OUTPUT_TOKENS | Max output tokens, default 4096 |
Code Structure
src/
cli/index.ts # Minimal CLI
client.ts # CodeleanClient
config.ts # Multi-provider config
providers/anthropic-provider.ts # Anthropic Messages API adapter
providers/openai-compatible-provider.ts # OpenAI-compatible adapter base
providers/mimo-provider.ts # MiMo adapter
providers/provider-factory.ts # Provider selection
types.ts # Shared request/response/event typesNext Steps
- Add provider-specific tests with mocked HTTP responses.
- Add a real
GeminiProviderimplementation. - Add fallback routing between primary and secondary providers.
- Map Codex internal tool calls into the unified provider boundary.
- Integrate this provider layer into a Codex fork while preserving Codex approval and sandbox behavior.
