OpenCode plugin that lets your agent request screenshots from you via glance.sh.
Maintains a persistent background session on glance.sh. Paste an image anytime — the agent receives it instantly.
- Background listener — starts when OpenCode launches, reconnects automatically, refreshes sessions before they expire.
glancetool — the LLM calls it when it needs to see something visual. Surfaces the session URL.glance_waittool — waits for the next paste and returns the image URL.- Multiple images — paste as many images as you want during a session.
Recommended (npm package):
Add the plugin to your global ~/.config/opencode/opencode.json or project opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@modemdev/glance-opencode"]
}Restart OpenCode. The background session starts automatically.
Optional: pin a specific version:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@modemdev/glance-opencode@0.1.0"]
}Ask the agent to call the glance tool. You should get a session URL like https://glance.sh/s/<id>.
Then call glance_wait and paste an image in the browser tab — it should return a Screenshot: https://glance.sh/<token>.<ext> URL.
- If you use
@modemdev/glance-opencodewithout pinning, OpenCode checks for newer versions at startup. - If you pin a version, bump it in your
pluginlist when you want to upgrade. - To remove, delete the package from your
pluginlist and restart OpenCode.
Releases are automated via GitHub Actions.
Prerequisite: configure NPM_TOKEN in the glance-agent-plugins repository with publish access to @modemdev/glance-opencode.
- Bump
versioninopencode/package.json. - Commit and push to
main. - Create and push a matching tag:
git tag opencode-v0.1.0
git push origin opencode-v0.1.0The Release opencode package workflow validates the tag/version match and publishes with npm provenance.
You can also run the workflow manually in dry-run mode from Actions.
If you prefer local file management, symlink or copy glance.ts into your OpenCode plugins directory:
# symlink (recommended — stays up to date with git pulls)
ln -s "$(pwd)/glance.ts" ~/.config/opencode/plugins/glance.ts
# or per-project
ln -s "$(pwd)/glance.ts" .opencode/plugins/glance.tsopencode starts
└─▶ plugin creates session on glance.sh
└─▶ connects SSE (background, auto-reconnect)
LLM calls glance tool
└─▶ surfaces session URL
LLM calls glance_wait tool
└─▶ waits for image paste
user pastes image at /s/<id>
└─▶ SSE emits "image" event
└─▶ glance_wait returns image URL to LLM
session expires (~10 min)
└─▶ plugin creates new session, reconnects
- OpenCode v0.1+
- Bun runtime (ships with OpenCode)
No API keys required — sessions are anonymous and ephemeral (10-minute TTL).
The plugin connects to https://glance.sh by default. The SSE connection is held for ~5 minutes per cycle, with automatic reconnection.