Configuration isolation
A global Pi skill or setting can't change how your agent behaves. Mantle turns off implicit discovery and loads only the selected agent's resources.
Mantle is a local-first CLI and native Mac app for creating and running AI agents on
Pi. Each agent has its own
agent.yaml, skills, packages and sessions. You sign in to model
providers once, and every agent shares the login.
CLI on Linux and macOS, Windows through WSL · Mac app on Apple Silicon · Apache-2.0
$ mantle agent create reviewer --provider anthropic
Created agent "reviewer" (anthropic/claude-opus-4-8)
$ mantle agent show reviewer
reviewer — Review a project and explain concrete
correctness risks.
Model: anthropic/claude-opus-4-8
Credentials: shared login
Runtime: pi@1.0.0
Permissions: filesystem read, shell none
Skills: none
Cloud: not synced from this machine
$ mantle agent run reviewer
Sign in once to the providers Pi supports
Mantle for macOS · new
Mantle for macOS is a native app with Python and Node.js built in, so there's nothing else to install. It reads the same ~/.mantle library as the CLI, so your agents and logins are already there.
Needs a Mac with Apple Silicon and macOS 14 or later. This first build isn't notarized yet, so the first time you open it, allow it in System Settings → Privacy & Security.
Version 0.1.0 · Apple Silicon · 83 MB zip
Review a project and explain concrete correctness risks.
How it works
The installer and mantle setup do the integration work, so your first agent runs in minutes.
The installer checks every prerequisite at once and prints the fix for anything missing. It needs no sudo.
./install.shUse an API key or a subscription login. Every agent uses the same login, and a token refreshed in one agent works in all of them.
mantle auth login anthropicRun an agent in any project. Mantle loads its resources plus the project's AGENTS.md and CLAUDE.md.
mantle agent run revieweragent.yaml
Model, prompt, resources and permissions live in a single portable file. Mantle validates it before it installs anything, and keeps your comments and formatting when commands change it.
mantle agent edit NAME --providermantle: "0.1"
agent:
name: reviewer
description: Review a project and explain concrete correctness risks.
runtime:
name: pi
version: "1.0.0"
model:
provider: anthropic
name: claude-opus-4-8
system_prompt: |
Read the relevant project files before making claims. Explain each
finding with its location, triggering condition and practical impact.
permissions:
filesystem: read
shell: none
secrets: []
mantle: "0.1"
agent:
name: designer
description: Review interfaces against web design guidelines.
runtime:
name: pi
version: "1.0.0"
model:
provider: openai
name: gpt-5.6
resources:
skills:
- name: web-design-guidelines
source: https://github.com/vercel-labs/agent-skills/tree/063bee94c3f4df8453406c830b0a7df0f2860278/skills/web-design-guidelines
packages:
- name: pi-lens
source: npm:pi-lens@4.2.1
permissions:
filesystem: read
shell: none
# Names only. Values stay in ~/.mantle/.env on each machine.
secrets: [GITHUB_TOKEN]
mantle: "0.1"
agent:
name: local-assistant
description: A local model agent configured through agent-local models.json.
runtime:
name: pi
version: "1.0.0"
model:
provider: local
name: your-local-model
system_prompt: Explain your observations clearly and ask before making changes.
resources:
skills: []
packages: []
permissions:
filesystem: read
shell: none
secrets: []
Features
Mantle handles the parts that usually leak between agents: settings, logins, runtimes and resources.
A global Pi skill or setting can't change how your agent behaves. Mantle turns off implicit discovery and loads only the selected agent's resources.
Logins are stored once with owner-only permissions. Each agent links to them, so you never sign in again inside Pi.
Each agent pins a Pi version. Every version is downloaded once and shared, and mantle runtime list shows which agents use it.
Add skills and Pi packages to one agent without touching the others. Pin commits and versions so another machine rebuilds the same thing.
If you edited an agent and never pushed it, an update shows the difference and asks first. A backup is kept every time.
mantle doctor re-checks prerequisites, logins, agents and Cloud, and gives you a command to fix each problem it finds.
Mantle Cloud · optional
Mantle Cloud is a small registry for agent.yaml that you host yourself. Push from one machine and pull on another. Every changed push becomes a new revision you can inspect.
.env, sessions or resourcesmantle cloud diff shows what changes before you updateThe v0.1 registry has no authentication. Run it on a trusted network or behind a reverse proxy that requires sign-in.
Mantle Cloud on GitHubReview a project and explain concrete correctness risks.
On your laptop
mantle cloud push reviewerOn your workstation
mantle cloud pull reviewerFAQ
No. Mantle isolates configuration, not the operating system. It controls which skills, packages and settings an agent loads, but tool restrictions can't constrain extension code or malicious instructions. Only install packages you trust.
Pi is the agent runtime that Mantle runs. Mantle manages Pi versions, provider logins and each agent's resources around it, so you don't configure Pi by hand.
For the CLI: Linux or macOS (Windows through WSL), Node.js 22.20 or later, Git and uv. If Node.js or uv is missing, the installer offers to install it for your user only. The Mac app needs nothing else: Python and Node.js are built in.
Yes. Mantle for macOS runs on Apple Silicon Macs with macOS 14 or later. It uses the same agents and logins as the CLI, so you can switch between them. Some advanced Pi terminal features still open in Terminal.
No. Agents always run on your machine. Mantle Cloud stores configuration only, and it's optional.
Mantle is free software under the Apache-2.0 license. Your model provider bills you for model usage, as it would anywhere else.
Clone the release and run the installer. It checks prerequisites, offers to add Mantle to your PATH, and starts mantle setup.
git clone --branch v0.1.0 https://github.com/farismohammad/mantle.git
cd mantle && ./install.sh