Open-source terminal AI coding assistant
Project description
OpenLaoKe
Open-source terminal AI coding assistant.
Features
- Interactive REPL with rich terminal UI
- Multi-Provider Support - Anthropic, OpenAI, Ollama, LM Studio, and custom endpoints
- Tool System with 9 built-in tools:
Bash- Execute shell commands with streaming outputRead- Read file contents with line range supportWrite- Create/overwrite filesEdit- Targeted find-and-replace file edits with diff outputGlob- Fast file pattern matching (respects .gitignore)Grep- Regex search across files with multiple output modesAgent- Spawn sub-agents for parallel workTaskkill- Kill running tasksNotebookWrite- Write Jupyter notebook cells
- MCP Support - Connect to external MCP tool servers
- Permission System - Three modes: default, auto, bypass
- Session Persistence - Auto-save and resume sessions
- Cost Tracking - Real-time token usage and cost display
- Slash Commands - 11 built-in commands (
/help,/model,/cost,/compact, etc.) - Hook System - Extensible pre/post hooks for tool and API calls
- Proxy Support - No proxy, system proxy, or custom proxy
Installation
# Clone and install
cd OpenLaoKe
pip install -e .
# Or with uv (recommended)
uv pip install -e .
Usage
# First run (shows configuration wizard)
openlaoke
# Reconfigure
openlaoke --config
# Non-interactive mode
openlaoke "Write a Python script that sorts a list"
# With options
openlaoke -m gpt-4o -p auto
openlaoke --provider ollama -m llama3.2
openlaoke --proxy http://127.0.0.1:7890
openlaoke --cwd /path/to/project
Supported Providers
| Provider | Type | API Key Required |
|---|---|---|
| Anthropic | Cloud | Yes |
| OpenAI | Cloud | Yes |
| Ollama | Local | No |
| LM Studio | Local | No |
| OpenAI-Compatible | Custom | Optional |
Environment Variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Anthropic API key |
OPENAI_API_KEY |
OpenAI API key |
OPENLAOKE_MODEL |
Default model |
Slash Commands
| Command | Description |
|---|---|
/help |
Show available commands |
/exit |
Exit OpenLaoKe |
/clear |
Clear screen and conversation |
/model [name] |
Show or change model |
/permission [mode] |
Change permission mode |
/compact |
Compact conversation |
/cost |
Show session cost and usage |
/cwd [path] |
Show or change working directory |
/resume |
Resume last session |
/commands |
Show example commands |
/settings |
Show current settings |
Architecture
openlaoke/
├── core/ # Core systems
│ ├── state.py # Centralized state management
│ ├── tool.py # Tool base class and registry
│ ├── task.py # Task lifecycle management
│ ├── multi_provider_api.py # Multi-provider API client
│ ├── repl.py # REPL interaction loop
│ ├── config_wizard.py # Configuration wizard
│ └── ...
├── tools/ # Tool implementations
├── commands/ # Slash commands
├── services/ # External services (MCP)
├── components/ # UI components (TUI)
├── types/ # Type definitions
└── utils/ # Utilities
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run linter
ruff check .
# Run tests
pytest
# Build package
python -m build
Configuration
User config is stored at ~/.openlaoke/config.json. You can edit it directly or use /settings in the REPL.
License
GPLv3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
openlaoke-0.1.8.tar.gz
(333.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
openlaoke-0.1.8-py3-none-any.whl
(362.5 kB
view details)
File details
Details for the file openlaoke-0.1.8.tar.gz.
File metadata
- Download URL: openlaoke-0.1.8.tar.gz
- Upload date:
- Size: 333.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53b700f65c8e60249efcf8fef1d5532ba7e9703b25d86c9d77a36881080907f0
|
|
| MD5 |
12783f724b424f129a496e6c39347875
|
|
| BLAKE2b-256 |
9df96e734b7fa03dd5da3e01b1b6128db681cac81c4816e771dc6c6ee565352b
|
File details
Details for the file openlaoke-0.1.8-py3-none-any.whl.
File metadata
- Download URL: openlaoke-0.1.8-py3-none-any.whl
- Upload date:
- Size: 362.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f149f182dc874642865a4d6d43003c999714c96b515d08a2373176789fa1acf
|
|
| MD5 |
36c218390b7d7cb732838dcc088fc878
|
|
| BLAKE2b-256 |
29033eefb70733c848eaf41f561281eac9ec8f0dfafafbd88fcd270a4f0f48eb
|