opencode-ework
v0.1.0
Published
Backend-agnostic issue-tracker plugin for OpenCode agents — tools: issue, comments, floor, reply, search. Speaks Gitea REST; works against real Gitea or any Gitea-compatible shim (e.g. ework-web).
Downloads
826
Maintainers
Readme
opencode-ework
Backend-agnostic issue-tracker plugin for OpenCode agents. Speaks Gitea REST; works against real Gitea or any Gitea-compatible shim.
Tools
| Tool | Purpose |
| -------- | -------------------------------------------------------- |
| issue | Read an issue: title, body (OP), state, all comments as numbered floors |
| comments | List comments with floor filtering (reverse / floor / range) |
| floor | Read a single comment floor (1-indexed, chronological ascending) |
| reply | Post a reply as the bot identity |
| search | Full-text search across issues |
Why "backend-agnostic"
The plugin is a Gitea REST client. Any backend that implements these four endpoints byte-for-byte compatible with Gitea works without plugin changes:
GET /api/v1/repos/{owner}/{repo}/issues/{n}GET /api/v1/repos/{owner}/{repo}/issues/{n}/commentsPOST /api/v1/repos/{owner}/{repo}/issues/{n}/commentsGET /api/v1/repos/issues/search?q=...
In this ecosystem:
- Production daemon points the plugin at real Gitea (
GITEA_URL=...). - Local daemon points the plugin at the ework-web tracker shim
(
GITEA_URL=http://localhost:3000), which implements the same REST shape.
Same plugin binary, two completely different backends, zero code forks.
Environment variables
All required. Injected by whichever daemon spawns the opencode subprocess.
| Var | Purpose |
| --------------- | ------------------------------------------------------------ |
| GITEA_URL | Base URL of the Gitea-compatible backend |
| GITEA_TOKEN | Admin-scope token for reads |
| BOT_TOKEN | Bot-user token for writes (the reply tool) |
| BOT_USERNAME | Bot identity label for reply confirmations (default: bot) |
Install
Point your opencode config at this directory:
// ~/.config/opencode/opencode.json
{
"plugin": [
"opencode-acp@latest",
"/absolute/path/to/opencode-ework"
]
}Then run opencode — the plugin registers five tools on every subprocess spawn.
