Universal LLM Native Harness — drives all models with discipline
Project description
Yoke — Universal LLM Native Harness
Yoke is a disciplined coding harness that drives any LLM — Claude, GPT, Gemini, DeepSeek, and more — through a unified interface with built-in context guards, skill system, and web UI.
Think of it as your own Claude Code, but model-agnostic and self-hosted.
Quick Start
pip install yoke-harness
yoke setup # pick your provider, enter API key
yoke serve # open http://localhost:8765 in your browser
Or run in the terminal:
yoke # interactive TUI (Textual-based)
Supported Providers
| Provider | Models |
|---|---|
| Anthropic | Claude 3.5 Sonnet, Claude 3 Opus, … |
| OpenAI | GPT-4o, GPT-4 Turbo, … |
| Gemini 1.5 Pro, Gemini Flash, … | |
| DeepSeek | deepseek-chat, deepseek-coder |
| Qwen (Alibaba) | qwen-max, qwen-plus |
| Zhipu (GLM) | glm-4, glm-4-flash |
| MiniMax | abab6.5-chat |
| Ollama | Any local model (llama3, mistral, …) |
Features
- 40+ built-in tools — file read/write, shell exec, web fetch, grep, git, and more
- Skill system — install reusable prompt workflows from GitHub with
yoke skill install <url> - DisciplineEngine — enforces context budget, call limits, and session guards automatically
- Web UI — chat interface at
localhost:8765with file browser and session history - TUI — full terminal UI with vim keybindings, syntax highlighting, and diff view
- MCP support — connect any MCP server (stdio / SSE / WebSocket)
- Voice input — local Whisper STT via
sounddevice - LSP bridge — integrate with VS Code and JetBrains via the bundled extension
- Multi-agent — orchestrate parallel sub-agents for large tasks
Installation Options
# Core only (CLI + TUI)
pip install yoke-harness
# With web server
pip install "yoke-harness[serve]"
# With LSP support
pip install "yoke-harness[lsp]"
# Everything
pip install "yoke-harness[serve,lsp]"
Bundled Skills
| Skill | What it does |
|---|---|
export-excel |
Convert CSV / JSON / data to formatted .xlsx |
fill-report |
Fill templates → .docx / .md / .txt |
generate-ppt |
Outline → PowerPoint .pptx |
bi-chart |
Data → interactive Chart.js HTML |
query-data |
Natural language query over workspace files |
read-pdf |
Extract text, tables, keywords from PDF |
review-pr |
Review a PR or branch diff |
commit |
Generate and apply a conventional git commit |
simplify |
Review changed code for reuse and quality |
install-skill |
Install a new skill from GitHub URL |
Install a community skill:
yoke skill install https://github.com/KKingsley/yoke-skills/tree/main/skills/my-skill
Configuration
All config lives in ~/.yoke/.env:
YOKE_PROVIDER=claude # claude | openai | gemini | deepseek | qwen | zhipu | minimax | ollama
ANTHROPIC_API_KEY=sk-...
YOKE_DEFAULT_MODE=restricted # full | restricted | readonly
YOKE_MODEL=claude-sonnet-4-5
Run yoke setup to configure interactively.
Contributing
See CONTRIBUTING.md to write your own skills or providers.
License
MIT © KKingsley
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 yoke_harness-0.18.0.tar.gz.
File metadata
- Download URL: yoke_harness-0.18.0.tar.gz
- Upload date:
- Size: 417.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95b9b9054521d2ffdee17a3b84c7aa2349a85949ff14b900d2148ee2a9b5f15c
|
|
| MD5 |
aa35b7274280c11395c0bf30a5e8498d
|
|
| BLAKE2b-256 |
1ec7e5390e994544334775947c4caec87a2b5014ba5e0f2ecc2a2d8d6dd3fb61
|
File details
Details for the file yoke_harness-0.18.0-py3-none-any.whl.
File metadata
- Download URL: yoke_harness-0.18.0-py3-none-any.whl
- Upload date:
- Size: 352.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7e605ba294febb11eda8a235e4535427084a9577517321005029a521cac5165
|
|
| MD5 |
cb5f9a76011d8a3f7ab5f809f9cb3fd8
|
|
| BLAKE2b-256 |
d943e660b5e6abd6a4565802a9d054171b82759e1a5e84a787a0e7f35064fdc0
|