The shell, past the pipe
Structure all the way down.
A shell where values stay typed, tools resolve reproducibly, capabilities are explicit, and agents never have to scrape a wall of terminal text.
~ main › ["ada", "grace", "linus"]
.where(.len() > 3).map(.upper())
["GRACE", "LINUS"]
~ main › 1.5gb + 500mb
2gb size
~ main › git status
site/templates/base.htmlnewsite/content/docs/~ main ›
Past the text stream
The terminal deserves a richer physics.
Unix made programs composable by agreeing on bytes. Shoal keeps the composition, then gives data its shape back.
PATHScoped, locked tool resolution with reefWhat Shoal connects
One structured environment.
Typed values and dot composition
Filter, map, match, and transform values without flattening them into text.
Real shell execution
Run external commands with real PTYs, foreground jobs, suspension, and history.
Outcomes and adapters
Keep status, output, diagnostics, and command-specific structure together.
Reproducible Reef scopes
Resolve tools through explicit scopes and record the exact locked executable.
Effects and security boundaries
Inspect plans, approvals, journal entries, undo data, and semantic authority.
Shared kernel and MCP sessions
Give humans and agents the same typed refs, session state, tasks, and events.
Manual
Use Shoal
Quickstart, language, shell, tools, agents, and protocol workflows.
Start the manual →Architecture
Understand Shoal
System map, crate ownership, execution paths, protocols, and security.
Explore the atlas →