Licensed under the MIT License. See LICENSE for details.
OwA — Ollama Workspace Agent
An open-source local coding assistant powered by Ollama. Runs entirely on your own hardware — no cloud, no telemetry, no API keys required beyond your own Ollama server.
Install
pip install ollama-workspace-agent
Or with pipx for an isolated install:
pipx install ollama-workspace-agent
Requirements
- Python 3.11+
- Ollama running on a reachable machine
- A chat model installed on Ollama, such as
llama3.1:8b - An embedding model installed on Ollama, such as
nomic-embed-text
Quick Start
cd your-project
owa
On first run, type /setup to configure your Ollama connection. OwA will walk you through it interactively and save the config to ~/.config/owa/.env.
Then just start chatting — OwA will auto-index your project on startup.
Configuration
Run /setup inside OwA, or manually create ~/.config/owa/.env:
LLM_BASE_URL=http://YOUR_OLLAMA_HOST:11434/v1
LLM_MODEL=llama3.1:8b
EMBEDDING_BASE_URL=http://YOUR_OLLAMA_HOST:11434
EMBEDDING_MODEL=nomic-embed-text
API_KEY=choose-a-private-api-key
You can also place a .env in your project root to override the global config for that project.
LLM_BASE_URL uses Ollama's OpenAI-compatible /v1 API. EMBEDDING_BASE_URL uses Ollama's native /api/embed API. If Ollama runs on the same machine, replace YOUR_OLLAMA_HOST with 127.0.0.1.
Verify Ollama
curl http://YOUR_OLLAMA_HOST:11434/api/tags
A successful response contains a models list. Make sure the models in your config are installed:
ollama pull llama3.1:8b
ollama pull nomic-embed-text
CLI Commands
| Command | Description |
|---|---|
/setup |
Configure Ollama connection |
/index |
Rebuild the project index |
/status |
Show index status |
/clear |
Clear conversation history |
/help |
Show available commands |
/quit |
Exit |
API Mode
Run the HTTP API:
uvicorn app.api:app --host 127.0.0.1 --port 8000
Use the CLI as an API client:
owa --api-url http://127.0.0.1:8000
Available endpoints: GET /health, GET /status, POST /chat, POST /chat/stream, POST /clear, POST /index.
When API_KEY is configured, include it in the X-API-Key header for every endpoint except /health.
Tools
The agent can call these workspace tools:
| Tool | Description |
|---|---|
list_dir |
List files and directories |
read_file |
Read UTF-8 text files |
patch_file |
Targeted search-and-replace edit on an existing file |
write_file |
Create or fully replace a file |
search_code |
Semantic search over the indexed codebase |
code_review |
Review Python files for common security risks |
run_command |
Run a shell command after user confirmation |
git_status |
Show Git branch and working tree status |
git_diff |
Show current Git diff |
git_log |
Show recent Git commits |
Project Layout
.
├── app/
│ ├── agent/ Agent orchestration and system prompt
│ ├── api.py FastAPI endpoints and request models
│ ├── cli.py CLI entry point
│ ├── config.py Global config path resolution
│ ├── service.py Shared chat, indexing, and status service
│ ├── indexer/ Code indexing and semantic search
│ ├── llm/ OpenAI-compatible Ollama client
│ └── tools/ Workspace tool implementations and registry
├── demo/ Small demo code
├── main.py Thin shim for `python main.py`
├── CHANGELOG.md Project change history
└── README.md Project documentation
Development
Clone and install in editable mode:
git clone https://github.com/ZakaCoding/ollama-workspace-agent
cd ollama-workspace-agent
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Run tests:
pytest tests/ -v
Compile check:
python -m py_compile main.py app/agent/*.py app/indexer/*.py app/llm/*.py app/tools/*.py
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 ollama_workspace_agent-0.3.1.tar.gz.
File metadata
- Download URL: ollama_workspace_agent-0.3.1.tar.gz
- Upload date:
- Size: 27.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df820f387e4fb0bbb28983fb6e8428c78c3fc32d1fa881d2df7bb6456a8bc66a
|
|
| MD5 |
3ba8a37a66f2e91edc8f64535f933917
|
|
| BLAKE2b-256 |
208a69a2e04ab5f1d305915345c85cb1970151ae0f9023b7346ba89f07f9d6c0
|
File details
Details for the file ollama_workspace_agent-0.3.1-py3-none-any.whl.
File metadata
- Download URL: ollama_workspace_agent-0.3.1-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa0c930d823c951f81993f50c24c28da064af18a225b89e3dcf0b0029c924dbe
|
|
| MD5 |
56e726f8d3de46a1a9cdf1a9f8bb55ad
|
|
| BLAKE2b-256 |
f27d892da083c0def92b5c5e92094a9adcdb1d2ea9165ae7b2e2354d983eda14
|