์š”์•ฝ

๐Ÿ”— ์›๋ณธ: GitHub: relaydeck/relaydeck

relaydeck๋Š” CLI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ๋กœ์ปฌ ์šฐ์„  fleet OS. ํ•˜๋‚˜์˜ ๋ฐ๋ชฌ์œผ๋กœ ์—ฌ๋Ÿฌ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Claude Code, Codex, Cursor, pi ๋“ฑ)๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๊ณ , ์›น ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ง/๋ฉ”์‹œ์ง•/์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 30+ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ, ๋กœ์ปฌ SQLite ์ €์žฅ์†Œ, ์˜จํฐ ๋ณผํŠธ ์•”ํ˜ธ ๊ด€๋ฆฌ. ํด๋ผ์šฐ๋“œ ๊ณ„์ •/ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ๋ถˆํ•„์š”. Python 3.12+, MIT ๋ผ์ด์„ ์Šค.


์ƒ์„ธ ๋ถ„์„

์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”

CLI / scripts โ†’ relaydeck daemon (orchestrator + plugins + event bus) โ†’ Web dashboard (localhost:8765)
                    โ”œโ”€โ”€ Harness PTYs (claude, codex, cursor, pi...)
                    โ”œโ”€โ”€ SQLite state (agents, msgs, usage, events)
                    โ””โ”€โ”€ Plugin system (30+ plugins)

ํ•ต์‹ฌ ์„ค๊ณ„ ์›์น™:

  • Everything is a plugin โ€” harness, vault, metering, messaging, skills ๋ชจ๋‘ ํ”Œ๋Ÿฌ๊ทธ์ธ. ์ฝ”์–ด๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ •์  ์ž„ํฌํŠธํ•˜์ง€ ์•Š์Œ.
  • One primitive: the agent โ€” ๋ชจ๋“  ์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์€ BaseAgent ์„œ๋ธŒํด๋ž˜์Šค
  • YAML is the spec, SQLite mirrors it โ€” ์—์ด์ „ํŠธ ์ •์˜๋Š” ~/.relaydeck/agents/<id>.yaml์ด ์ง„์‹ค ๊ณต๊ธ‰์›
  • Web dashboard is THE primary interface โ€” CLI์™€ ๋™๋“ฑํ•œ ๊ธฐ๋Šฅ, ๋‘˜ ๋‹ค ๋™์ผํ•œ HTTP API ์‚ฌ์šฉ
  • CLI โ†” daemon over HTTP โ€” ๋กœ์ปฌ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ์ง์ ‘ ํ˜ธ์ถœ ๊ธˆ์ง€, ํ•ญ์ƒ ๋ฐ๋ชฌ์„ ํ†ตํ•ด

์ง€์› Harness (7์ข…)

Harness CLI Agent Type ํŠน์ง•
Claude Code claude claude-code ๊ถŒํ•œ ๋ชจ๋“œ, ํ›… ํ†ตํ•ฉ
Codex codex codex-cli ์ƒŒ๋“œ๋ฐ•์Šค + ์Šน์ธ ๋ณ€ํ™˜
Cursor cursor-agent cursor-cli ๊ตฌ๋… ์ธ์ฆ, ์—์ด์ „ํŠธ๋ณ„ ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ
OpenCode opencode opencode-cli ์„ค์ • ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ช…๋ น์–ด ์ฃผ์ž…
Antigravity agy antigravity Google ๊ณ„์ • ์ธ์ฆ
pi pi pi ๋ ˆํผ๋Ÿฐ์Šค harness
relaydeck native pi relaydeck fleet operator (pi + ํ™•์žฅ ๋„๊ตฌ)

์ฃผ์š” ํ”Œ๋Ÿฌ๊ทธ์ธ (30+)

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋Šฅ
vault ์‹œํฌ๋ฆฟ ๋ณผํŠธ (ํ‚ค ์ด๋ฆ„๋งŒ ๋…ธ์ถœ)
github GitHub ์ด์Šˆ/PR ํด๋ง โ†’ ์—์ด์ „ํŠธ ๋ผ์šฐํŒ…
telegram ํ…”๋ ˆ๊ทธ๋žจ ์ฑ„ํŒ…์œผ๋กœ ์—์ด์ „ํŠธ ์›๊ฒฉ ์ œ์–ด
messaging durable ์—์ด์ „ํŠธ ๊ฐ„ ์ธ๋ฐ•์Šค
prompts ์—์ด์ „ํŠธ๊ฐ€ ์„ ํƒ์ง€ ์งˆ๋ฌธ
hitl Human-in-the-loop ์—์Šค์ปฌ๋ ˆ์ด์…˜
metering / usage_limits ํ† ํฐ/๋น„์šฉ ํƒ€์ผ, ์„ธ์…˜/์ฃผ๊ฐ„ ํ• ๋‹น๋Ÿ‰
skills / theme / dashboard ์—์ด์ „ํŠธ ์ž‘์„ฑ ์Šคํ‚ฌ, ํ…Œ๋งˆ, ๋Œ€์‹œ๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ
file_watcher / gateway / loop ํŒŒ์ผ ์ด๋ฒคํŠธ, ์›นํ›…, ์Šค์ผ€์ค„/์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ

์˜๋ฏธ๋ก ์  ์ƒํƒœ (Semantic Status)

์—์ด์ „ํŠธ๊ฐ€ ํ˜„์žฌ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ‘œํ˜„: working, awaiting-input, complete-unread, idle

  • ์ƒํƒœ ์ถœ์ฒ˜: hook (vendor), engine (PTY ์Šคํฌ๋ฆฐ ์ƒ˜ํ”Œ๋Ÿฌ), hitl/manual
  • ๋Œ€์‹œ๋ณด๋“œ์™€ CLI์—์„œ ์‹ค์‹œ๊ฐ„ ํ™•์ธ ๊ฐ€๋Šฅ

Telegram ์›๊ฒฉ ์ œ์–ด

๋ช…๋ น์–ด ํšจ๊ณผ
/new ์‹ ๊ทœ ์„ธ์…˜ ์‹œ์ž‘
/restart PTY ์žฌ์‹œ์ž‘ (ํžˆ์Šคํ† ๋ฆฌ ์œ ์ง€)
/screenshot ๋ผ์ด๋ธŒ ํ„ฐ๋ฏธ๋„ ์Šค๋ƒ…์ƒท
/stop / /status / /help ์ค‘์ง€/์ƒํƒœ/๋„์›€๋ง

์—์ด์ „ํŠธ ๋ฉ”ํƒ€ ๋ ˆ์ด์–ด

๊ฐ ์—์ด์ „ํŠธ๋Š” YAML๋กœ ์ •์˜๋œ identity ๋ณด์œ : id, type, workspace, purpose, tags, system_prompt, inject_identity_preamble

  • ์—์ด์ „ํŠธ ์‹œ์ž‘ ์‹œ ์ž๋™ identity preamble ์ƒ์„ฑ โ†’ peer ๋ฐœ๊ฒฌ ๋ฐ ๋ฉ”์‹œ์ง• ์ง€์›
  • relaydeck workspace message "<body>" --agent <peer-id>๋กœ ํ˜‘์—…

Git Worktree ์ง€์›

๋ณ‘๋ ฌ ๋ธŒ๋žœ์น˜ ์ž‘์—…์„ ์œ„ํ•œ first-class workspace. relaydeck/worktrees.py๊ฐ€ ์ฝ”์–ด์— ํฌํ•จ๋จ (ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„๋‹˜).

์™ธ๋ถ€ ์—์ด์ „ํŠธ ๊ด€์ฐฐ (Read-only)

Hermes Agent, OpenClaw ๋Ÿฐํƒ€์ž„์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๊ด€์ฐฐ: ์ƒํƒœ/๋ฆฌ์Šคํฌ ๋ณด๊ณ , ๋ณ€๊ฒฝ/์‹œํฌ๋ฆฟ ์ ‘๊ทผ ๋ถˆ๊ฐ€.


๊ธฐ์ˆ  ์Šคํƒ

๊ตฌ์„ฑ ๊ธฐ์ˆ 
์—”์ง„ Python 3.12+ (FastAPI)
๋Œ€์‹œ๋ณด๋“œ Lit (build-less), xterm.js, IBM Plex, JetBrains Mono
์ €์žฅ์†Œ SQLite (~/.relaydeck/runtime/relaydeck.db)
์ŠคํŠธ๋ฆฌ๋ฐ SSE (์ด๋ฒคํŠธ), WebSocket (PTY ์ถœ๋ ฅ)
์„ค์น˜ PyPI / install.sh (curl)
๋ผ์ด์„ ์Šค MIT

์—ฐ๊ฒฐ

  • [[Agent Orchestration]] โ€” ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ฐœ๋…
  • [[Pi Agent]] โ€” ๋ ˆํผ๋Ÿฐ์Šค harness๋กœ ์‚ฌ์šฉ๋จ
  • [[RTK Token Optimization]] โ€” CLI ๋ช…๋ น์–ด ์ถœ๋ ฅ ์ตœ์ ํ™” (relaydeck๊ณผ ๋ณด์™„ ๊ด€๊ณ„)

์ธ์šฉ

โ€œOrchestrate agents. Plug the world in. One local daemon, one dashboard, your entire fleet.โ€

โ€œNo cloud account. No telemetry.โ€


์›๋ฌธ

# relaydeck โ€” micro-agent orchestrator for local agents

One local daemon, one dashboard, your entire fleet.
Run CLI coding agents in parallel: live terminals, durable peer-to-peer messaging,
your choice of model providers, and a plugin stack you extend per workspace.
No cloud account. No telemetry.

## Key Features
- Harness-native: Drives real CLI agents (Claude Code, Codex, Cursor, etc.)
- Local-first: State in ~/.relaydeck + SQLite
- Fleet-aware: Agents discover peers by purpose/tags
- Observable: Live PTY terminals, semantic status, SSE
- Plugin-extensible: 30+ plugins

## Installation
curl -fsSL https://relaydeck.ai/install.sh | sh
pip install relaydeck
relaydeck daemon start