CrispyVibe is a free native macOS IDE for AI coding agents

Run Claude Code, Codex, Kiro CLI, Gemini CLI, OpenCode, and GitHub Copilot CLI in persistent VibeSpaces with terminal sessions, ACP chats, browser panes, git, Markdown, and HTML. Open source on GitHub.

Developers who use multiple AI coding agents (Codex, Claude Code, Kiro CLI, Gemini CLI) often end up managing separate applications, separate contexts, and separate conversation histories that do not persist across sessions. The IDEs available to unify this experience are VS Code forks built on Electron, several of which add token marketplaces, telemetry, and proprietary integrations that do not interoperate. CrispyVibe supports multiple AI agents from different vendors in a single persistent workspace without requiring an account or collecting usage data.

CrispyVibe is a macOS IDE written in Swift, SwiftUI, and AppKit. It shares no code with VS Code or Electron. It introduces VibeSpaces: persistent workspaces that hold projects, GPU-accelerated terminals, ACP agent conversations, browser panes, and git integration. Developers bring whatever agents they already use (Kiro CLI, Claude Code, Codex, Gemini CLI, OpenCode, GitHub Copilot CLI, or custom agents) and run them as dedicated workspace tiles with persistent conversation history. Terminal sessions are backed by tmux and survive application restarts. SSH remote projects use the same surfaces as local projects within the same workspace. Markdown and HTML, common output formats for AI agents, render in place with direct editing rather than separate source and preview panes. The same in-place document workspace extends to LaTeX (compiled offline with a local TeX engine), Jupyter notebooks, Typst, AsciiDoc, and Graphviz diagrams, and offline whiteboards. Agents can programmatically control the IDE through the built-in crispy CLI, opening files, managing terminals, driving browser panels, and inspecting workspace topology. CrispyVibe is free. It has no ads, in-app purchases, or paid tiers. Its automatic network activity is limited to update checks; other connections are user initiated. All workspace data is stored locally.

Credits: 100% of CrispyVibe's code is developed with AI. Kiro CLI is the daily driver for CrispyVibe development, covering spec-driven feature design, implementation, and testing. Thanks to AWS for supporting the vibe.

"Every other tool wanted me on their platform. I wanted them all on mine. One native app, all my agents, sessions that survive restarts, no tokens, no telemetry, no account. Just me and my vibe."

Manu Mishra, Creator of CrispyVibe · Read why I built it

Four steps to your first VibeSpace.

01

Create a VibeSpace

A VibeSpace is a persistent container for projects, terminals, browser tabs, agent conversations, git state, and layout preferences.

CrispyVibe home screen for creating a persistent VibeSpace
02

Add projects

Add local folders and SSH remote hosts to the same VibeSpace. Each project gets a distinct color, file explorer, git context, and terminal sessions.

CrispyVibe folder picker for adding local project folders to a VibeSpace
03

Choose an AI agent

Select a default agent or override it per project. Installed agents are detected from PATH. Both terminal-based and ACP-structured agents are supported.

CrispyVibe agent selection screen with Kiro CLI, Claude Code, Codex, Gemini CLI, and OpenCode
04

Work

The Terminal Board is a GPU-accelerated 4×4 grid for terminals, browser panes, ACP agent chats, file previews, and VibeCast. tmux preserves terminal sessions when you quit.

CrispyVibe terminal board with multiple AI agents, a browser pane, Markdown preview, and files

Work in the mode that fits the task.

Project-focused detailed view

Switch from the Terminal Board into a detailed workspace with focused terminals, rendered Markdown, file browsing, Shelf items, and project context side by side.

CrispyVibe detailed view showing focused terminals, Markdown editing, and project files

Configurable keyboard shortcuts

Configure app-wide navigation, VibeSpace commands, Terminal Board focus, project movement, and inline insert triggers from one settings surface.

CrispyVibe keyboard shortcut settings for app navigation, terminal board focus, and project commands

Text services from anywhere on macOS

Run reusable rephrase and research prompts on selected text through macOS Services.

CrispyVibe AI Services settings showing reusable rephrase and research prompts for macOS text services

Themes for different working modes

Choose a built-in theme preset, preview its palette, and adjust the typography.

CrispyVibe Appearance settings showing theme presets, palette preview, and typography controls

Available for macOS.

macOS 26+. Apple Silicon (M1 or later).

Details to check before downloading.

What AI agents does CrispyVibe support?

Built-in support for Kiro CLI, Claude Code, Codex, Gemini CLI, OpenCode, and GitHub Copilot CLI. Custom agents can be added by specifying a command and arguments. ACP-compatible agents run as structured chat surfaces with streaming responses and tool-call UI. Terminal-based agents run in standard terminal tiles.

Is it free? What's the business model?

CrispyVibe is free and has no paid tiers. A solo developer builds and funds it independently with help from the community. There are no investors requiring a return, no token marketplace, and no server-side services to upsell.

Does it collect telemetry?

No. CrispyVibe's only automatic network activity is Sparkle update checks, which can be disabled.

How is it different from VS Code forks?

VS Code forks inherit Electron's Chromium runtime (600MB to 1.2GB memory with typical workloads), then add AI features and token marketplaces. CrispyVibe is written from scratch in Swift with Metal GPU rendering (150 to 300MB typical). It supports multiple agents from different providers in one workspace without telemetry.

Does it work with tmux?

When enabled, every terminal session in CrispyVibe is backed by tmux. Quitting the app detaches sessions. Reopening reattaches them with full shell state and scrollback. A built-in tmux session browser shows active and orphaned sessions across workspaces and previews their contents.

What about SSH and remote development?

SSH remote projects use the same file explorer, editor, terminal, and git surfaces as local projects within the same VibeSpace. The connection supports ControlMaster transport, SFTP, port forwarding, host key validation, and SSH config import.

What happens to conversations when switching agents?

Conversations persist per-workspace. Switching the default agent does not affect existing conversations. Each thread is tied to the agent that created it and remains searchable and resumable.

What is the Workspace side panel?

A unified per-project side panel that shows a project's files, git changes, and agent conversations in one place, with each project and git worktree as a collapsible row and the Shelf at the top. It is the default sidebar and has its own rail button; the classic Files, Git, Sessions, and Conversations tabs remain available.

Can I track quick todos and sticky notes?

Quick Todos & Sticky Notes capture tasks with a hotkey or a dedicated surface, scoped to a project or the VibeSpace, with rich-text notes and per-todo threads. They persist across launches and are scriptable from the crispy CLI.

Can I write and compile LaTeX?

LaTeX files open with three tabs: a live WYSIWYG view with KaTeX-typeset math, the raw source, and a compiled PDF rendered by your own local TeX engine (BasicTeX or MacTeX). The PDF tab supports double-click on-page editing via SyncTeX and inline comments. Compilation runs locally and offline, with multi-pass cross-reference and BibTeX resolution. Typst, AsciiDoc, and Graphviz files also get a live local preview next to their source.

Does it support Jupyter notebooks?

CrispyVibe opens .ipynb notebooks with editable cells and inline comments, running against a local Jupyter or against a remote host over SSH using a forwarded loopback port. It needs Jupyter and Python on whichever machine runs the kernel.

Does CrispyVibe have whiteboards?

Offline Excalidraw whiteboards are built in. New whiteboards start in the Shelf as drafts and can be dragged into a project. Whiteboards render and persist locally.

Why native macOS only?

CrispyVibe uses SwiftUI for its interface, Metal for terminal rendering, and WebKit for browser panes. Typical memory use is 150 to 300MB.

How does Ghostty integration work?

CrispyVibe embeds GhosttyKit, the library behind the Ghostty terminal emulator, for Metal-accelerated terminal rendering. Terminal content is rendered on the GPU to reduce input latency and CPU use at high throughput. SwiftTerm is included as a fallback. Developers can switch between engines in Settings.

How does workspace persistence work?

A VibeSpace persists: project list, board layout, editor sessions, agent conversations, browser state, git context, theme, and pane sizes. All data is stored locally and signed with HMAC-SHA256 for integrity verification.

What is VibeCast?

A compose surface for sending text to one terminal or broadcasting to all active sessions simultaneously. Supports rephrase via a configured CLI tool before sending.

What is Shelf?

A persistent pinned-files section at the top of the Files sidebar. Files added to Shelf stay across launches, receive files opened from Finder or external sources, and sync with the active content viewer.

How does CrispyVibe handle Markdown and HTML?

CrispyVibe renders Markdown and HTML in place and supports direct editing of the rendered view. Developers read and edit documents as they appear, formatted with images and links, without switching to source mode.

What is Terminal Insight?

An on-device overlay at the top of each terminal summarizes the developer's current activity using Apple's Foundation Models framework. Requires macOS 26+. Falls back to displaying the last command when unavailable.

What are AI Services?

A settings panel for configuring CLI agent defaults and reusable prompt templates. Developers set a CLI profile, trust mode, command arguments, and default agent. Prompt templates power VibeCast's rephrase feature and macOS Services menu integration.

Is CrispyVibe open source?

The application code is open source. The project also publishes the engineering process: every feature ships with a spec, technical design, threat model, and usage guide (200+ documents). Contributors propose features by writing specs and extending threat models before implementation begins.

How does the open development process work?

Each feature is developed against four documents: a spec, a technical design, a threat model, and a usage guide. The repository also publishes ADRs, NFRs, and learnings from audits. Contributors can trace every decision from proposal through implementation.

Download CrispyVibe.

Create a VibeSpace, add your projects, and choose your agents. CrispyVibe is free and native to macOS; an account is not required.