OpenCode plugin that lets your agent request screenshots from you via glance.sh.
Starts a glance.sh session on demand. Idle OpenCode sessions do not keep a background connection open.
- On-demand listener — starts when the
glancetool is used, 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 while the listener is active.
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 when the glance tool is used.
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.tsLLM calls glance tool
└─▶ plugin creates session on glance.sh
└─▶ connects SSE (background, auto-reconnect)
└─▶ 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. Once started, the SSE connection is held for ~5 minutes per cycle, with automatic reconnection.