Skip to main content
Every plugin must implement these subcommands.

Required commands

info

Returns metadata and declares which optional capabilities your plugin supports.
entire-agent-myagent info
{
  "protocol_version": 1,
  "name": "myagent",
  "type": "MyAgent",
  "description": "MyAgent - AI-powered code editor",
  "is_preview": true,
  "protected_dirs": [".myagent"],
  "hook_names": ["session-start", "session-end", "stop"],
  "capabilities": {
    "hooks": true,
    "transcript_analyzer": true,
    "transcript_preparer": false,
    "token_calculator": false,
    "text_generator": false,
    "hook_response_writer": false,
    "subagent_aware_extractor": false
  }
}
FieldDescription
protocol_versionMust match the CLI’s expected version (currently 1)
nameRegistry name (must match the <name> in the binary name)
typeDisplay name / type identifier
descriptionHuman-readable description
is_previewWhether the agent is in preview
protected_dirsDirectories the CLI should not modify (excluded from checkpoints and diffs)
hook_namesAgent lifecycle hooks this plugin handles
capabilitiesObject declaring which optional capabilities are supported

detect

Returns whether the agent is available in the current environment. Return {"present": false} if the agent’s dependencies are not met — the CLI will skip enabling the agent.
entire-agent-myagent detect
{"present": true}

get-session-id

Extracts a session ID from a hook input event. stdin: HookInput JSON
{"session_id": "abc123"}

get-session-dir --repo-path <path>

Returns where agent sessions are stored.
{"session_dir": "/path/to/sessions"}

resolve-session-file --session-dir <dir> --session-id <id>

Resolves the session file path from a session directory and ID.
{"session_file": "/path/to/session/file.jsonl"}

read-session

Reads session data from a hook input event. stdin: HookInput JSON stdout: AgentSession JSON

write-session

Persists session data to disk. The plugin is responsible for choosing the storage location and format. stdin: AgentSession JSON Exit 0 on success.

read-transcript --session-ref <path>

Reads a transcript file and returns its raw bytes on stdout.

chunk-transcript --max-size <n>

Splits a transcript (raw bytes on stdin) into chunks.
{"chunks": ["<base64-encoded-chunk>", "..."]}

reassemble-transcript

Reassembles chunks back into a transcript. Called during entire checkpoint rewind to reconstruct transcript data from stored chunks. stdin:
{"chunks": ["<base64-encoded-chunk>", "..."]}
stdout: Raw transcript bytes.

format-resume-command --session-id <id>

Returns the command a user would run to resume a session.
{"command": "myagent --resume abc123"}

Optional capabilities

Set capabilities to true in your info response to enable these. The CLI will never call subcommands for capabilities you don’t declare.

hooks

Manage agent lifecycle hooks for Entire integration.
SubcommandDescription
parse-hook --hook <name>Parse a raw hook payload (stdin) into an Event. Return null if not relevant.
install-hooks [--local-dev] [--force]Install hooks. --local-dev installs hooks pointing to a local development build. --force overwrites existing hook files. Returns {"hooks_installed": 3}.
uninstall-hooksRemove installed hooks. Exit 0 on success.
are-hooks-installedCheck hook status. Returns {"installed": true}.

transcript_analyzer

Extract data from agent transcripts.
SubcommandDescription
get-transcript-position --path <path>Returns {"position": 12345} (byte offset).
extract-modified-files --path <path> --offset <n>Returns {"files": [...], "current_position": 12345}.
extract-prompts --session-ref <path> --offset <n>Returns {"prompts": ["prompt text", ...]}.
extract-summary --session-ref <path>Returns {"summary": "...", "has_summary": true}.

transcript_preparer

SubcommandDescription
prepare-transcript --session-ref <path>Pre-process a transcript file. Exit 0 on success.

token_calculator

SubcommandDescription
calculate-tokens --offset <n>Calculate token usage from transcript bytes (stdin). --offset is the byte offset into the transcript to start counting from.
Output:
{
  "input_tokens": 1500,
  "output_tokens": 500,
  "cache_creation_tokens": 0,
  "cache_read_tokens": 200,
  "api_call_count": 3
}
Only input_tokens and output_tokens are required. Other fields default to 0.

text_generator

SubcommandDescription
generate-text --model <model>Generate text from a prompt (stdin). Returns {"text": "..."}.

hook_response_writer

SubcommandDescription
write-hook-response --message <msg>Write a message in the agent’s native hook format (stdout).

subagent_aware_extractor

For agents that spawn subagents.
SubcommandDescription
extract-all-modified-files --offset <n> --subagents-dir <dir>Extract modified files from main + subagent transcripts (stdin: main transcript). Returns {"files": [...]}.
calculate-total-tokens --offset <n> --subagents-dir <dir>Calculate total tokens across main + subagent transcripts (stdin: main transcript). Same format as calculate-tokens, with optional subagent_tokens nested object.