everyharness
Register a local model. Run it through a harness.
Alpha offline-first CLI + TUI for wrapping local models (sklearn, embeddings, Ollama/GGUF/HF LLMs, and more) behind one plugin interface. Not a replacement for Ollama, Gradio, or BentoML — a thin registry + harness layer.
macOS and Linux only in v1. Windows is not supported.
What works today
| Area | Status |
|---|---|
| Tabular (sklearn/joblib) | Solid — predict, evaluate, explain, HTTP serve |
| Embeddings | Usable — embed/similarity; hash fallback without extras |
| LLM | Thin wrapper — Ollama HTTP; optional GGUF ([llm-gguf]) / HF ([llm]) |
| Vision | Classify only — ONNX/HF; no object detection |
| Diffusion | CLI generate only — no HTTP serve |
| Speech | Transcribe only — install openai-whisper yourself; no TTS/serve |
| Computer | Experimental — dry-run JSON log; --allow-control only supports echo |
everyharness ui |
Prompt pack — writes files for a coding agent; does not build a UI |
| Community plugins | None yet — scaffold with plugin init; catalog is built-ins + docs sample |
Pickles need --trust-pickle (loads arbitrary code). Prefer joblib from trusted sources.
Features
- Model registry — local files, Hugging Face, Ollama, or Python callables
- Harness selection — by kind / URI; override with
--type - One CLI —
everyharness add→run→serve→train(train depth varies by harness) - Offline-first —
EVERYHARNESS_OFFLINE=1hard-blocks outbound calls - Plugin system — publish
everyharness-*packages; scaffold witheveryharness plugin init - Agent prompt pack —
everyharness uiwrites prompts for Cursor, Claude Code, Copilot, Pi, or Codex - Textual TUI — launch with bare
everyharness
Install
pip install everyharness
# optional extras
pip install 'everyharness[tabular]'
pip install 'everyharness[llm]' # HF + OpenAI-compatible serve deps
pip install 'everyharness[llm,llm-gguf]' # + llama-cpp-python for local GGUF
pip install 'everyharness[vision]'
pip install 'everyharness[all]'
Quick start
# register models (kind auto-detected when possible)
everyharness add ./model.pkl --trust-pickle
everyharness add embeddings:demo --type embeddings
everyharness add python:callable_demo:echo
everyharness list
# same interface, different harnesses
everyharness run --trust-pickle <id> predict --input '[[1.5, 0.5]]'
everyharness run <id> similarity --input '{"a":"cat","b":"kitten"}'
everyharness run <id> call --input '{"hello":"world"}'
# scaffold a publishable harness plugin
everyharness plugin init weather --kind harness
Launch the TUI:
everyharness
Model types
| Kind | Examples | Typical commands | Notes |
|---|---|---|---|
tabular |
.pkl / .joblib sklearn |
predict, evaluate, explain, serve |
Best-supported path |
embeddings |
sentence-transformers, embeddings: |
embed, similarity |
|
llm |
Ollama, GGUF, HF | complete, repl, serve |
Thin wrapper over backends |
vision |
.onnx, HF classifiers |
classify |
No detect in v1 |
diffusion |
Diffusers pipelines | generate |
No HTTP serve |
speech |
Whisper | transcribe |
Separate whisper install |
computer |
computer: refs |
plan / dry-run |
Echo-only when control enabled |
generic |
Python callables | call, info |
Coding-agent prompt pack
Write metadata + AGENT_PROMPT.md so your coding agent can scaffold a local web/GUI wrapper (everyharness does not generate the UI itself):
everyharness ui <model-id> --agent cursor
# → ./harness-ui/<id>/{AGENT_PROMPT.md,model-card.json,manifest.json,README.md}
Plugins
Built-in harnesses/loaders ship in the core package. Third-party packages can publish as everyharness-* on PyPI (none curated yet beyond the docs sample):
everyharness plugin search tabular
everyharness plugin install everyharness-foo
everyharness plugin init mymodel --kind harness # harness | loader | detector | templates
Architecture
CLI/TUI → plugin host → harnesses / loaders / detectors / templates. See docs/architecture.md.
Updates & offline
everyharness update --check
everyharness update --yes
Set EVERYHARNESS_OFFLINE=1 to block update checks, HF downloads, and everyharness plugin install.
Development
uv sync --all-extras --dev
uv run pytest -q
uv run ruff check src tests
License
Apache-2.0 — see LICENSE.
Community
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 everyharness-0.1.3.tar.gz.
File metadata
- Download URL: everyharness-0.1.3.tar.gz
- Upload date:
- Size: 51.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9267b441eb237c14f324a2e9df62a1589e582daf805ab5158087d80f5774a23
|
|
| MD5 |
703a759ae4df5f8e0bcb7cabe87844ec
|
|
| BLAKE2b-256 |
b0b18726f2c07ed27561b8794b598f77b1860924546ee30ed8b237f115cf939a
|
Provenance
The following attestation bundles were made for everyharness-0.1.3.tar.gz:
Publisher:
release.yml on kavin0x/everyharness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
everyharness-0.1.3.tar.gz -
Subject digest:
e9267b441eb237c14f324a2e9df62a1589e582daf805ab5158087d80f5774a23 - Sigstore transparency entry: 2387837396
- Sigstore integration time:
-
Permalink:
kavin0x/everyharness@7f71d80c67c2a2a0d644eb04fb06d9d03c2f682d -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/kavin0x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7f71d80c67c2a2a0d644eb04fb06d9d03c2f682d -
Trigger Event:
push
-
Statement type:
File details
Details for the file everyharness-0.1.3-py3-none-any.whl.
File metadata
- Download URL: everyharness-0.1.3-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cc784cc4e8d97c8a2c584234eaee428018909d4fa25b491b6444492f4b59d57
|
|
| MD5 |
fbfbb768247f67545e42a82b3df0d01c
|
|
| BLAKE2b-256 |
1d4edfd0b018df7f905d0c2f01d22fb56b860747102dce83192c0753ccd9e260
|
Provenance
The following attestation bundles were made for everyharness-0.1.3-py3-none-any.whl:
Publisher:
release.yml on kavin0x/everyharness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
everyharness-0.1.3-py3-none-any.whl -
Subject digest:
9cc784cc4e8d97c8a2c584234eaee428018909d4fa25b491b6444492f4b59d57 - Sigstore transparency entry: 2387837398
- Sigstore integration time:
-
Permalink:
kavin0x/everyharness@7f71d80c67c2a2a0d644eb04fb06d9d03c2f682d -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/kavin0x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7f71d80c67c2a2a0d644eb04fb06d9d03c2f682d -
Trigger Event:
push
-
Statement type: