Fen registries
Source-scanned registry entries supplied by first-party extensions: commands, tools, providers, presenters, panels, status items, and related extension surfaces.
commands #
Registered slash commands.
| Name | Description | Source |
|---|---|---|
(dynamic) # | Registered (dynamic) command registry entry. | packages/util/src/fen/util/panel_toggle.fnl:61 |
agents # | List discovered subagents and their model/timeout metadata | extensions/behaviors/companions/subagent/init.fnl:2110 |
animations # | Toggle TUI busy animations | extensions/adapters/presenters/tui/init.fnl:875 |
btw # | Open or focus an ephemeral read-only side-agent chat | extensions/adapters/presenters/tui/init.fnl:826 |
btw-use # | Copy the btw agent's last reply into the main input draft | extensions/adapters/presenters/tui/init.fnl:833 |
cancel-all # | Cancel current turn and clear queues | extensions/behaviors/inspectors/queue/commands/queue.fnl:186 |
claude-memory # | Inspect read-only Claude Code memory index resolution | extensions/behaviors/companions/claude-memory/init.fnl:77 |
compact # | Summarize older context and keep recent messages in this session | extensions/behaviors/companions/compact/init.fnl:408 |
decide # | Experimental decisions: /decide undo | extensions/behaviors/kernel/decide/init.fnl:31 |
docs # | Browse runtime docs: /docs [topic] [name] | extensions/behaviors/kernel/docs/init.fnl:578 |
errors # | Toggle recent error details / tracebacks | extensions/adapters/presenters/tui/init.fnl:907 |
expand # | Toggle full vs collapsed tool-result bodies | extensions/adapters/presenters/tui/init.fnl:846 |
extensions # | Pick an extension, show details, inspect live registry, or enable/disable one in settings | extensions/behaviors/inspectors/extensions/commands/extension.fnl:649 |
goal # | Run a bounded autonomous goal workflow | extensions/behaviors/companions/goal/init.fnl:774 |
handoff # | Summarize this session, seed a fresh session with the summary | extensions/behaviors/companions/handoff/init.fnl:140 |
help # | Show available commands and controls | extensions/behaviors/kernel/essentials/commands/help.fnl:94 |
markdown # | Toggle Markdown rendering of assistant text | extensions/adapters/presenters/tui/init.fnl:861 |
model # | Switch model (fuzzy selector; exact id/index switches directly) | extensions/behaviors/kernel/essentials/commands/model.fnl:224 |
n # | Alias for /new | extensions/behaviors/actions/sessions/commands/session.fnl:537 |
new # | Reset the current conversation and start a fresh session | extensions/behaviors/actions/sessions/commands/session.fnl:176 |
plan # | Draft, revise, show, and approve a read-only execution plan | extensions/behaviors/companions/plan/init.fnl:338 |
prefer # | Save a durable user preference: /prefer [project|user] <text> | extensions/behaviors/kernel/default-prompt/prefer.fnl:177 |
profile # | Capture Lua instruction samples and measured TUI wall gaps; start|mark|stop|status|report|save|reset; exports Speedscope and folded flame-graph stacks | extensions/behaviors/inspectors/profiler/commands.fnl:150 |
r # | Alias for /reload | extensions/behaviors/actions/sessions/commands/session.fnl:562 |
redraw # | Force a full terminal repaint to recover from corruption | extensions/adapters/presenters/tui/init.fnl:932 |
reload # | Hot-reload core modules and source overlays | extensions/behaviors/actions/sessions/commands/session.fnl:479 |
reload-extension # | Reload one external extension by name | extensions/behaviors/inspectors/extensions/commands/extension.fnl:612 |
resume # | Resume a session (overlay if no arg; id/prefix/path/index if given) | extensions/behaviors/actions/sessions/commands/session.fnl:551 |
sessions # | Pick a recent session to resume (overlay) | extensions/behaviors/actions/sessions/commands/session.fnl:545 |
simplify # | Review changed code and apply quality cleanups via subagent reviewers | extensions/behaviors/companions/simplify/init.fnl:239 |
skills # | Pick a skill, show details, or list discovered Agent Skills | extensions/behaviors/companions/skills/init.fnl:732 |
subagents # | Show active/recent subagent runs; use show, steer, or cancel with a run id | extensions/behaviors/companions/subagent/init.fnl:2116 |
thinking # | Show/set thinking effort; /thinking blocks on|off toggles display | extensions/behaviors/kernel/essentials/commands/thinking.fnl:114 |
thinking-blocks # | Show or hide assistant thinking blocks | extensions/adapters/presenters/tui/init.fnl:890 |
todos # | Toggle the todo panel; /todos show prints the current list | extensions/behaviors/companions/todo/init.fnl:321 |
tools #
Registered agent tools.
| Name | Description | Source |
|---|---|---|
account_usage # | Inspect Codex account-wide quota percentages and reset times (not context capacity or conversation tokens). Demand refresh, at most once per minute; failures retain stale data. | extensions/adapters/providers/openai/usage.fnl:494 |
agent_state # | Read structured state of the running agent. Read-only; does not evaluate code. Query is a tiny Fennel-shaped data language. Examples: (:get :model), (:get :thinking), (:count (:get :messages)), (:get :messages -1), (:pluck (:get :tools) :name), (:get :extensions :panels), (:where (:get :messages) :role :assistant), (:last (:where (:get :messages) :role :assistant)), (:slice (:get :messages) -5 5), (:keys (:get)). Prefer narrow queries over dumping large roots. Output defaults to JSON; use format=fennel for Fennel rendering when available. | extensions/behaviors/companions/agent-state/init.fnl:94 |
builtin-tool-registry # | Dynamic loop registering every built-in tool spec from the builtin tools registry. | extensions/behaviors/kernel/builtin-tools/init.fnl:20 |
compact # | Compact this session's model context when it is becoming too large. Summarizes older messages, keeps recent messages verbatim, and persists the compaction for session resume. Call only when substantial context can be discarded; do not call repeatedly or on short sessions. | extensions/behaviors/companions/compact/init.fnl:415 |
extension # | Inspect loaded extensions and live registries, or reload one external extension. Actions: list, show, registry, reload. Read actions do not require interactive state; reload does. | extensions/behaviors/inspectors/extensions/commands/extension.fnl:631 |
fen_docs # | Read or search fen runtime docs and extension contracts. Useful for implementing extensions: inspect register kinds, canonical types, event shapes, and live commands/tools/providers. Topics: topics, commands, tools, providers, auth-backends, session-backends, presenters, controls, status, panels, prompt-fragments, introspectors, events, types, register-kinds, interfaces, extensions. Use name for a specific entry, e.g. {topic:'register-kinds', name:'tool'} or {topic:'types', name:'ToolResultMessage'}. Use query to search docs, optionally scoped by topic. | extensions/behaviors/kernel/docs/init.fnl:602 |
goal # | Start a bounded autonomous goal workflow during the active agent turn. | extensions/behaviors/companions/goal/init.fnl:780 |
models # | Inspect model providers without exposing credentials. Actions: current, providers, and list. | extensions/behaviors/companions/agent-state/init.fnl:111 |
plan # | Draft, revise, show, or cancel a read-only execution plan. This tool never approves or executes a plan. | extensions/behaviors/companions/plan/init.fnl:344 |
profile # | Control fen's statistical profiler for self-investigation. Actions: start, status, report, stop, reset, or save. Start accepts period (at least 100) and mode (functions or lines); tool save output-directory is confined to fen's profiles artifact root (or omit it to use an operator-configured default). Samples measure Lua VM instructions, not wall-clock time. | extensions/behaviors/inspectors/profiler-tool/init.fnl:8 |
queue # | Inspect pending steering and follow-up input. This agent-facing tool is read-only; use /queue for explicit user-owned clear and mode changes. | extensions/behaviors/inspectors/queue/commands/queue.fnl:178 |
reload # | Queue a reload request for after the current agent turn is fully idle. scope is reload for normal state-preserving reload, or registries for explicit registry recovery; reason is recorded for the user and logs. Restart and resume remain the full-process recovery path. | extensions/behaviors/actions/sessions/commands/session.fnl:489 |
simplify # | Queue a behavior-preserving simplification pass over changed code in the active agent turn. | extensions/behaviors/companions/simplify/init.fnl:245 |
skill # | Load a discovered skill's full instructions by name. The system prompt lists available skill names and descriptions; use this tool when a task matches one. | extensions/behaviors/companions/skills/init.fnl:717 |
subagent # | Use models before a launch to refresh exact models. review-worktrees creates 1–4 detached sibling worktrees for ordinary read-only subagent launches; cleanup-review-worktrees removes only unchanged worktrees it created. Other values inspect or manage runs. | extensions/behaviors/companions/subagent/init.fnl:2131 |
todo_write # | Create or update the structured todo list for this session. Use for non-trivial multi-step work. This tool overwrites the full current list; provide every item that should remain. Status must be pending, in_progress, or completed, with at most one in_progress item. Use an empty items array to clear the list. | extensions/behaviors/companions/todo/init.fnl:299 |
providers #
Registered LLM providers.
| Name | Description | Source |
|---|---|---|
anthropic # | Anthropic Messages provider using ANTHROPIC_API_KEY and the default claude-haiku-4-5 model. | extensions/adapters/providers/anthropic/init.fnl:20 |
mock # | Deterministic, scriptable mock provider; requires no credentials. Drive responses with FEN_MOCK_SCRIPT or the mock-script provider option. | extensions/adapters/providers/mock/init.fnl:22 |
openai # | OpenAI Chat Completions provider using OPENAI_API_KEY and the default gpt-5.4-nano model. | extensions/adapters/providers/openai/init.fnl:50 |
openai-codex # | ChatGPT subscription/Codex Responses provider using the openai-codex OAuth auth backend and default gpt-6.1-sol model. | extensions/adapters/providers/openai/init.fnl:70 |
openai-responses # | OpenAI Responses API provider using OPENAI_API_KEY and the default gpt-5.4-nano model. | extensions/adapters/providers/openai/init.fnl:56 |
openrouter # | OpenRouter Chat Completions provider using OPENROUTER_API_KEY and a curated tool-capable model list. | extensions/adapters/providers/openrouter/init.fnl:26 |
sakana # | Sakana AI Responses provider using SAKANA_API_KEY and the default fugu-ultra model. | extensions/adapters/providers/sakana/init.fnl:31 |
auth-backends #
Registered auth backends.
| Name | Description | Source |
|---|---|---|
openai-codex # | ChatGPT subscription PKCE OAuth credentials stored in fen's auth.json. | extensions/adapters/providers/openai/init.fnl:59 |
session-backends #
Registered session persistence backends.
| Name | Description | Source |
|---|---|---|
jsonl # | Append-only JSONL session backend under XDG state. Records canonical messages, replayable via --continue / /resume. | extensions/adapters/session-backends/jsonl/init.fnl:8 |
presenters #
Registered interactive presenters.
| Name | Description | Source |
|---|---|---|
goal-headless # | Registered goal-headless presenter. | extensions/adapters/presenters/goal_headless/init.fnl:109 |
json # | Registered json presenter. | extensions/adapters/presenters/json/init.fnl:85 |
print # | Registered print presenter. | extensions/adapters/presenters/print/init.fnl:59 |
rpc # | Registered rpc presenter. | extensions/adapters/presenters/rpc/init.fnl:365 |
stdio # | Registered stdio presenter. | extensions/adapters/presenters/stdio/init.fnl:267 |
tui # | Registered tui presenter. | extensions/adapters/presenters/tui/init.fnl:758 |
web # | Registered web presenter. | extensions/adapters/presenters/web/init.fnl:167 |
controls #
Registered keyboard/UI controls.
| Name | Description | Source |
|---|---|---|
hard-refresh # | Redraw the screen / recover from terminal corruption | extensions/adapters/presenters/tui/init.fnl:816 |
jump-to-live-bottom # | Jump to the live bottom and resume following transcript output | extensions/adapters/presenters/tui/init.fnl:796 |
jump-to-user-message # | Jump to the latest user message; repeat for previous messages | extensions/adapters/presenters/tui/init.fnl:791 |
list-workspaces # | Open the tab list and switch with the modal selector | extensions/adapters/presenters/tui/init.fnl:786 |
next-workspace # | Switch to the next presenter tab | extensions/adapters/presenters/tui/init.fnl:776 |
previous-workspace # | Switch to the previous presenter tab | extensions/adapters/presenters/tui/init.fnl:781 |
quit # | Quit; ctrl-c also clears input or cancels a busy turn | extensions/adapters/presenters/tui/init.fnl:811 |
suspend # | Suspend to the shell (resume with fg) | extensions/adapters/presenters/tui/init.fnl:821 |
toggle-thinking-blocks # | Toggle thinking blocks | extensions/adapters/presenters/tui/init.fnl:806 |
toggle-tool-results # | Toggle tool-result bodies | extensions/adapters/presenters/tui/init.fnl:801 |
status #
Registered status-line items.
| Name | Description | Source |
|---|---|---|
attention # | Registered attention status-line item. | extensions/adapters/presenters/tui/init.fnl:670 |
attention # | Registered attention status-line item. | extensions/adapters/presenters/web/init.fnl:151 |
codex-quota # | Registered codex-quota status-line item. | extensions/adapters/providers/openai/usage.fnl:416 |
context # | Registered context status-line item. | extensions/adapters/presenters/web/init.fnl:118 |
context # | Registered context status-line item. | extensions/adapters/presenters/tui/init.fnl:627 |
copy # | Registered copy status-line item. | extensions/adapters/presenters/tui/init.fnl:698 |
errors # | Registered errors status-line item. | extensions/adapters/presenters/tui/init.fnl:721 |
follow-up-queue # | Registered follow-up-queue status-line item. | extensions/adapters/presenters/tui/init.fnl:661 |
follow-up-queue # | Registered follow-up-queue status-line item. | extensions/adapters/presenters/web/init.fnl:142 |
goal # | Registered goal status-line item. | extensions/behaviors/companions/goal/init.fnl:828 |
model # | Registered model status-line item. | extensions/adapters/presenters/web/init.fnl:109 |
model # | Registered model status-line item. | extensions/adapters/presenters/tui/init.fnl:605 |
plan # | Registered plan status-line item. | extensions/behaviors/companions/plan/init.fnl:361 |
scroll # | Registered scroll status-line item. | extensions/adapters/presenters/tui/init.fnl:684 |
simplify # | Registered simplify status-line item. | extensions/behaviors/companions/simplify/init.fnl:255 |
steering-queue # | Registered steering-queue status-line item. | extensions/adapters/presenters/web/init.fnl:133 |
steering-queue # | Registered steering-queue status-line item. | extensions/adapters/presenters/tui/init.fnl:652 |
subagent # | Registered subagent status-line item. | extensions/behaviors/companions/subagent/init.fnl:2122 |
thinking # | Registered thinking status-line item. | extensions/adapters/presenters/tui/init.fnl:619 |
todo # | Registered todo status-line item. | extensions/behaviors/companions/todo/init.fnl:328 |
version # | Registered version status-line item. | extensions/adapters/presenters/tui/init.fnl:729 |
panels #
Registered presenter panels.
| Name | Description | Source |
|---|---|---|
(dynamic) # | Registered (dynamic) panel registry entry. | packages/util/src/fen/util/panel_toggle.fnl:62 |
(dynamic) # | Registered (dynamic) panel registry entry. | extensions/adapters/presenters/tui/init.fnl:743 |
(dynamic) # | Registered (dynamic) panel registry entry. | extensions/behaviors/companions/goal/init.fnl:832 |
(dynamic) # | Registered (dynamic) panel registry entry. | extensions/behaviors/companions/plan/init.fnl:365 |
(dynamic) # | Registered (dynamic) panel registry entry. | extensions/behaviors/companions/todo/init.fnl:327 |
busy # | Web presenter spinner row shown while the agent is busy. | extensions/adapters/presenters/web/init.fnl:161 |
busy # | TUI busy-state panel showing spinner, retry information, current turn elapsed time, and the next ctrl-c action. | extensions/adapters/presenters/tui/init.fnl:747 |
completion # | TUI inline slash-command/argument completion menu, filter-as-you-type above the input line. | extensions/adapters/presenters/tui/init.fnl:751 |
docs # | Runtime documentation browser panel backing the /docs command and fen_docs tool. | extensions/behaviors/kernel/docs/init.fnl:623 |
errors # | TUI error introspection panel showing recent error summaries and traceback details. | extensions/adapters/presenters/tui/init.fnl:742 |
extensions # | Extension detail and picker panel backing the /extensions command. | extensions/behaviors/inspectors/extensions/commands/extension.fnl:670 |
mem # | Memory diagnostics panel; /mem gc forces a GC pass, /mem help lists subcommands | extensions/behaviors/companions/mem/init.fnl:233 |
prompt # | Toggle the prompt-fragments panel; /prompt rendered emits the rendered prompt; /prompt stats reports per-fragment sizes | extensions/behaviors/inspectors/prompt/commands/prompt.fnl:100 |
queue # | Toggle the queue panel; /queue clear|mode preserve their actions | extensions/behaviors/inspectors/queue/commands/queue.fnl:157 |
skills # | Skill picker/detail panel backing the /skills command. | extensions/behaviors/companions/skills/init.fnl:780 |
status # | Toggle the status panel (model, provider, tokens, session) | extensions/behaviors/inspectors/status/commands/status.fnl:154 |
usage # | Toggle Codex account quota; demand refresh at most once per minute. | extensions/adapters/providers/openai/usage.fnl:424 |
prompt-fragments #
Registered system-prompt fragments.
No source-scanned registrations.
extensions #
First-party extension manifests.
| Name | Description | Source |
|---|---|---|
agent_state # | Read-only introspection tool for the running agent | extensions/behaviors/companions/agent-state/manifest.fnl:1 |
builtin_tools # | Built-in fen workspace tools and on-demand tool discovery. | extensions/behaviors/kernel/builtin-tools/manifest.fnl:1 |
claude_memory # | Read-only, bounded Claude Code project memory index | extensions/behaviors/companions/claude-memory/manifest.fnl:1 |
compact # | Context compaction command and agent tool: summarize older messages and keep recent context. | extensions/behaviors/companions/compact/manifest.fnl:1 |
decide # | Experimental: opt-in advisory decisions from TypeSafe's Jev on OpenRouter or OpenAI Decisions API, used by compaction, handoff hints, and busy-line routing. | extensions/behaviors/kernel/decide/manifest.fnl:1 |
default_prompt # | First-party default system prompt policy | extensions/behaviors/kernel/default-prompt/manifest.fnl:1 |
docs # | In-agent runtime documentation browser | extensions/behaviors/kernel/docs/manifest.fnl:1 |
essentials # | Essential fen slash commands: help and model selection. | extensions/behaviors/kernel/essentials/manifest.fnl:1 |
extensions_inspector # | Extension inspector: /extensions, /reload-extension, and extension detail panel. | extensions/behaviors/inspectors/extensions/manifest.fnl:1 |
goal # | Goal companion: bounded autonomous objective execution. | extensions/behaviors/companions/goal/manifest.fnl:1 |
goal_headless # | Headless presenter for bounded goal runs | extensions/adapters/presenters/goal_headless/manifest.fnl:1 |
handoff # | Session handoff command: summarize current context and seed a fresh session. | extensions/behaviors/companions/handoff/manifest.fnl:1 |
json # | One-shot structured JSON presenter for --presenter json | extensions/adapters/presenters/json/manifest.fnl:1 |
mem # | Runtime memory diagnostics command | extensions/behaviors/companions/mem/manifest.fnl:1 |
plan # | Plan companion: draft, revise, inspect, and approve read-only execution plans. | extensions/behaviors/companions/plan/manifest.fnl:1 |
print # | One-shot stdout presenter for --print | extensions/adapters/presenters/print/manifest.fnl:1 |
profiler # | Opt-in Lua instruction-sampling profiler with Speedscope and folded flame-graph exports via /profile | extensions/behaviors/inspectors/profiler/manifest.fnl:1 |
profiler_tool # | Explicit opt-in model-facing profiler tool for contributors; not embedded in release manifests. | extensions/behaviors/inspectors/profiler-tool/manifest.fnl:1 |
prompt # | Prompt inspector: /prompt command and prompt-fragment panel. | extensions/behaviors/inspectors/prompt/manifest.fnl:1 |
provider_anthropic # | First-party Anthropic Messages provider. | extensions/adapters/providers/anthropic/manifest.fnl:1 |
provider_mock # | Deterministic, scriptable mock provider for tests, smoke runs, and offline dev. | extensions/adapters/providers/mock/manifest.fnl:1 |
provider_openai # | First-party OpenAI provider family (Chat Completions, Responses, Codex subscription, and Codex OAuth auth). | extensions/adapters/providers/openai/manifest.fnl:1 |
provider_openrouter # | First-party OpenRouter provider (curated OpenAI-Chat-Completions-compatible gateway models). | extensions/adapters/providers/openrouter/manifest.fnl:1 |
provider_sakana # | First-party Sakana AI provider (OpenAI-Responses-compatible Fugu models). | extensions/adapters/providers/sakana/manifest.fnl:1 |
provider_shared # | Shared transport helpers for first-party provider adapters (retry/backoff). Registers no user-facing surface. | extensions/adapters/providers/shared/manifest.fnl:1 |
queue # | Queue inspector: /queue, /cancel-all, and queue panel. | extensions/behaviors/inspectors/queue/manifest.fnl:1 |
rpc # | Live wire-protocol child presenter for --presenter rpc | extensions/adapters/presenters/rpc/manifest.fnl:1 |
session_jsonl # | JSONL session backend | extensions/adapters/session-backends/jsonl/manifest.fnl:1 |
sessions # | Conversation and session lifecycle commands plus an agent-callable hot-reload tool. | extensions/behaviors/actions/sessions/manifest.fnl:1 |
simplify # | Simplify companion: fan out subagent reviewers over the diff and apply quality cleanups. | extensions/behaviors/companions/simplify/manifest.fnl:1 |
skills # | Agent Skills discovery and prompt fragment | extensions/behaviors/companions/skills/manifest.fnl:1 |
status # | Runtime status inspector: /status command and status panel. | extensions/behaviors/inspectors/status/manifest.fnl:1 |
stdio # | Line-mode stdin/stdout presenter | extensions/adapters/presenters/stdio/manifest.fnl:1 |
steering # | Steering/follow-up input pipeline handler and queue service consumed by the agent loop and queue commands. | extensions/behaviors/kernel/steering/manifest.fnl:1 |
subagent # | Delegate a task to a child fen agent with isolated context | extensions/behaviors/companions/subagent/manifest.fnl:1 |
todo # | Structured todo list companion tool, panel, and status item | extensions/behaviors/companions/todo/manifest.fnl:1 |
tui # | First-party termbox2 presenter | extensions/adapters/presenters/tui/manifest.fnl:1 |
web # | First-party LuaSocket/SSE browser presenter | extensions/adapters/presenters/web/manifest.fnl:1 |