Concept · access
Use when
You make or check an agent for the person’s project, give it an address or a key, or choose how much it may change.
Looking for something else?
Limiting what an agent reads (card view). Giving a client agents, access and a list of what they did (card brain). The tools you have yourself (card credential).
For
A Kit is a named role for an agent on one project. It lists the tools the agent may call, and it may add instructions. Each published version of a Kit is fixed and has an address that opens that role. A person can connect an MCP client to the address, or you can make a machine connection that has its own key. A Kit says what an agent may do. It does not say what the agent may read. To limit what it reads, limit its connection to a View.Use when
- The person asks for an agent that works with some of the project’s Shapes.
- You must choose how much that agent may change.
- You need the address to add to an MCP client, or a key for a machine.
- A Brain needs agents of its own (card brain).
Not this
- A limit on what an agent or key reads: use a View (card view).
- The agents and access you give one client, in one place: use a Brain (card brain).
- Which credential you hold and what it can do: use card credential.
Rules
kit.1A Kit limits actions, not data. Your job: to limit what an agent reads, create its connection with--view <view-id>(card view). Without a View, the agent reads the project as far as its tools and the person who made it allow.kit.2Describe the agent, and Penumbra chooses its tools. Your job: runpenumbra kits draft --name "<name>" --shape <shape> --level <level>. Give 1 to 20 published Shapes. The Kit level isread,propose,confirmorapply.readreads only.proposestages changes that a person submits.confirmchanges the project with each change approved first.applychanges it directly, and the project’s approval rules still hold. Enforced: a Kit level that your role cannot give is refused withlevel_unavailable, and the answer names the highest level you can give.kit.3Choose the lowest Kit level that does the job. Your job: read the lines under “an agent with it” that the draft prints, and tell the person in those words. The person decides the Kit level, not you.kit.4Check a draft, and publish what you checked. Your job: runpenumbra kits check <kit-id>. It prints the tools and a review digest. Publish withpenumbra kits publish <kit-id> --digest <digest>. Enforced: a draft that changed after the check is refused withkit_draft_changed. Without--digest, publish checks the draft itself first.kit.5A refused draft says what to fix, field by field. Enforced: a draft that is saved but not ready exits with code 3 andkit_not_ready. The output starts with “to fix:” and gives one line for each field. Fix those fields and runpenumbra kits draft --kit <kit-id>again with the same flags.kit.6A published version does not change, and a connection keeps the tools it was made with. Enforced: a newer version of the Kit adds no tool to a connection that exists. Your job: to give an agent the newer version, make a new connection on it.kit.7An address grants nothing by itself. Enforced: a client that opens it signs in, and the person approves it. Your job: give the address to the person, who adds it to an MCP client such as Claude.kit.8A machine connection has its own key, and the key is shown once. Your job: runpenumbra kits connections create "<name>" --kit <kit-id>and store the key it prints. Enforced: Penumbra cannot show the key again, and it works for 30 days. The key opens the Kit’s address only. The API refuses it. If it is lost, the person rotates or revokes the connection in the App.kit.9Kits and connections belong to a person. Enforced: a key or a connected agent that runspenumbra kits list, or any other Kit command, is refused withhuman_session_requiredand exit code 3. Making a connection needs a project owner or admin. Limiting it to a View also needs someone who manages access.kit.10A connection for a View or a Brain can only read. Your job: runpenumbra kits show <kit-id>and use a version that says “reads only”. Enforced: another version is refused withview_requires_read_onlyorbrain_kit_not_read_only(card rules view.6 and brain.5).kit.11A new Kit is private to the person who made it. Enforced: a Brain refuses a Kit that is not shared with the project, withbrain_kit_unavailable. Your job: the CLI has no command that shares a Kit. Ask a project owner or admin to open Tools, then Kits, and set Who can use this Kit? to Members of this project.kit.12A Kit cannot lower the project’s approval rules. Enforced: every connection follows the project’s rules for destructive, publication and paid changes (card approval). Kit levelconfirmalso holds every submit for approval. Your job: do not promise the person that anapplyagent changes the project without a check. Read the consequence lines that the draft prints.kit.13Instructions are text sent to the client. Enforced: more than 8192 characters is refused. The CLI refuses it before it sends the draft, withinvalid_inputand exit code 2. The cell names the same limitinstructions_too_long. A Kit counts characters, and a Brain counts bytes (card rule brain.11). Your job: never put a secret in them, because the client can read them. They do not change what the agent may do.kit.14Publishing and making a connection are keyed. Enforced when you ask: run the same command with the same--request-id, and you get the same version or connection, not a second one. A repeat of a connection does not show the key again. Without the flag, the CLI makes a new key for each run.kit.15Retiring a Kit ends every connection on it. Your job: tell the person before they retire it. Penumbra revokes the connections and cancels the approvals that wait for them. The CLI has no command for it. The person retires a Kit in the App with Retire Kit.
Failure signs
- The agent reads more than the person meant: it has no View (rule kit.1).
penumbra kits publishis refused withkit_draft_changed: rule kit.4.- A draft exits with
kit_not_ready: rule kit.5. penumbra kits listis refused withhuman_session_required: rule kit.9.- A Brain refuses the Kit: rules kit.10 and kit.11.
- An agent has a tool that the person did not expect: the Kit version it was made with has it (rule kit.6).
- An agent cannot find something the person sees: problem hidden-reads-as-missing.
Doors
The CLI has no command that shares, retires, rotates or revokes. The person
does those in the App under Tools, then Kits.