Skip to content

PascalAI2024/ZiggyZag

Repository files navigation

ZiggyZag

A readable Zig shell, a native Windows terminal host, and a local AI sidecar — sharing themes, events, and approval semantics.

Platform status — read this first. The native graphical desktop runs on Windows and macOS. Windows (verified 2026-05-17): Win32/ConPTY host with split panes, search, AgentD panel. macOS (verified 2026-06-09): native Cocoa window via ZIGGYZAG_NATIVE_WINDOW=1 — CoreText grid renderer, dynamic resize, mouse-wheel scrollback, Cmd+V paste, application-cursor, Ctrl+Space AgentD overlay. Linux: shell + launcher only for now.

CI Latest release Zig License CodeCrafters Shell

ZiggyZag terminal showing prompt themes and a 20-theme palette gallery


Install in 60 seconds

git clone https://github.com/PascalAI2024/ZiggyZag
cd ZiggyZag
zig build
./zig-out/bin/ziggyzag

Need Zig 0.16.0. Prebuilt zips for Windows, Linux, and macOS live on the releases page — install scripts are at scripts/install.sh and scripts/install.ps1.

A live landing page is at docs/index.html (open it locally or once GitHub Pages is enabled).

What is in the box

ZiggyZag is one workspace and four binaries that act like a single product:

  • apps/shell — the shell itself. REPL, parser, completion, history, jobs, prompt themes. About 5,600 lines of Zig you can step through.
  • apps/desktop — the native terminal host. Windows-native Win32/ConPTY with split panes, search, palette, mouse-wheel scrollback, themes, AgentD panel.
  • apps/agentd — a slim JSON-lines AI sidecar. Approval-aware for any mutation. Sandboxed file reads with realpath containment. Ollama and OpenAI-compatible providers.
  • apps/launcher — the cross-platform entry point used by release zips.

The shell is the source of truth. The desktop is a host. The agent asks before it acts.

The headline feature: one theme, two surfaces

Pick a theme in the desktop with Ctrl+Shift+T. The terminal palette AND the shell prompt accent move together. Same trick in any external terminal — export ZIGGYZAG_THEME=tokyo-night and the prompt follows.

All 20 built-in themes shown side-by-side, 17 dark and 3 light

20 themes ship today: ziggy, catppuccin-mocha, catppuccin-frappe, catppuccin-macchiato, catppuccin-latte, tokyo-night, tokyo-night-storm, dracula, nord, rose-pine, gruvbox-dark, everforest-dark, kanagawa-wave, solarized-dark, solarized-light, one-dark, ayu-dark, paper, github-light, ember. Spec is in docs/reference/theme-protocol.md. Accessibility audit (WCAG AA contrast across every theme) lives at docs/reference/accessibility.md. Try theme list once running.

The shape of it

Zig lines 18,850
Unit tests 213 (some skip on non-target platforms)
Binaries 4
Cross-built targets 5 (windows-x86_64, linux-x86_64, linux-aarch64, macos-x86_64, macos-aarch64)
Third-party deps 0
@panic calls 0
First commit to alpha 3 days

Status — honestly

  • Windows desktop: alpha. Native Win32 + ConPTY host. Split panes, palette (Ctrl+Shift+P), search (Ctrl+Shift+F), quick-select (Ctrl+Shift+O), AgentD panel (Ctrl+Shift+A), live theme cycle (Ctrl+Shift+T), settings overlay (Ctrl+,). I/O bridge bugs fixed 2026-05-17 — host is empirically drivable.
  • macOS desktop: alpha. Native Cocoa window (NSWindow + NSView + CoreText/CoreGraphics). Activate with ZIGGYZAG_NATIVE_WINDOW=1 ./zig-out/bin/ziggyzag-desktop. Features: CoreText grid renderer, dynamic resize, mouse-wheel scrollback, Cmd+V paste, application-cursor arrows, Ctrl+Space AgentD overlay with [H]health / [T]tools / [Esc]close.
  • Linux desktop: launcher only. POSIX PTY relay; native window in the next wave.
  • Shell: alpha-ready. 40+ builtins, native simple pipelines (/bin/sh fallback for complex), prompt themes (classic, smart, compact, dev, dashboard), abbreviations, autosuggestions, fuzzy Ctrl-R, history with metadata, project-aware tasks.
  • AgentD: alpha. Local-only by default. Tool list with approval policies, sandboxed reads, redacted output. Falls back gracefully when no provider is configured.

The full alpha-readiness picture is in docs/vision/alpha-tasks.md. The strategic direction is in docs/vision/masterplan.md.

Docs

Want to Read
Build, run, theme, friend-test Quick Start
Understand the project's north star Masterplan
See what's missing and why Alpha Tasks
Read what we lifted from other tools References
Read the unified theme spec Theme Protocol
Read the release plan Waves
Style something with our tokens Brand
Look at the system shape Architecture
Contribute Contributing · Tour
Report a security issue SECURITY.md
See what changed CHANGELOG.md
Read an external review docs/reviews/2026-05-17-baseline.md

App-specific docs: shell · desktop · agentd.

Architecture (one diagram)

flowchart LR
    user["You"] --> term["ziggyzag-desktop\n(Win32+ConPTY · Cocoa/CoreText)"]
    term -- "PTY bytes" --> shell["ziggyzag\n(parser + builtins + jobs)"]
    shell -- "OSC 7777 events" --> term
    term -- "stdio JSON-lines" --> agent["ziggyzag-agentd\n(tools + sandbox)"]
    term -. "ZIGGYZAG_THEME" .-> shell
    agent --> tools[("local tools:\nfile.read · rg.search\ngit.diff · project.info")]
    agent --> approval{{"host approval"}}
    approval --> term
Loading

Three processes, one product. The shell does parsing/execution. The desktop owns the window/grid/palette. The agent suggests and asks. Nothing in the diagram is mocked or aspirational — every arrow runs today on both Windows and macOS.

Roadmap (waves, not dates)

flowchart LR
    w1["W1: Dogfood"] --> w2["W2: Unified theme + brand"]
    w2 --> w3["W3: Native macOS/Linux\nAgentD universal input"]
    w3 --> w4["W4: SQLite history\nStreaming pipelines"]
    w4 --> w5["W5: Tabs + session restore\nKeybindings"]
    w5 --> w6["W6: 1.0\nSigned releases\n5 friend testers @ 2wk"]
    style w3 stroke:#9be28f,stroke-width:2px
Loading

Wave 2 is complete (tagged v0.1.0-alpha.3). Wave 3 is the current target. Full gates in docs/vision/waves.md.

Credits

Built by PascalAI2024 while finishing the CodeCrafters Shell challenge, then extended into a learning-first open-source project.

References lifted from with respect: Warp, Ghostty, WezTerm, fish, Starship, and Atuin. The full study is at docs/vision/references.md.

License

MIT. See LICENSE.

About

Alpha Zig shell workspace with a readable shell core, Windows-native terminal host, POSIX launcher, and slim AgentD sidecar.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors