Терминал-воркспейс для AI-агентов · macOS

Гоняй десяток AI-агентов параллельно. Не теряй ни одного.

spacesh держит живые сессии Claude Code, Codex, Gemini и shell в фоновом демоне. Закрыл окно, обновил приложение, словил краш — агенты продолжают работать.

macOS 13+ · Apple Silicon и Intel · открытый исходник · early access

spacesh — workspace
claude-code
codex
Refactored auth module
3 files changed
gemini
Waiting for API...
rate limit cooldown
shell
~/projects/app $
daemon · alive
Работает с: Claude Code Codex Gemini opencode shell

Проблема

Обычный терминал привязывает агента к окну.

Закрыл вкладку, перезапустил приложение, упал GUI — длинная сессия агента умирает вместе с ним.

Решение

spacesh разрывает эту связь.

Сессиями владеет фоновый демон, а не окно. Интерфейс — всего лишь вид поверх него.

Возможности

daemon

Демон — источник истины

spaceshd владеет живыми PTY-сессиями. GUI и CLI — тонкие клиенты поверх одного Unix-сокета. Убей интерфейс — агент жив. Открой заново — экран восстановится из снапшота за доли секунды.

grid

Параллельные агенты в одной сетке

Несколько агентов в раскладке-гриде: сплиты, зум панели, перетаскивание, пресеты (2×2, 1+2, 2×3…), воркспейсы и избранное.

status

Статусы без догадок

work · wait · done · error · idle приходят пушем — от хуков агентов, маркеров OSC 133 и паттернов. Кольца, бейджи, центр событий и нативные уведомления macOS.

search

Гибридный терминал

xterm.js рисует, грид alacritty в демоне анализирует. Отсюда — поиск по скроллбэку (⌘F) с подсветкой, извлечение последней команды и мгновенные снапшоты для reattach.

cli

CLI как первый класс

spacesh status --json, focus, new-surface, notify — те же команды, что и в интерфейсе, плюс shell-completions. Встраивай spacesh в свои пайплайны.

theme

Под себя

Тёмная и светлая темы, акцентные цвета, шрифт и размер терминала, дефолтный shell — всё хранится демоном в config.toml и применяется на лету ко всем окнам.

Как это работает

01

Запуск

Создаёшь воркспейс и панели — демон спавнит PTY-сессии под агентов.

spawn → spaceshd → PTY
02

Демон владеет

Байты летают GUI ↔ демон ↔ PTY по одному сокету. Интерфейс состояния не хранит — только команды и события.

GUI ⇄ Unix socket ⇄ PTY
03

Reattach

Закрыл и открыл приложение — демон отдаёт снапшот экрана, окно перерисовывается мгновенно.

snapshot → restore → live

В планах

Над чем работаем

Внешние уведомления в Telegram и MAX diff-просмотр изменений агента Удалённая работа через SSH-туннель к демону
Rust Tauri 2 tokio xterm.js alacritty < 16 мс на нажатие клавиши

Готов гонять агентов пачками?

Исходники на GitHub →