Skip to content

Add project-local bundled meme agent runtime assets #43

@crankshift

Description

@crankshift

Summary

Add a project-local OpenCode runtime asset enablement flow for OpenCode Remote bundled skills and a new bundled meme-generation agent, so Telegram users can ask the gateway to create private local meme images through OpenCode sessions.

Context

OpenCode Remote currently ships bundled skills and can list them in Telegram, but those package assets are not automatically visible to the running OpenCode server. Meme generation needs a real OpenCode-visible agent so Telegram prompts can be routed to a specialized worker that finds Imgflip templates, renders locally, and returns a media file without publishing memes through Imgflip.

The feature should avoid global OpenCode configuration pollution. Bundled runtime assets should be enabled per project under .opencode/, with namespaced files that users can inspect or remove.

Acceptance Criteria

  • OpenCode Remote ships a bundled opencode-remote-meme agent as a package asset.
  • Bundled OpenCode Remote skills and agents can be enabled/synced into the current project-local .opencode/ directory.
  • The sync flow does not write to global OpenCode config or global agent/skill directories by default.
  • Telegram users can trigger meme creation through OpenCode Remote, with meme-like prompts routed to the bundled meme agent when enabled.
  • The meme agent uses Imgflip template fetching/search as input, never calls Imgflip public meme creation endpoints, and instructs local rendering with a MEDIA:/absolute/path/to/file result.
  • Common templates use curated text box placement, while unknown templates use a heuristic or model-inferred fallback.
  • Tests cover bundled runtime asset discovery/sync behavior and meme request routing decisions.
  • Public docs describe how to enable the bundled meme agent for a project and note that OpenCode may need restart to discover newly synced assets.

Notes

  • Imgflip GET /get_memes is public and returns popular template metadata.
  • Imgflip POST /search_memes requires Premium, so non-premium search fallback should use Imgflip web search pages.
  • Imgflip /caption_image creates public hosted memes and must not be used.
  • Keep Telegram-specific routing and UX in the Telegram adapter; keep OpenCode session calls in core OpenCode integration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions