mirror of
https://github.com/rehan-remade/universal-modder.git
synced 2026-11-05 01:37:40 +00:00
[GH-ISSUE #144] OpenCode plugin: install the toolkit as um_* tools + fal MCP — PR-worthy? #34
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
rehan-remade/universal-modder#34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Selene0623 on GitHub (Oct 7, 2026).
Original GitHub issue: https://github.com/rehan-remade/universal-modder/issues/144
Follow-up to #43 / #54. Right now the OpenCode route is clone-and-run:
opencode.jsonadds the skills and the fal MCP server, and the user has to be inside a checkout. Every other agent here already has a real plugin install (/plugin marketplace addfor Claude Code,codex plugin add,gemini extensions install, VS Code "Install Plugin From Source", the Cursor marketplace). OpenCode hasopencode plugin add, so I built the equivalent and I'd like to know whether you want it as a PR before I open one.What I built
Branch:
Selene0623:feat/opencode-plugin(commite84c819, based on currentmain). Five files:plugins/opencode/index.ts— a V2 plugin (Plugin.define({ id: "universal-modder", setup })) that:um_scan,um_fal,um_comfy,um_sprite,um_render3d,um_video,um_win,um_backup,um_publish,um_kb. Each takesargs(passed straight through, so["--help"]documents the group) and an optionalcwd;codemodeis on so they stay scriptable.bin/umnext to the plugin, elseumfromPATH, withoptions.root/options.commandoverrides for a globally installed plugin.https://mcp.fal.ai/mcp,{env:FAL_KEY},oauth: false) only when the session does not already configure one, so a user's own fal setup wins.bin/uma human would run. The plugin does not reimplement any part of the toolkit, so the CLI stays the single source of truth and nothing needs keeping in sync.plugins/opencode/package.json—@opencode/pluginas a peer dependency, version0.2.0to match the repo.plugins/opencode/README.md— install line and options.opencode.json— adds"plugins": ["./plugins/opencode"], so a clone gets the tools with no setup.README.md— the OpenCode row becomesopencode plugin add 'github:rehan-remade/universal-modder#main::path:plugins/opencode', plus a sentence about the plugin next to the MCP-config paragraph.I deliberately left alone:
skills/(skills still come fromskills.paths, no double registration),.agents/skills/.claude/skillscopies,AGENTS.md, and thehooks/PATH script (that is a Claude CodeSessionStarthook; V2 has no shell-env hook, which is why the tools call the launcher by absolute path instead of fightingPATH).Verification (in the worktree)
uv run --with pytest pytest -q tests→ 76 passed, 1 skippedum kb check --index→ PASS: 74 notes checkedum publish check .→ 383 files, 0 failures, 2 warnings (both pre-existing absolute-path warnings, untouched by this branch)@opencode/pluginand a fake plugin context: 10 tools registered under theumnamespace, fal MCP set, and real runs through the CLI —um_scan {args:["--help"]}returned the real help screen,um_kb {args:["search","disrupt"]}returned real hits, and a bad flag surfaced as(exit 2).GROUPSinum/cli.py, which is how I caught that I had missedcomfy.Questions before I open the PR
plugins/opencode/directory welcome at all, or would you rather this be a separately published package so the repo stays Python-only? (CONTRIBUTING only documentsknowledge/andskills/, so I did not want to assume.)umtool with anargsarray? Ten costs more context; one is less discoverable. I can go either way./mod-gamecommand that kicks offskills/mod-any-game/SKILL.md, and/or the skills registered throughctx.skill.transforminstead ofskills.paths? I left those out to keep the first diff small.Happy to adjust, or to leave it as an issue if you'd prefer OpenCode stay clone-only.
@rehan-remade commented on GitHub (Oct 10, 2026):
Thanks for asking first, and for the careful write-up. Yes, please open it. Every other agent already has a real install path, so OpenCode should too, and a tracked
plugins/opencode/is fine.On your questions:
umtool with anargsarray, rather than ten.um --helpandum <group> --helpalready document the groups, and one tool costs less context in every session./mod-gamecommand andctx.skill.transformout for now. Skills already load throughskills.paths, and a smaller first diff is easier to review.GROUPSinum/cli.py. CONTRIBUTING asks for a test with tool changes, and that one would catch the next missed group.