Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/standardapplied/sail/claude-mdgit clone --depth 1 https://github.com/standardapplied/sailWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.02067 | $0.02067 |
| Opus 5 | $0.01033 | $0.01033 |
| Sonnet 5 | $0.00413 | $0.00413 |
| Haiku 4.5 | $0.00207 | $0.00207 |
Grade A, and why
sail CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 100 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
Why sail Exists
Engineers working on multiple projects simultaneously need fully isolated dev environments: separate JDKs, databases, search engines, message brokers, and AI coding agents — with hard isolation so a runaway agent in one project can't affect another.
sail provisions a bare-metal server with Incus system containers, one per project. Each container gets a complete Ubuntu 24.04 userspace with its own filesystem, network stack, and rootless Podman runtime. The CLI manages container lifecycle, runs AI agents inside them with guardrails and rollback safety, and orchestrates spec-driven autonomous workflows.
One binary, zero dependencies, fully declarative. Download it, run sail host init, and you're operational.
Tech Stack
- Java 25 with virtual threads where applicable
- picocli for CLI framework (GraalVM native-image ready)
- SnakeYAML Engine 3.1.1 for YAML + JSON parsing (YAML 1.2 is a JSON superset). Zero transitive dependencies.
- GraalVM native-image for AOT compilation to a static Linux binary (<1ms startup)
- No Spring. No Lombok. No annotation magic beyond picocli's
@Command/@Option/@Parameters. - Minimal dependencies — two libraries total (picocli, SnakeYAML Engine). No reflection metadata needed.
- File generation (agent context files, ssh-config) uses plain Java string building — no templating library.
Infrastructure Inside Containers
- Podman (rootless, daemonless) runs infrastructure services. No Docker, no Docker Compose.
- Each service in
sail.yamlbecomes apodman run -d --restart=alwayscommand.loginctl enable-lingerkeeps services alive across reboots. No systemd unit generation needed. - Testcontainers works via Podman socket (
DOCKER_HOST,TESTCONTAINERS_RYUK_DISABLED=true). - Developer processes (
java -jar,npm run dev) are interactive — run in editor terminal tabs, not managed bysail.
Conventions
- Records for all data models / DTOs
- Sealed interfaces for domain types and algebraic data modeling
- Virtual threads for all I/O, never platform threads
ProcessBuilderfor shell execution — no runtime exec shortcuts- Every command must be idempotent — run it twice, same result
--dry-runsupport on every command that modifies state (prints underlying shell commands instead of executing)--jsonflag on every command for machine-parseable output- Human-readable ANSI-colored output by default, degrade gracefully when not a TTY
- No magic. Every
sailcommand maps to a small number ofincus/podman/systemdcalls that the user could run themselves - Error messages must explain what happened AND what to do about it
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 100 lines · 2,067 tokens per session scan A 53ea3c5e907c
sail CLAUDE.md is an instructions file published in the GitHub repository standardapplied/sail (11 stars, last pushed 3d ago), licensed MIT. It adds 2,067 tokens to every session, about $0.0103 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
CodeWhale AGENTS.md
AGENTS.md instructions for Hmbown/CodeWhale, covering codewhale agent guidance, the ponytail method, working rules, landing other people's work and merging under a gate.
CodeWhale CLAUDE.md
Claude Code instructions for Hmbown/CodeWhale, a project described as: Open-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.
alook AGENTS.md
Instructions for alookai/alook, covering alook, navigation, must, release — unified version bump and e2e ui (browser tests).
alook CLAUDE.md
Instructions for alookai/alook, a project described as: Rooms for people and agents.
Albatross AGENTS.md
Instructions for morganlinton/Albatross, covering agent instructions, general and releases.
sofagent GEMINI.md
Instructions for KongFangXun/sofagent, covering gemini.md · sofagent gemini cli 适配(薄挂载), 会话开始时按序加载(四层加载链), 审计强制(平台无关) and 连接 mcp server.