<div align="center" <img src="assets/logo.png" alt="Quirl logo" width="128" height="128"
Quirl
A well-stirred shell.
Bash muscle memory, typed data pipelines, and one Lua SDK — folded into a single fast Rust binary.
</div
---
<div align="center" <a href="https://quirl.vercel.app/" <img src="assets/quirl-demo.gif?raw=1" width="1200" alt="Quirl v0.3.0 demo: native shell commands, typed data pipelines, local command search, explicit Bash compatibility, and sandboxed Lua" </a <br <a href="https://quirl.vercel.app/quirl-demo.mp4"Watch the MP4</a · <a href="https://quirl.vercel.app/blog/a-shell-with-a-richer-vocabulary"Read the feature tour</a <p Recorded with the published macOS ARM release package for v0.3.0 from commit <codedfb43e5</code. See the <a href="https://quirl.vercel.app/quirl-demo-provenance.json"recording provenance</a, <a href="https://quirl.vercel.app/docs/getting-started/first-session"first-session guide</a, and <a href="https://quirl.vercel.app/docs/research/benchmarks/release-v0.3.0"release measurements</a. Search results are candidates to review. </p </div
[!IMPORTANT] Quirl's 0.3 Unix line supports interactive Linux and macOS. Treat a build as the official 0.3.0 release only when it comes from the immutable v0.3.0 GitHub Release; other source checkouts are candidate or development builds. Windows is best-effort, contract-tested portability work.
Full documentation—guides, reference material, architecture records, research, and release evidence—lives on the Quirl website, generated from this repository's canonical Markdown sources.
- Documentation home
- Product and language design
- 0.1 release checklist
Why Quirl
In German, a Quirl is the humble wooden whisk: a simple tool that takes ingredients which do not naturally mix and folds them into something smooth. Quirl does that for the command line.
- Familiar normal mode keeps the quoting, redirects, byte pipes, boolean
lists, and jobs you already use, with explicit Bash and Zsh islands for syntax outside Quirl's frozen native core.
- Typed data pipelines add an explicit data mode for records, tables,
filtering, selection, sorting, and structured output—without pretending byte streams and values are the same thing.
- One Lua SDK powers configuration, scripts, prompt segments, completion
providers, and trusted plugins inside a restricted, resource-budgeted Lua 5.5.1 runtime.