open source terminal-based coding agent
Project description
Open source coding agent in your terminal
View Demo
·
Report Bug
·
Request Feature
Table of Contents
About The Project
opencoder is a simple recursive function combined with the Function Calling API + Model Context Protocol to create agentic behavior.
- ❌ No Auth Screens
- ❌ No Provider Lock-in
API Key(s) + A Terminal Is All You Need™️
Built With
Getting Started
Prerequisites
- Python>=3.13
- Docker (Optional but highly recommended)
Installation
> MacBookPro:example user$ pip install opencoder
> MacBookPro:example user$ opencoder init opencoder --help
✋ opencoder project not initialized. Run `opencoder init`
Initialization
Run the following command from the root of your project:
> MacBookPro:example user$ opencoder init
📄 .rc file generated at /workspace/example/.opencoder/.rc
✔️ .opencoder added to .gitignore
> MacBookPro:example user$ opencoder --help
Usage: opencoder [OPTIONS] COMMAND [ARGS]...
╭─ Options ────────────────────────────────────────────────────╮
│ --install-completion Install completion for the │
│ current shell. │
│ --show-completion Show completion for the │
│ current shell, to copy it or │
│ customize the installation. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────╮
│ gen │
│ workspace │
╰──────────────────────────────────────────────────────────────╯
Configuration
/workspace/example/.opencoder/.rc
# List of allowed directories, Separated with colons (:) e.g "/path/to/a/dir:/path/to/b/dir"
export OC_PATH="$(pwd)"
# <provider>/<model_name>
export OC_MODEL="openai/gpt-4o"
# export OC_BASE_URL=""
# export OC_MAX_TOKENS=""
# export OC_MAX_DEPTH=""
# Provider API Keys
export OPENROUTER_API_KEY=""
# export OPENAI_API_KEY=""
# export ANTHROPIC_API_KEY=""
NOTE: See https://docs.litellm.ai/docs/providers for the list of supported models
/workspace/example/.opencoder/mcp.json (Optional)
{
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./test.db"]
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
Prompt Overrides (Optional)
/workspace/example/.opencoder/SYSTEM.txt
/workspace/example/.opencoder/REPROMPT.txt
Usage
generate
> MacBookPro:example user$ opencoder gen --help
Usage: opencoder gen [OPTIONS]
╭─ Options ────────────────────────────────────────────────────╮
│ --f TEXT Load prompt from file [default: None] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────╯
workspace
NOTE: Requires Docker
> MacBookPro:example user$ opencoder workspace --help
Usage: opencoder workspace [OPTIONS] COMMAND [ARGS]...
╭─ Options ────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────╮
│ create Creates a docker image to sandbox the agent │
│ start Shortcut to start the container │
│ stop Shortcut to stop the container │
╰──────────────────────────────────────────────────────────────╯
Contributing
Prerequisites
Repo Setup
git clone https://github.com/username/your-package.git
cd your-package
Create Virtual Environment
uv venv
source .venv/bin/activate
Install
uv pip install -e ".[dev]"
pre-commit install
pre-commit install --hook-type pre-push
NOTE: to test any new features in workspace mode, build the base image from
/opencoder/dockerfile.dev
uv build
docker build -t opencoder/base -f dockerfile.dev .
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
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
File details
Details for the file opencodr-0.1.2.tar.gz.
File metadata
- Download URL: opencodr-0.1.2.tar.gz
- Upload date:
- Size: 235.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0c73db1f9268e92c2c9df64fb74864ef6af656ebac7f6dae80f296b920f4c4f
|
|
| MD5 |
99fbcd6598b7f804ba33ddf19e5a69a8
|
|
| BLAKE2b-256 |
aa080db6468b82239c403aa14fe65e413c30ed22892d50f37f635104978dd083
|
File details
Details for the file opencodr-0.1.2-py3-none-any.whl.
File metadata
- Download URL: opencodr-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dffa4b05234acb9428a36871e82770a23860a26d246bcf328fe1a1764829913
|
|
| MD5 |
1c987b8540de19bef1d067f73b23ac7c
|
|
| BLAKE2b-256 |
0153c6d4f6af9597b038d9ac754681296242a458f61539be598fd124bdba9d30
|