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.

typed valuesreal PTYsstructured protocol
shoal · interactive live

~ main ["ada", "grace", "linus"]

.where(.len() > 3).map(.upper())

["GRACE", "LINUS"]

~ main 1.5gb + 500mb

2gb size

~ main git status

statepathmodifiedsite/templates/base.htmlnewsite/content/docs/

~ main

ordinary commandsstructured results
Why Shoal

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.

The old currentThe Shoal current
01Structure guessed at every boundaryTyped values cross the boundary intact
02A flat, mutable PATHScoped, locked tool resolution with reef
03Permissions inherited from ambient stateSemantic capabilities made explicit
04Agents scrape the same terminal wallRefs, shapes, and events over a protocol

What 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
Ready to try Shoal?The Quickstart gets you to a working prompt.
Type to search every guide navigate open esc close
Diagram