A little more possible.
A native, open-source macOS terminal for your shell, your AI agents, and your next big idea.
Website · Downloads · User guide · Contributing
Spark brings your shell, Codex, Claude Code, and Git workflow into one native Mac app. Organize projects into persistent workspaces, run agents alongside your tools, and review changes without leaving the terminal.
Built with SwiftUI and AppKit, powered by SwiftTerm, with updates through Sparkle.
- A native terminal. Real PTY sessions, your existing shell configuration, GPU rendering, true color, search, and adjustable typography.
- Workspaces that stay with you. Save tabs, directories, split layouts, and window geometry. Switch projects while other workspaces keep running in the background.
- Split panes. Keyboard shortcuts, ready-made layouts, and resizable panes for shells, servers, tests, and agents side by side.
- Agent awareness. Codex and Claude Code status colors, animated activity, context and usage metrics, and macOS notifications when attention is needed.
- Conversation continuity. An activity panel for running agents and recent conversations, with one-click resume through the original CLI.
- Git worktrees per terminal. Create an isolated branch and working folder from the focused project, then merge back with clean-tree checks and conflict previews.
- Native code review. A file tree, language icons, syntax highlighting, line numbers, and live diffs driven by filesystem events. Discard uncommitted changes with a recovery copy.
- Keyboard-first navigation. A searchable command palette, pane switching, tab navigation, and focus mode.
Spark requires macOS 14 Sonoma or later. Release builds support Apple Silicon and Intel.
Download Spark-1.1.0.dmg from GitHub Releases, open it, and drag Spark into Applications. Both the app and disk image are signed with Developer ID and notarized by Apple. Future updates arrive through Sparkle.
The release also includes a ZIP for the updater and SHA-256 checksums for both downloads.
Codex and Claude Code are optional and installed separately. Spark works as a regular terminal without an AI account. Provider subscriptions and API charges are separate from Spark.
- Open a terminal and use your existing shell and tools.
- Press ⌘D to split a pane, or choose a layout from the toolbar.
- Use the footer switcher to create or change workspaces.
- Run
codexorclaudein a new zsh pane to connect agent status and usage. - In a Git repository, use the pane's branch and review buttons to work with worktrees and changes.
| Action | Shortcut |
|---|---|
| Command palette | ⌘K |
| New tab / window | ⌘T / ⌘N |
| Split right / below | ⌘D / ⇧⌘D |
| Next pane | ⌃Tab |
| Previous / next tab | ⇧⌘[ / ⇧⌘] |
| Close focused pane | ⌘W |
| Activity and recent conversations | ⇧⌘A |
| New worktree | ⇧⌘N |
| Review changes | ⇧⌘G |
| Find | ⌘F |
| Settings | ⌘, |
See the user guide for the full shortcut list, integration details, and supported workflows.
Use Xcode 26.2 or newer with Swift 6.2 or newer. CI uses Xcode 26.6. Swift packages are pinned in Package.resolved.
git clone https://github.com/lucasaarch/Spark.git
cd Spark
open Spark.xcodeprojSelect the Spark scheme, choose your development team, and run. To build and test without a signing identity:
./scripts/lint.sh
./scripts/check.sh
open .build/DerivedData/Build/Products/Debug/Spark.appThe lint script uses SwiftLint 0.65.1, downloading a checksum-verified binary if that version is not installed. Tests exercise real PTYs, workspace lifecycle, agent integrations, Git operations, and native review components. CI also builds a universal Release app. See Contributing for formatting and UI testing.
Spark stores workspace layouts, directories, and references to CLI conversations locally. Restoring a workspace starts fresh shells; it does not restart commands or agents, and workspace files do not retain scrollback or conversation contents.
Agent metrics come from the running CLI's terminal reports or local status-line integration. Spark does not read API keys, scan conversation transcripts, or call provider billing APIs for these metrics. Availability depends on the CLI version and reported fields. Missing usage data is shown as unavailable.
Spark is distributed outside the App Store and is not sandboxed, so your shell and tools can access the files they need. Notification delivery is managed in System Settings → Notifications → Spark.
Bug reports, focused improvements, and documentation contributions are welcome. Start with CONTRIBUTING.md, and use GitHub Issues for reproducible bugs and feature proposals. For security concerns, see SECURITY.md.
Maintainers can find signing, notarization, and update instructions in the release guide.
Spark is available under the MIT license.
Thanks to SwiftTerm, Sparkle, HighlighterSwift, Simple Icons, and ThinkingOrbsKit for the components and artwork that help make Spark possible. Third-party licenses are included in ThirdPartyNotices.txt and bundled with the app. Product and language marks belong to their respective owners.

