Git Stats
OpenCode sidebar: working-tree diff stats and GitHub-coloured chips for the pull requests your session touched
4
477
12 in 7 days
41.7
Multi-signal model
14 days ago
2026-09-21
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-git-stats@0.1.2"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-git-stats@0.1.2"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-git-statsOpenCode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
A monorepo of independently versioned and published OpenCode
plugins. Each publishable package lives under packages/<name>/ with its own
package.json, README, and release history; the root only holds shared tooling
(TypeScript base config, the harness/ PTY test rig) and CI.
| Package | Description |
|---|---|
packages/context-tree |
Pi-style context tree for OpenCode: branch, merge, crop, undo, plus a trajectory view |
packages/git-stats |
Sidebar card: working-tree diff figures, plus a GitHub-coloured chip per pull request the session touched |
Adding a plugin
- Create
packages/<name>/with its ownpackage.jsonand release scripts, and add it to theworkflow_dispatch.inputs.packagechoice list in.github/workflows/release.ymlandpublish.yml. - Publish its first version by hand. npm's trusted publishing cannot be set up
for a package that does not exist yet — the trust record silently fails to attach
and the exchange reports "package not found". From
packages/<name>/:npm version <v> --no-git-tag-version --ignore-scripts && bun run build && npm publish --access public --ignore-scripts, then reset the version (git checkout -- package.json) since the tag is the source of truth.--ignore-scriptsis required: npm chokes on theworkspace:*specifiers inside@opentui's own published metadata, which is also why the build is explicit rather than left toprepack. - Then create the trust record, once per package — it binds to the package, not
the repo, so a second plugin needs its own:
npm trust github <pkg> --file publish.yml --repo navbytes/opencode-plugins, with environmentnpm(the publish job declares one; a record without it will not match the OIDC claims). - After that,
gh workflow run release.yml -f package=<name> -f bump=patchdoes the rest. Notebump=computes off the newest<name>-v*tag and ignores a prerelease suffix, so the release a beta anticipated must be cut with an explicit-f version=, notbump=.
A green release.yml only means it tagged and dispatched, and a green publish.yml
only means npm accepted the upload — the registry lags by a minute or two. Check the
registry, not the workflow.
Development
bun install
bun run build # builds every package
bun run typecheck # typechecks every package
bun test # runs every package's tests
Similar plugins
Pr Tracker
@kitlangton/opencode-pr-tracker
Session-aware pull request tracking for the OpenCode V2 TUI
Fold Diffs
opencode-fold-diffs
OpenCode TUI plugin: write, edit, apply_patch and long bash commands render folded to their title line, click or ctrl+o to open them.
Dir Tree Tui
opencode-dir-tree-tui
OpenCode V2 TUI plugin: VS Code-style file tree in the sidebar with git status coloring and click-to-open