CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/opencode-toolkit

Complete toolkit for configuring and extending OpenCode: agent creation, custom slash commands, configuration management, plugin development, and SDK usage.

98

Quality

98%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

events.mdbuild-plugins/references/

Events Reference

Auto-generated on 2025-12-26T13:17:55.481Z Source: packages/sdk/js/src/v2/gen/types.gen.ts

<event_types>

Event Union (35 types)

export type Event =
  | EventInstallationUpdated
  | EventInstallationUpdateAvailable
  | EventProjectUpdated
  | EventServerInstanceDisposed
  | EventLspClientDiagnostics
  | EventLspUpdated
  | EventMessageUpdated
  | EventMessageRemoved
  | EventMessagePartUpdated
  | EventMessagePartRemoved
  | EventPermissionUpdated
  | EventPermissionReplied
  | EventFileEdited
  | EventTodoUpdated
  | EventSessionStatus
  | EventSessionIdle
  | EventSessionCompacted
  | EventTuiPromptAppend
  | EventTuiCommandExecute
  | EventTuiToastShow
  | EventMcpToolsChanged
  | EventCommandExecuted
  | EventSessionCreated
  | EventSessionUpdated
  | EventSessionDeleted
  | EventSessionDiff
  | EventSessionError
  | EventFileWatcherUpdated
  | EventVcsBranchUpdated
  | EventPtyCreated
  | EventPtyUpdated
  | EventPtyExited
  | EventPtyDeleted
  | EventServerConnected
  | EventGlobalDisposed

</event_types>

<quick_reference>

Quick Reference

Event TypeTypeScript Type
installation.updatedEventInstallationUpdated
installation.update-availableEventInstallationUpdateAvailable
project.updatedEventProjectUpdated
server.instance.disposedEventServerInstanceDisposed
lsp.client.diagnosticsEventLspClientDiagnostics
lsp.updatedEventLspUpdated
message.updatedEventMessageUpdated
message.removedEventMessageRemoved
message.part.updatedEventMessagePartUpdated
message.part.removedEventMessagePartRemoved
permission.updatedEventPermissionUpdated
permission.repliedEventPermissionReplied
file.editedEventFileEdited
todo.updatedEventTodoUpdated
session.statusEventSessionStatus
session.idleEventSessionIdle
session.compactedEventSessionCompacted
tui.prompt.appendEventTuiPromptAppend
tui.command.executeEventTuiCommandExecute
tui.toast.showEventTuiToastShow
mcp.tools.changedEventMcpToolsChanged
command.executedEventCommandExecuted
session.createdEventSessionCreated
session.updatedEventSessionUpdated
session.deletedEventSessionDeleted
session.diffEventSessionDiff
session.errorEventSessionError
file.watcher.updatedEventFileWatcherUpdated
vcs.branch.updatedEventVcsBranchUpdated
pty.createdEventPtyCreated
pty.updatedEventPtyUpdated
pty.exitedEventPtyExited
pty.deletedEventPtyDeleted
server.connectedEventServerConnected
global.disposedEventGlobalDisposed

</quick_reference>

<event_definitions>

Events by Category

command

command.executed

export type EventCommandExecuted = {
  type: "command.executed"
  properties: {
    name: string
    sessionID: string
    arguments: string
    messageID: string
  }
}

file

file.edited

export type EventFileEdited = {
  type: "file.edited"
  properties: {
    file: string
  }
}

file.watcher.updated

export type EventFileWatcherUpdated = {
  type: "file.watcher.updated"
  properties: {
    file: string
    event: "add" | "change" | "unlink"
  }
}

global

global.disposed

export type EventGlobalDisposed = {
  type: "global.disposed"
  properties: {
    [key: string]: unknown
  }
}

installation

installation.updated

export type EventInstallationUpdated = {
  type: "installation.updated"
  properties: {
    version: string
  }
}

installation.update-available

export type EventInstallationUpdateAvailable = {
  type: "installation.update-available"
  properties: {
    version: string
  }
}

lsp

lsp.client.diagnostics

export type EventLspClientDiagnostics = {
  type: "lsp.client.diagnostics"
  properties: {
    serverID: string
    path: string
  }
}

lsp.updated

export type EventLspUpdated = {
  type: "lsp.updated"
  properties: {
    [key: string]: unknown
  }
}

mcp

mcp.tools.changed

export type EventMcpToolsChanged = {
  type: "mcp.tools.changed"
  properties: {
    server: string
  }
}

message

message.updated

export type EventMessageUpdated = {
  type: "message.updated"
  properties: {
    info: Message
  }
}

message.removed

export type EventMessageRemoved = {
  type: "message.removed"
  properties: {
    sessionID: string
    messageID: string
  }
}

message.part.updated

export type EventMessagePartUpdated = {
  type: "message.part.updated"
  properties: {
    part: Part
    delta?: string
  }
}

message.part.removed

export type EventMessagePartRemoved = {
  type: "message.part.removed"
  properties: {
    sessionID: string
    messageID: string
    partID: string
  }
}

permission

permission.updated

export type EventPermissionUpdated = {
  type: "permission.updated"
  properties: Permission
}

permission.replied

export type EventPermissionReplied = {
  type: "permission.replied"
  properties: {
    sessionID: string
    permissionID: string
    response: string
  }
}

project

project.updated

export type EventProjectUpdated = {
  type: "project.updated"
  properties: Project
}

pty

pty.created

export type EventPtyCreated = {
  type: "pty.created"
  properties: {
    info: Pty
  }
}

pty.updated

export type EventPtyUpdated = {
  type: "pty.updated"
  properties: {
    info: Pty
  }
}

pty.exited

export type EventPtyExited = {
  type: "pty.exited"
  properties: {
    id: string
    exitCode: number
  }
}

pty.deleted

export type EventPtyDeleted = {
  type: "pty.deleted"
  properties: {
    id: string
  }
}

server

server.instance.disposed

export type EventServerInstanceDisposed = {
  type: "server.instance.disposed"
  properties: {
    directory: string
  }
}

server.connected

export type EventServerConnected = {
  type: "server.connected"
  properties: {
    [key: string]: unknown
  }
}

session

session.status

export type EventSessionStatus = {
  type: "session.status"
  properties: {
    sessionID: string
    status: SessionStatus
  }
}

session.idle

export type EventSessionIdle = {
  type: "session.idle"
  properties: {
    sessionID: string
  }
}

session.compacted

export type EventSessionCompacted = {
  type: "session.compacted"
  properties: {
    sessionID: string
  }
}

session.created

export type EventSessionCreated = {
  type: "session.created"
  properties: {
    info: Session
  }
}

session.updated

export type EventSessionUpdated = {
  type: "session.updated"
  properties: {
    info: Session
  }
}

session.deleted

export type EventSessionDeleted = {
  type: "session.deleted"
  properties: {
    info: Session
  }
}

session.diff

export type EventSessionDiff = {
  type: "session.diff"
  properties: {
    sessionID: string
    diff: Array<FileDiff>
  }
}

session.error

export type EventSessionError = {
  type: "session.error"
  properties: {
    sessionID?: string
    error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError | ApiError
  }
}

todo

todo.updated

export type EventTodoUpdated = {
  type: "todo.updated"
  properties: {
    sessionID: string
    todos: Array<Todo>
  }
}

tui

tui.prompt.append

export type EventTuiPromptAppend = {
  type: "tui.prompt.append"
  properties: {
    text: string
  }
}

tui.command.execute

export type EventTuiCommandExecute = {
  type: "tui.command.execute"
  properties: {
    command:
      | "session.list"
      | "session.new"
      | "session.share"
      | "session.interrupt"
      | "session.compact"
      | "session.page.up"
      | "session.page.down"
      | "session.half.page.up"
      | "session.half.page.down"
      | "session.first"
      | "session.last"
      | "prompt.clear"
      | "prompt.submit"
      | "agent.cycle"
      | string
  }
}

tui.toast.show

export type EventTuiToastShow = {
  type: "tui.toast.show"
  properties: {
    title?: string
    message: string
    variant: "info" | "success" | "warning" | "error"
    /**
     * Duration in milliseconds
     */
    duration?: number
  }
}

vcs

vcs.branch.updated

export type EventVcsBranchUpdated = {
  type: "vcs.branch.updated"
  properties: {
    branch?: string
  }
}

</event_definitions>

build-plugins

SKILL.md

tile.json

tile.json