Skip to main content
GET
Get an agent recipe

Authorizations

Authorization
string
header
required

Enforced on every transport, with no exempt operation. A person's request — over the default local unix socket exactly as over a TCP listener — must carry a JWT issued by the configured identity provider, which the host verifies itself against that issuer's key set: signature, issuer, expiry, and the person and organisation it names. Requests without a valid one receive 401 NRY-0011. The socket's file permissions are transport and are not an authorisation.

Path Parameters

name
string
required

The agent recipe's name.

Maximum string length: 128
Pattern: ^[^\s/\\]+$

Query Parameters

repository
string

Absolute path of the repository to resolve recipes for. A repository's own .claude/agents and .narya/agents are read only when it is named here AND its instruction files have been trusted; with no repository named, the answer carries the built-ins, the user's own recipes and the installed packages' only.

Maximum string length: 4096

Response

The agent recipe.

A named agent recipe — instructions, allowed tools, model and permission policy. Recipes come from configuration and packages; read-only through this API in v1.

name
string
required
Maximum string length: 128
Pattern: ^[^\s/\\]+$
description
string
Maximum string length: 1024
model
string

The model the recipe runs on; the session default when absent.

tools
string[]

Tool names the recipe may use.

permissionPolicy
string

Name of the permission policy the recipe runs under.

mode
enum<string>

Where the recipe may be used: primary is the session's own agent, subagent is a delegate, all is both. A client offering a primary-agent picker lists primary and all.

Available options:
primary,
subagent,
all
source
enum<string>

Where the recipe was read from, nearest source winning a name collision: a built-in, the user's own narya or Claude Code directory, an installed package, or the repository's own .claude/.narya directory.

authored is the odd one and the only one with no file behind it: narya wrote the recipe and a person consented to it, so it is a row in the refinement ledger rather than something anybody can open. It sits between the built-ins and the user's own directory — a learned override of a shipped default is the point, and a model is not the user.

Available options:
builtin,
user,
claude-user,
package,
project-claude,
project-narya,
authored
sourcePackage
string

The package that supplied the recipe; absent for built-ins and local configuration.