An IDE for your Claude Code and Codex agents. Temple organizes your sessions by project and keeps them all a click away, so you stop hunting through terminal tabs to find the work you were doing.
- Switch between sessions across projects without losing your place.
- Search every session you have run.
- Navigate with the keyboard.
- Work in a full terminal, not a transcript.
- Pick up where you left off. Temple reopens the sessions you had open.
- See which agents are working and which are waiting on you.
- Run sessions on another machine you reach with ssh, in tabs like local ones.
Nothing goes to a server of Temple's. Sessions run on your Mac, or on a host you add, over your own ssh. Temple never edits your files, runs git, or changes your session history.
brew install --cask ramsrib/tap/templeOr grab the latest Temple-vX.Y.Z-arm64.dmg from
Releases and drag Temple to
Applications.
To update:
brew upgrade --cask templeRequirements: macOS 14+ on Apple Silicon, with Claude Code and/or Codex installed. Temple auto-detects both (paths configurable in Settings).
Temple ships a temple command for your open sessions and History:
temple sessions ls # what has a tab, and what each is doing
temple sessions new ~/repo --cli codex
temple history search keychain # every session on disk, open or not
temple sessions open <id> # resume it in a tab, or focus its tabThe cask puts it on your PATH. From the DMG, link it yourself:
ln -s /Applications/Temple.app/Contents/Helpers/temple /usr/local/bin/temple.
temple --help lists the rest.
./Scripts/build-ghostty.sh # one-time: builds the embedded terminal engine
make install # signed Temple.app → /ApplicationsNeeds Xcode 26+ and brew install xcodegen. Zig is self-provisioned at the
pinned version. Terminal-engine details in
docs/BUILDING-GHOSTTY.md; cutting a signed,
notarized release is in RELEASE.md.
- Features & roadmap: docs/FEATURES.md
- Architecture decisions: docs/DECISIONS.md
- Session storage formats: docs/SESSION-FORMATS.md
- Cutting a release: RELEASE.md
Debug logging, if you ever need it:
log stream --predicate 'subsystem BEGINSWITH "com.sriramb.temple"' --level debug
