I built Giverny – a native terminal for Cluade Code and Codex Developer y0av released Giverny, a native GPU-rendered terminal written in Rust on alacritty_terminal that runs Claude Code and Codex sessions side by side across multiple accounts on Linux, macOS and Windows. Giverny assigns a separate Claude account per category via CLAUDE_CONFIG_DIR, shows each account's usage limits and reset times, and tracks per-tab agent state through Claude Code hooks with a zero-config fallback to Claude's session registry and Codex observer hooks installed from Settings. The tool never contacts Anthropic or OpenAI directly and never reads credential files, drawing Claude usage from the .claude.json cache and Codex usage from the local codex app-server helper, with its only network request being a daily update check that sends nothing but a User-Agent. A native terminal for running Claude Code and Codex sessions side by side, across several accounts at once. Tabs sit in categories on a left rail and show what each agent is doing. Each category can run on its own Claude account, and the rail shows every account's limits with reset times. Written in Rust on alacritty terminal and rendered on the GPU, with no web engine. Runs on Linux, macOS and Windows. - Multiple accounts. Each CLAUDE CONFIG DIR and Codex home is an account, discovered automatically. Claude accounts can be assigned per category, so work and personal projects draw from different plans. The rail shows each account's limits with reset times. - Agent state per tab. A spinner while Claude or Codex works, a flag and desktop notification when it needs input, a ✓ when a background tab finishes. Claude uses Claude Code hooks, with a zero-config fallback to its session registry. Codex uses observer hooks installed from Settings → codex and trusted with /hooks setup https://github.com/y0av/giverny/blob/main/docs/codex-integration.md . - Background agents. Forked and run in background Claude sessions appear in the rail. Click one to attach a tab. - Persistent sessions. Tabs, categories, working directories and scrollback survive restarts. Claude and Codex conversations resume in the right directory and account. Monitors on the restore apps list btop, k9s, lazygit restart; other commands are never re-run. - Right-to-left text. Hebrew and Arabic render in reading order. Cascadia Mono Hebrew is bundled. - Rail views. Group tabs by your own categories or by git repository. - Terminal support. Kitty keyboard protocol Shift+Enter works in Claude without /terminal-setup , kitty graphics, synchronized output, OSC 7 and 52, sanitized bracketed paste, SGR mouse, file drag-and-drop. - Plain config. ~/.config/giverny/config.toml hot-reloads. The Ctrl+, settings screen writes back to it with comments preserved. See all options https://github.com/y0av/giverny/blob/main/docs/options.md . - giverny doctor prints Claude and Codex accounts, hook status, usage freshness and live sessions. Linux / macOS: curl -fsSL https://github.com/y0av/giverny/releases/latest/download/install.sh | sh Windows: irm https://github.com/y0av/giverny/releases/latest/download/install.ps1 | iex From source Rust 1.90+ : git clone https://github.com/y0av/giverny && cd giverny cargo install --path crates/app giverny install-desktop install-desktop adds the launcher entry and icons. On Linux it also sets OOMPolicy=continue on Giverny's systemd scope, so an out-of-memory kill in one tab doesn't close the rest. The install scripts run it for you. Giverny checks GitHub daily for a new release and offers a one-click update; giverny update does the same from a shell. Disable the check with update check = false or GIVERNY NO UPDATE=1 . Giverny runs on Linux Wayland and X11 , macOS and Windows. Giverny itself never contacts Anthropic or OpenAI and never reads credential files. Claude usage comes from the .claude.json cache Claude Code writes; session state comes from hooks and Claude's session registry. Codex usage comes from the official local codex app-server helper, which contacts OpenAI using Codex's own sign-in; it never runs if Codex is disabled in Settings. Giverny's only direct network request is the update check, which sends nothing but a User-Agent. Hook installation shows what it adds, keeps your existing hooks and writes a .giverny-bak backup. Pasted text is stripped of escape bytes, and the in-band control channel is nonce-authenticated so terminal output can't fake agent states. Details in Claude Code integration https://github.com/y0av/giverny/blob/main/docs/claude-integration.md and Codex integration https://github.com/y0av/giverny/blob/main/docs/codex-integration.md . | Chord | Action | |---|---| | Ctrl+Shift+T / Ctrl+Shift+W | New tab / close tab | | Ctrl+Shift+A | Next tab where an agent needs you | | Ctrl+Shift+P | Tab palette | | Ctrl+Shift+F | Search scrollback | | Ctrl+Shift+E | Label paths and URLs on screen for quick open | | Ctrl+Tab | Recently used tabs | | F2 | Rename tab | | Ctrl+, | Settings | | F1 | Full key list | Architecture https://github.com/y0av/giverny/blob/main/docs/architecture.md · Options https://github.com/y0av/giverny/blob/main/docs/options.md · Claude Code integration https://github.com/y0av/giverny/blob/main/docs/claude-integration.md · Codex integration https://github.com/y0av/giverny/blob/main/docs/codex-integration.md · Changelog https://github.com/y0av/giverny/blob/main/CHANGELOG.md MIT OR Apache-2.0, at your option. The bundled Cascadia Mono fonts in crates/term/fonts are © Microsoft, licensed under the SIL Open Font License 1.1 CascadiaMono-OFL.txt .