
Valley
Valley is a lightweight, AI-aware desktop terminal for macOS built on Tauri 2 with a Rust core and a React 19 + TypeScript frontend powered by xterm.js. Shipped as a ~5.7 MB binary for Apple Silicon with Gruvbox by default, it pairs a daily-driver shell experience with first-class command navigation, an embedded code editor, a libgit2-backed diff pane, and a built-in AI assistant wired to the Vercel AI SDK with read, write, and shell tools gated behind approval prompts.
GitHub Repository: https://github.com/frdrckj/valley
Features
- Block-Status Rails: Every command run gets a green/red side bar in the gutter with hover-to-reveal exit code and duration; ⌘⇧↑/↓ jumps between prompts.
- Copy Last Output: ⌘⇧C copies the last command's output straight to the clipboard, ready to paste into a chat, issue, or PR.
- Live CWD Everywhere: Sidebar follows your
cd, the status bar shows the git branch, and the file explorer scopes to the active terminal's directory — works inside tmux via OSC passthrough. - Cmd+P Omnibar: Fuzzy switcher across open tabs, recent files, files in the active cwd, modified files in the repo, plus a 15-action command palette.
- Embedded Editor: CodeMirror 6 with Gruvbox / Tokyo Night / Nord themes mirroring the terminal palette; ⌘S writes through a Vite plugin that mutes HMR for self-saves, with a right-click handoff to nvim, VS Code, or any
$EDITOR. - Diff and Git Pane: libgit2-backed status badges in the explorer and side-by-side merge view per file via
@codemirror/merge. - Built-in AI: Chat panel (⌘I) backed by Anthropic and OpenAI via the Vercel AI SDK, with
read_file,list_directory,write_file, andrun_commandtools — reads auto-run, writes and shell are gated behind approval prompts; ⌘L attaches the active terminal's selection or last command's output to the composer. - Clickable File Paths:
tsc/cargo/pytesterrors print paths that open directly in Valley's editor. - Dev-Server URL Banner: When
npm run devprintshttp://localhost:3000, Valley offers a one-click "Open preview" tab. - Secure Key Storage: API keys for AI providers are stored in the macOS Keychain, never written to disk.
Stack
• Core
- Tauri 2 - Rust-powered desktop framework producing a ~5.7 MB binary for Apple Silicon.
- Rust - Backend language for the Tauri shell, PTY management, and native integrations.
- libgit2 - Vendored Git implementation powering status badges and the diff pane.
• Frontend
- React 19 - UI framework for the terminal shell, panes, and command palette.
- TypeScript - Static typing across the renderer and Vite plugins.
- xterm.js 6 - Terminal emulator rendering with block-rail and OSC passthrough extensions.
- CodeMirror 6 - Embedded editor with theme parity and a side-by-side merge view via
@codemirror/merge. - zustand - Lightweight state management for tabs, panes, and editor buffers.
- Vite 7 - Dev server and build tool with a custom plugin that mutes HMR for self-saves.
• AI
- Vercel AI SDK 6 - Streaming chat orchestration with tool-call routing.
- Anthropic / OpenAI - Pluggable model providers wired to read, write, and shell tools with approval gating.