Skip to content

gi11es/deckard

Repository files navigation

Deckard

A terminal built for Claude Code. Deckard is a native macOS app that treats Claude Code sessions as first-class objects. Each tab knows whether Claude is thinking, waiting for input, or needs tool approval, and tracks context window usage so you know when a session is running low.

Run multiple sessions side by side in a single window with tabs, projects, and session persistence. Built with Swift and AppKit. Terminal rendering powered by SwiftTerm.

Download for macOS

Version Platform

Deckard screenshot

Features

  • Multi-tab sessions: Open multiple Claude Code (and plain terminal) tabs per project. Switch between them with Cmd+1–9 or drag to reorder.
  • Project sidebar: Each open directory gets its own set of tabs, persisted across restarts. Group related projects into collapsible sidebar folders for organization (e.g., by client).
  • Context & quota tracking: A progress bar shows context window usage. A sparkline visualizes token rate over time, and rate limit indicators show 5-hour and 7-day quota consumption.
  • Session state detection: Tab badges show whether Claude is thinking, waiting for input, needs tool permission, or has errored. Terminal tabs show real-time CPU and disk activity for the foreground process.
  • Session persistence: Claude sessions resume via --resume. Tab structure and working directories are preserved across restarts.
  • 486 color themes: Ships with 486 built-in themes (Ghostty format) and loads custom themes from ~/.config/ghostty/themes. Search and preview in Settings.
  • Customizable shortcuts: All keyboard shortcuts are rebindable in Settings > Shortcuts.
  • tmux integration: When tmux is installed, terminal tabs are transparently wrapped in tmux sessions. Quit and relaunch Deckard to resume exactly where you left off — full shell state, scrollback, running processes, and environment preserved. tmux options are editable in Settings > Terminal. Works as a progressive enhancement; no tmux required.
  • Drag and drop: Drag files from Finder into the terminal — paths are automatically shell-escaped and inserted.
  • Auto-updates: Built-in update checking via Sparkle. New releases are delivered automatically.
  • Terminal rendering: Powered by SwiftTerm, a self-contained terminal emulator with VT100/xterm emulation, IME support, and mouse reporting.

Install

Homebrew:

brew install gi11es/tap/deckard

Manual download: grab the latest DMG from Releases.

Requirements

  • macOS 14.0 (Sonoma) or later
  • Claude Code CLI installed
  • Xcode 16+ (to build from source)

Building

Clone and build. SwiftTerm is fetched automatically via Swift Package Manager:

git clone https://github.com/gi11es/deckard.git
cd deckard
xcodebuild -project Deckard.xcodeproj -scheme Deckard -configuration Debug build

The built app will be in your Xcode DerivedData directory.

How It Works

On launch, Deckard automatically installs two integrations into Claude Code (no manual setup needed):

  1. Lifecycle hooks — a shell script and entries in ~/.claude/settings.json that notify Deckard when Claude starts thinking, finishes a response, needs tool approval, or encounters an error. Communication happens over a Unix domain socket.
  2. /deckard skill — a Claude Code slash command (~/.claude/commands/deckard.md) for filing bug reports and feature requests directly from a session.

These are installed idempotently on every launch and don't modify Claude Code itself.

License

MIT