OpenCode Mission Control adds session-aware retrieval and inspection to OpenCode. It can search transcript content, read sessions, look up session metadata, and message peer subagents.
Requires a Jina API key (search.jinaApiKey in plugin options). Without a key the plugin registers no tools.
opencode plugin -g opencode-mission-controlDetailed behavior and caveats live under docs/.
runtime_model.md— cross-cutting runtime behavior, lifecycle rules, persistence, and non-goalssession_search({ query, limit? })— hybrid semantic+lexical search in the current projectsession_search_global({ query, limit? })— same, across all projects globallysession_read({ sessionId, beforeMessageId?, offset?, limit?, withChildren?, withToolOutputs? })— read a transcript with paginationsession_tail({ sessionId, offset?, limit?, withChildren? })— view recent text-only messagessession_find({ title, scope?, limit? })— find exact-title metadata candidatessession_get({ sessionId })— get normalized metadata for one session IDsession_list({ scope?, start?, search?, limit? })— browse and filter sessionssubagent_abort({ sessionId })— cancel a session, primarily background subagentssubagent_send_async({ targetSessionId, message })— queue a message to a peer subagentsubagent_send_interrupt({ targetSessionId, message })— abort a peer's in-flight response, then deliver a message immediately
session_search({ query: "retry logic", limit: 5 })
session_search_global({ query: "deploy pipeline" })
Search is always hybrid: FTS5/BM25 lexical + Jina semantic embeddings fused with RRF. Use session_find for exact title lookup and session_get when you already have a session ID.
session_find({ title: "Search audit", limit: 5 })
session_get({ sessionId: "ses_123" })
session_list({ search: "CTF", scope: "global" })
Read transcript content:
session_read({ sessionId: "ses_123", withToolOutputs: true })
session_tail({ sessionId: "ses_123", limit: 10 })
subagent_send_async({
targetSessionId: "ses_peer_456",
message: "Found shared credential — skip auth step.",
})
Only works between sibling subagents (same parent session). To return a result to your calling agent, end your loop — results auto-return to the parent.
This plugin does not install native OpenCode skills automatically. If you want reusable local skills for your workspace, ask OpenCode to generate them from these docs:
@docs/session_search.md@docs/session_get.md@docs/session_find.md@docs/session_read.md@docs/runtime_model.md