@ai-outfitter/outfitter

Profile-oriented wrapper for launching pi, Claude Code, and future agent CLIs with reproducible configuration.

Packages

Package details

skill

Install @ai-outfitter/outfitter from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@ai-outfitter/outfitter
Package
@ai-outfitter/outfitter
Version
1.1.0
Published
Jul 27, 2026
Downloads
1,994/mo · 456/wk
Author
ncrmro
License
SEE LICENSE IN LICENSE.md
Types
skill
Size
570.8 KB
Dependencies
7 dependencies · 0 peers
Pi manifest JSON
{
  "skills": [
    "./.outfitter/skills"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Outfitter

Outfitter is the toolchain for .agents: it resolves agent configuration from local and remote .agents trees, composes agents, skills, and knowledge by slug, and launches the result through wrapped agent CLIs like pi and Claude Code.

Outfitter does not own a configuration format. Your .agents/ directory is the source of truth — useful without Outfitter, committed and reviewed like any other code.

Why

Your agent setup is configuration: prompts, skills, MCP servers, model choices, permissions. Left alone it lives per tool and per laptop, gets pasted between repos, and drifts. Outfitter treats it like the rest of your infrastructure — layered, composed by slug, pinned by SHA, reviewed through pull requests.

That turns one person's improvement into everyone's default. On Monday a platform engineer writes a grafana-alert-investigate skill in their own ~/.agents tree and uses it at their desk. By Friday it is merged into the org catalog, pinned by SHA, and selected by slug from an agent that also runs on a CI schedule and in the cluster. Nobody else configured anything — their next run composes the new skill, and it costs their context window one line of routing metadata until it activates.

Two conventions do most of that work:

  • Iterate on it in your own ~/.agents against real work, then share it by pull request — to the project, your org's catalog, or a community catalog. Everyone composes the shared version back by slug, and anything they need different they override in their own layer instead of copying. See Conventions.

  • The same composition runs everywhere work happens: interactively at your desk, in GitHub Actions on any trigger, as recurring loops — locally, on a CI cron, or on a cluster schedule — and as resident or job-based agents in Kubernetes. Surface availability varies by release; each page notes its status.

For the full argument, read the Philosophy.

Quick start

Run without installing:

npx @ai-outfitter/outfitter

Full install:

npm install -g @ai-outfitter/outfitter
outfitter

Pi is bundled and also hosts Outfitter's setup walkthrough. Install other runtime harnesses, such as Claude Code, separately. For the full walkthrough, see Getting started.

Already have a .agents/ directory?

Then you already have Outfitter configuration. Each agent's loadout references your existing skills, subagents, MCP, knowledge, and commands by slug with zero porting:

<!-- .agents/agents/engineer/agent.md -->
---
name: engineer
skills: [wiki, research]
subagents: [code-reviewer]
mcp: [github]
---
# .agents/settings.yml
default_agent: engineer

outfitter setup restores the original Pi-native profile-catalog walkthrough on top of .agents: choose the default Outfitter catalog, create your own profile, or provide another catalog, then pick the home/project target and default CLI agent. The default picker is fetched from the immutable ai-outfitter/default-profiles Release Please tag pinned by Outfitter—never from a sibling checkout. Managed porting and persistent harness symlinks are deferred to #187.

The .agents protocol in 30 seconds

.agents/
  agents.md            # shared operating context
  system-prompt.md     # base system prompt
  mcp.json             # MCP servers
  models.json          # model configuration
  agents/<id>/agent.md # identities + loadouts — run directly or as subagents
  skills/<id>/...      # capability packages
  knowledge/           # reference documents
  commands/            # slash commands

Layers merge by ID: <project>/.agents/ over ~/.agents/ over pinned remote catalogs. An agent carries both its identity and its loadout — an agent profile — and is what you run; a persona is a review convention layered on a base agent; a subagent is an agent a run delegates to, across four delegation boundaries from an in-session helper to a Kubernetes Job.

Documentation

The documentation index follows the same arc — set up your own, understand the pieces, share across your org, automate more surfaces, contribute back:

Use cases, story first:

For local development, repository structure, and release workflow details, see Contributing.

License

Outfitter is MIT licensed, except for code in code/enterprise/, which is under the Unsupervised Enterprise license. Production use of that code requires a valid Unsupervised Enterprise license.