Repository navigation
hermit-opencode 0.1.1 — installable wheel
Convert a hermit adapter into an OpenCode configuration.
pip install https://github.com/argszero/hermit-opencode/releases/download/0.1.1/hermit_opencode-0.1.1-py3-none-any.whl
hermit-opencode path/to/adapter --output out/Why 0.1.1 exists
0.1.0's only documented install was pip install git+https://…. That needs a
git binary, a reachable git endpoint and a credential — and when it was tried
from a clean virtualenv it failed with Recv failure: Connection reset by peer.
There was no verified way for a stranger to install this. This release attaches
a wheel and an sdist, so installing is one HTTP download that involves no git.
An sdist is attached as well:
hermit_opencode-0.1.1.tar.gz.
Which hermit this needs — read this before you run it
Hermit is needed only for the tool server. The context, skills and roles
parts are plain files OpenCode reads directly and work with any hermit.
The mcp entry this tool emits — hermit serve adapter — requires a hermit that
reads the .hermit/adapter.yaml + exports.yaml layout: hermit-harness 0.2.0
or later, from PyPI.
Correction, 2026-11-06. These notes first said to install hermit from git
main, because 0.1.0 was the only release and it cannot serve this output.
Hermit released 0.2.0 on 2026-11-04 — the release that moved the adapter metadata
into .hermit/ and stopped loading the 0.1 layout — so that advice is withdrawn:
pip install "hermit-harness>=0.2.0"hermit-harness 0.1.0 cannot serve this output. Its manifest reader wants
adapter.yaml at the adapter root, the layout hermit replaced in its own #41, and
both the embedded copy and the source adapter use the newer layout — so no path,
flag or environment setting makes 0.1.0 serve it. The emitted command exits 1 with
ValueError: Missing adapter.yaml in <output>/adapter
Measured against 0.2.0 in a clean virtualenv, with no git binary and no checkout
involved: the same command served the tool and answered
count_words('one two three') -> {'count': 3}.
pip show hermit-harness now separates the two releases, and the manifest reader
is the mechanical check behind it:
python -c "from hermit.adapter import manifest; print(manifest.MANIFEST)".hermit/adapter.yaml → the tool server will start.
adapter.yaml → you have 0.1.0; the mcp entry will fail to start.
What was verified
-
The suite: 12 passed, no network, no hermit installed.
-
This wheel installs into an empty virtualenv and reports
0.1.1;import hermitstill raisesModuleNotFoundErrorfrom a neutral directory, which is the zero-dependency claim measured rather than asserted. -
opencode.jsonvalidates againsthttps://opencode.ai/config.json(Draft202012, schema vendored in the repository). -
The emitted
mcpcommand was run from the output directory withcwd: "."under hermitcde2005: a real MCPinitialize/tools/list/tools/callexchange returnedcount_words('one two three') -> {'count': 3}and appended to.opencode/audit/tool-calls.jsonl. -
The requirement above is a measurement: the same command was run against
hermit-harness==0.1.0from PyPI (fails, message above) and against gitmain(succeeds). A test pins the emitted command and the README's Requirements table to each other. -
The install command at the top of this page was run from an empty virtualenv:
PYTHONPATHcleared (this machine exports one, which would otherwise supply dependencies the install never fetched),pip install <the wheel URL above>exited 0, PyYAML 6.0.3 was genuinely fetched from PyPI as a real dependency, the installedhermit-opencodereported0.1.1, converting hermit's own example adapter exited 0, and themcpcommand emitted from that output servedcount_words('one two three') -> {'count': 3}underhermit-harness 0.2.0. The wheel fetched from that URL hashes identically to the one built here (sha2561ed6b22de17575346ee3239895f9b71600008d6e4070b498840939297a11c742), so the asset and the source agree.
hermit-harness 0.2.0 is the reading the requirement above rests on. 0.2.0 was published to PyPI on 2026-11-04, after 0.1.1 was tagged; the wheel and sdist attached to this release are unchanged by that, and these notes were corrected on 2026-11-06 to name 0.2.0 instead of git main.
What was NOT verified
No live OpenCode session has ever loaded this output. There were no OpenCode
credentials or model backend available while this was built, so the end-to-end
path stops at the MCP server: the configuration is schema-valid and its server
command works, but "OpenCode actually started, read .opencode/, and used the
skill and subagent" is unproven. A schema-valid configuration is not a loaded
one.
Also unproven: whether OpenCode rewrites file_example into its own tool-name
scheme, and how it renders a description containing non-ASCII text.
Note on the 0.1.0 release
Tag 0.1.0 points at 9c41040, whose README predates the requirements section.
It is left in place and untouched. Use 0.1.1.
License
Apache-2.0.