Skip to content

hermit-opencode 0.1.0

Choose a tag to compare

@argszero argszero released this 04 Nov 06:26
· 9 commits to main since this release

Convert a hermit adapter into an OpenCode configuration.

pip install git+https://github.com/argszero/hermit-opencode
hermit-opencode path/to/adapter --output out/

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: git main, or
any release after 0.1.0.

hermit-harness 0.1.0 from PyPI 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. Measured:
the emitted command exits 1 with

ValueError: Missing adapter.yaml in <output>/adapter

Use:

pip install "git+https://github.com/Infini-AI-Lab/hermit"

What was verified

  • The suite: 12 passed, no network, no hermit installed.
  • opencode.json validates against https://opencode.ai/config.json (Draft202012, schema vendored in the repository).
  • The emitted mcp command was run under hermit 604ecf0, from the output directory with cwd: ".": a real MCP initialize / tools/list / tools/call exchange over stdio returned count_words('one two three') -> {'count': 3} and appended to .opencode/audit/tool-calls.jsonl.
  • The requirement above is a measurement, not a claim: the same command was run against hermit-harness==0.1.0 from PyPI (fails, output above) and against hermit 604ecf0 (succeeds). A test pins the emitted command and the README's Requirements table to each other so they cannot drift apart.

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 this tag

Tag 0.1.0 points at 9c41040, whose README predates the requirement section
above — the tag was cut before the release/0.1.0 promise was measured. The
corrected README and the pinning test are on main at 18dc8f8; install from
main to get them. The code that emits the configuration is unchanged between
the two.

License

Apache-2.0.