Skills, MCP and hooks#
PacketCode can load written instructions as Agent Skills, run local MCP servers and call lifecycle hooks. Each extension can influence or execute work, so review it before enabling it.
The skills command is available from v0.6.0. Use a current source build for
the scoped skill grants and recovery behaviour described below until those
changes appear in the release you install. See Install.
Skills#
Use packetcode skills to inspect available operations. Install only from a
source you trust, review SKILL.md and any referenced scripts, and choose user
or project scope deliberately. Verify by restarting PacketCode and checking that
the expected skill appears in /help or the skill list.
A skill's allowed-tools grants apply to the turn that loads it. They can
allow a tool that would otherwise ask, but cannot override a deny rule. They
expire when that turn ends and do not become session permissions or apply to
later queued prompts or background jobs.
Command scopes such as Bash(gh:*) grant only the named command prefix;
execute_command(git status) grants that exact command. A bare foreign tool
name such as Bash, an unknown tool, or an unsupported argument scope grants
nothing and produces a warning. Review the displayed scope before relying on
it. See Permissions.
MCP servers#
[mcp.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem@2026.8.31", "."]
enabled = true
timeout_sec = 10
The example grants access to PacketCode's current project directory. Stdio MCP servers run as child processes under your account. Their tools remain permission-gated, but the server process itself is not sandboxed. Review and update pinned versions deliberately.
Hooks and statusline#
Hooks can observe lifecycle events and may be able to block selected actions. The statusline command renders external state with a bounded timeout. Commands should be fast, deterministic and free of secrets in their output.
Verify#
Start PacketCode in a disposable project, inspect the loaded extension list and invoke one read-only action. Confirm the command, working directory and tool name match the configuration. Disable the extension and restart PacketCode to confirm it is no longer available.
If it does not work#
| Symptom | Check | Recovery |
|---|---|---|
| An MCP server never starts | Its own startup output | See An MCP server does not start |
| A skill is not offered | Whether the project is trusted and the skill is discoverable | An untrusted project does not load project-scoped extensions |
| A hook does not fire | Whether the hook is configured where you think it is | Hooks are configuration, not code the agent chooses to run |
| A skill allows an action without asking | Review its allowed-tools scope and the active deny rules |
Remove or narrow the grant if that authority is unwanted; it expires at the end of the turn. |