Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

822 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Acorn

Acorn ๐ŸŒฐ

๋ณ‘๋ ฌ AI ์—์ด์ „ํŠธ ์„ธ์…˜์„ ํ•œ ์ฐฝ์—์„œ. Parallel AI coding agent sessions in one window โ€” split panes, isolated git worktrees, native PTY terminals.

AI๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ๋˜‘๋˜‘ํ•˜์ง€๋งŒ, ๊ฒฐ์ •๊ณผ ์ฑ…์ž„์€ ๊ฒฐ๊ตญ ์‚ฌ๋žŒ์˜ ๋ชซ์ด์ฃ . Acorn์€ AI์™€ ์‚ฌ๋žŒ์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ˜‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Tauri React TypeScript pnpm Rust


ํ™๋ณด ํŽ˜์ด์ง€ ๋ณด๊ธฐ


๊ฐœ์š”

Acorn์€ ์—ฌ๋Ÿฌ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Claude Code / Codex / Antigravity / Grok Build / Ollama / llm ๋“ฑ) ์„ธ์…˜์„ ํ•œ ์ฐฝ์—์„œ ๋ณ‘๋ ฌ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์ž…๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ PTY์™€ ์ฑ„ํŒ…, ๋ถ„ํ•  PaneยทKanbanยทCanvas, ์„ธ์…˜๋ณ„ ๊ฒฉ๋ฆฌ๋œ git worktree, ์ž‘์—… ์š”์•ฝ๊ณผ ์ง„ํ–‰ ์ƒํƒœ ํ‘œ์‹œ๋ฅผ ํ•˜๋‚˜์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


์Šคํฌ๋ฆฐ์ƒท

Acorn ๋ฉ”์ธ ์›Œํฌ์ŠคํŽ˜์ด์Šค
๋ฉ”์ธ ์›Œํฌ์ŠคํŽ˜์ด์Šค โ€” ์‚ฌ์ด๋“œ๋ฐ” + ๋ถ„ํ•  Pane + ์šฐ์ธก ํŒจ๋„

Acorn Kanban ์›Œํฌ์ŠคํŽ˜์ด์Šค
Kanban ์›Œํฌ์ŠคํŽ˜์ด์Šค โ€” Idle๋ถ€ํ„ฐ Done๊นŒ์ง€ ์„ธ์…˜ lifecycle ์ถ”์ 

Acorn Canvas ์›Œํฌ์ŠคํŽ˜์ด์Šค
Canvas ์›Œํฌ์ŠคํŽ˜์ด์Šค โ€” ๋ผ์ด๋ธŒ ํ„ฐ๋ฏธ๋„์„ ์ž์œ ๋กญ๊ฒŒ ๋ฐฐ์น˜ํ•˜๊ณ  ํ•œ๋ˆˆ์— ํƒ์ƒ‰

Acorn PR ์ƒ์„ธ ๋ชจ๋‹ฌ
PR ์ƒ์„ธ ๋ชจ๋‹ฌ โ€” ์ฒดํฌ ์ƒํƒœ + ๋ณ€๊ฒฝ ์‚ฌํ•ญ + ๋จธ์ง€ ์˜ต์…˜

Acorn Control session ๋ฐ๋ชจ
Control session โ€” `acorn-ipc`๋กœ ๋‹ค๋ฅธ ์„ธ์…˜ ์กฐ์ž‘

์ฃผ์š” ๊ธฐ๋Šฅ

๐ŸชŸ ๋‹ค์ค‘ Pane ์›Œํฌ์ŠคํŽ˜์ด์Šค

  • ๊ฐ€๋กœ/์„ธ๋กœ ๋ถ„ํ•  + ์ž์œ ๋กœ์šด ํฌ๊ธฐ ์กฐ์ ˆ
  • Pane ๊ฐ„ ์„ธ์…˜ ๋“œ๋ž˜๊ทธ-๋“œ๋กญ, ํƒญ ์ด๋™ยท๋ณต์ œยท์žฌ๋ฐฐ์น˜
  • ๋นˆ Pane ๋”๋ธ” ํด๋ฆญ์œผ๋กœ ์ƒˆ ์„ธ์…˜ ์ƒ์„ฑ
  • ๋ณด์ด๋Š” ์„ธ์…˜์— ๊ฐ™์€ ์ž…๋ ฅ์„ ๋™์‹œ์— ๋ณด๋‚ด๋Š” multi-input ๋ชจ๋“œ

๐Ÿ—‚๏ธ Kanban ์›Œํฌ์ŠคํŽ˜์ด์Šค

  • Pane๊ณผ Kanban ๋ณด๊ธฐ๋ฅผ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์ „ํ™˜ยท๊ธฐ์–ตํ•˜๊ณ  ์ƒˆ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ๋ณด๊ธฐ ์„ค์ •
  • ์„ธ์…˜ ์ƒํƒœ์™€ ์ž‘์—… ํŠธ๋ฆฌ diff, PR ์ƒํƒœ๋ฅผ ์กฐํ•ฉํ•ด Idle / Working / Waiting / Review / Done์œผ๋กœ ์ž๋™ ๋ถ„๋ฅ˜
  • ์„ธ์…˜ ๊ฒ€์ƒ‰ยท์ •๋ ฌ, ๋‹จ๊ณ„๋ณ„ ์ฒด๋ฅ˜ ์‹œ๊ฐ„๊ณผ stall ํ‘œ์‹œ, ์ˆ˜๋™ ์™„๋ฃŒ ์ฒ˜๋ฆฌ, ์—ด ๋„ˆ๋น„ ์กฐ์ ˆ
  • ์นด๋“œ์—์„œ ํ„ฐ๋ฏธ๋„ยท์ฑ„ํŒ… ํŒ์˜ค๋ฒ„ ์—ด๊ธฐ, ์„ธ์…˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ, PR ์ƒ์„ธ ํ™•์ธ, ์ƒˆ ์ผ๋ฐ˜ยทworktreeยทchatยทcontrol ์„ธ์…˜ ์ƒ์„ฑ

๐Ÿงญ Canvas ์›Œํฌ์ŠคํŽ˜์ด์Šค

  • ๋ผ์ด๋ธŒ ํ„ฐ๋ฏธ๋„ยท์ฑ„ํŒ… ์„ธ์…˜์„ ์ž์œ ๋กญ๊ฒŒ ๋ฐฐ์น˜ํ•˜๊ณ  ๋“œ๋ž˜๊ทธยทํฌ๊ธฐ ์กฐ์ ˆ
  • ํ™•๋Œ€ยท์ถ•์†Œ, ์บ”๋ฒ„์Šค ์ด๋™, ์ „์ฒด ๋งž์ถค, ๋ ˆ์ด์•„์›ƒ ์ดˆ๊ธฐํ™”ยท์‹คํ–‰ ์ทจ์†Œ
  • ๋ฏธ๋‹ˆ๋งต์œผ๋กœ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์„ธ์…˜์„ ํƒ์ƒ‰ํ•˜๊ณ  ํ„ฐ๋ฏธ๋„์„ ํŒ์˜ค๋ฒ„๋‚˜ Pane์œผ๋กœ ์ „ํ™˜

๐ŸŒณ ํ”„๋กœ์ ํŠธ + ๊ฒฉ๋ฆฌ๋œ git Worktree

  • ์•ฑ ์•ˆ์—์„œ ์ƒˆ git ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋˜๋Š” ๊ธฐ์กด ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€
  • ํ”„๋กœ์ ํŠธ ์•ˆ์— ์ด๋ฆ„ ์žˆ๋Š” ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์‚ฌ์ด๋“œ๋ฐ” ๊ทธ๋ฃนํ•‘ยท๋“œ๋ž˜๊ทธ ์žฌ์ •๋ ฌ
  • ์„ธ์…˜๋งˆ๋‹ค ๋ณ„๋„ worktree๋กœ ๋™์ผ ์ €์žฅ์†Œ ์•ˆ์ „ ๋™์‹œ ์ž‘์—…
  • ๊ธฐ์กด linked worktree๋ฅผ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋กœ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ ํ™•์ธยท์‚ญ์ œ
  • ์ข…๋ฃŒ ์‹œ worktree ์ •๋ฆฌ ์˜ต์…˜ + ์ง€์—ฐ ์‚ญ์ œ ์‹คํ–‰ ์ทจ์†Œ (ํ•ญ์ƒ ์‚ญ์ œ ๋ชจ๋“œ ํฌํ•จ)

๐Ÿ’ป PTY ํ„ฐ๋ฏธ๋„

  • ๋„ค์ดํ‹ฐ๋ธŒ PTY ์…ธ ์„ธ์…˜, ์žฌ์˜คํ”ˆ ์‹œ ์Šคํฌ๋กค๋ฐฑ ์ž๋™ ๋ณต์›
  • ํ„ฐ๋ฏธ๋„ ์•ˆ์˜ ํŒŒ์ผ ๊ฒฝ๋กœ ํด๋ฆญ โ†’ ์ฝ”๋“œ ๋ทฐ์–ด๋กœ ์—ด๊ธฐ
  • URL ํด๋ฆญ, ์ค„ ๋†’์ด, ๋งˆ์ง€๋ง‰ ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ ๊ณ ์ • ๋“ฑ ๋™์ž‘ ์˜ต์…˜

๐Ÿค– AI ์—์ด์ „ํŠธ ์„ธ์…˜

  • ์„ธ์…˜์€ ํ•ญ์ƒ $SHELL๋กœ ์‹œ์ž‘ โ€” ๊ทธ ์•ˆ์—์„œ ์›ํ•˜๋Š” AI CLI(claude / codex / agy / grok / ollama / llm ๋“ฑ) ์ง์ ‘ ์‹คํ–‰
  • Claude / Codex / Antigravity / Grok ์„ธ์…˜์„ ํ˜„์žฌ Pane์ด๋‚˜ ์ƒˆ worktree๋กœ fork
  • ์—์ด์ „ํŠธ ํƒญ ์ œ๋ชฉ ์ž๋™ ์ƒ์„ฑ โ€” ๋Œ€ํ™” ๋‚ด์šฉ์— ๋งž์ถฐ ํƒญ ์ œ๋ชฉ ๊ฐฑ์‹ 
  • ์‚ฌ์ด๋“œ๋ฐ” ๋ผ์ด๋ธŒ ์ƒํƒœ โ€” ์œ ํœด / ์ž…๋ ฅ ๋Œ€๊ธฐ / ์ž‘์—… ์ค‘ (provider transcript ๊ธฐ๋ฐ˜, ์ง€์›๋˜๋Š” CLI๋Š” hook ๋ณ‘ํ–‰)
  • ์šฐ์ธก ํŒจ๋„ todo ๋ฆฌ์ŠคํŠธ๋Š” Claude Code ์ „์šฉ โ€” transcript์˜ TodoWrite ์ด๋ฒคํŠธ ํŒŒ์‹ฑ

๐Ÿ’ฌ ๋„ค์ดํ‹ฐ๋ธŒ AI ์ฑ„ํŒ…

  • ํ„ฐ๋ฏธ๋„ ๋ช…๋ น ์—†์ด Claude / Codex / Antigravity / Grok๊ณผ ๋Œ€ํ™”ํ•˜๋Š” chat ์„ธ์…˜
  • ์‘๋‹ต ์ŠคํŠธ๋ฆฌ๋ฐยท์ค‘์ง€, provider ์ „ํ™˜, ํŒŒ์ผ ์ฒจ๋ถ€, ๋ฉ”์‹œ์ง€ ๋ณต์‚ฌ
  • ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€ ์ˆ˜์ •, ์‘๋‹ต ์žฌ์ƒ์„ฑ, ์ดํ›„ ๋Œ€ํ™” ๊ฐ€์ง€ ์‚ญ์ œ
  • ์›ํ•˜๋Š” ๋ฉ”์‹œ์ง€ ์‹œ์ ์—์„œ ๊ฐ™์€ worktree ๋˜๋Š” ์ƒˆ ๊ฒฉ๋ฆฌ worktree๋กœ ๋Œ€ํ™” fork

๐Ÿ’พ ์—์ด์ „ํŠธ ๋Œ€ํ™” ์˜์†ํ™”

  • claude / codex / agy / grok ๋Œ€ํ™” UUID๋ฅผ ์„ธ์…˜๋ณ„๋กœ ์ถ”์ ํ•ด ํฌ์ปค์Šค ์‹œ ์ด์ „ ๋Œ€ํ™” resume ์ œ์•ˆ
  • ์šฐ์ธก ํŒจ๋„ History ํƒญ์—์„œ ํ”„๋กœ์ ํŠธ๋ณ„ transcript ํžˆ์Šคํ† ๋ฆฌ ํ™•์ธ, ๋”๋ธ” ํด๋ฆญ์œผ๋กœ ์ƒˆ ํ„ฐ๋ฏธ๋„์—์„œ resume

๐Ÿ›๏ธ Background sessions

  • ์•ฑ์„ ์ข…๋ฃŒยท์žฌ์‹œ์ž‘ํ•ด๋„ PTY ์„ธ์…˜ ๊ทธ๋Œ€๋กœ ์œ ์ง€ โ€” ๋‹ค์‹œ ์—ด๋ฉด ํ™”๋ฉด ๋ณต์›
  • ๊ธฐ๋ณธ ON. Settings โ†’ Services ์—์„œ ์ƒํƒœ ํ™•์ธ + Kill / Restore / Forget ์ œ์–ด
  • ์ƒํƒœ ํ‘œ์‹œ์ค„ ์•„์ด์ฝ˜ ๋“œ๋กญ๋‹ค์šด์œผ๋กœ ํ•œ๋ˆˆ์— ํ™•์ธ

๐Ÿ›ฐ๏ธ Control session โ€” ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์„ธ์…˜ ์กฐ์ž‘

  • ํ•œ ์„ธ์…˜ ์•ˆ์˜ AI๊ฐ€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์˜ ๋‹ค๋ฅธ ์„ธ์…˜์„ ์ง์ ‘ ์กฐ์ž‘ (์ž…๋ ฅ ์ „์†ก, ํ™”๋ฉด ์ฝ๊ธฐ, ์ƒˆ ์„ธ์…˜ ์ƒ์„ฑ, ์„ ํƒ, ์ข…๋ฃŒ)
  • ์‹œ์ž‘: โŒ˜โŒฅโ‡งT ๋˜๋Š” ์ปค๋งจ๋“œ ํŒ”๋ ˆํŠธ โ†’ New control session
  • ์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ• + ๋ณด์•ˆ ๋ชจ๋ธ: docs/CONTROL_SESSIONS.md
  • ํ”Œ๋žซํผ: macOS / Linux (Windows ๋ฏธ์ง€์›)

๐ŸŽฏ ์šฐ์ธก ํŒจ๋„

์„ธ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ธ ํƒญ:

  • Code โ€” Files / Staged / Commits. ํŒŒ์ผ ํŠธ๋ฆฌยท๊ฒ€์ƒ‰ยทGit ์ƒํƒœ, ์Šคํ…Œ์ด์ง• ๋ณ€๊ฒฝ, ์ปค๋ฐ‹ + Diff ๋ชจ๋‹ฌ
  • GitHub โ€” PRs / Issues / Actions. PR ๋ฆฌ์ŠคํŠธ(๋ผ๋ฒจ/์ฒดํฌ/CI ์‹œ๊ฐ„), Issues ๋ชฉ๋ก/๊ฒ€์ƒ‰/์ƒ์„ธ ๋ชจ๋‹ฌ, PR ์ƒ์„ธ ๋ชจ๋‹ฌ(ConversationยทCommitsยทChecksยทFiles), ์ด์ŠˆยทPR ๋Œ“๊ธ€ ์ž‘์„ฑ/์ˆ˜์ •/์‚ญ์ œ, ๋ณธ๋ฌธ task ํ† ๊ธ€, ๋จธ์ง€ ๋ฉ”์‹œ์ง€ AI ์ž๋™ ์ƒ์„ฑ. GitHub Actions ์‹คํ–‰ + workflow ํ•„ํ„ฐ
  • Agents โ€” Activity / History / Todos. ์„ธ์…˜๋ณ„ ์•Œ๋ฆผ, transcript ํžˆ์Šคํ† ๋ฆฌ, Claude Code todo (TodoWrite ์ด๋ฒคํŠธ)

๐Ÿ” File Explorer + Code / Diff / Media ๋ทฐ์–ด

  • ํŒŒ์ผ๋ช…ยท๋‚ด์šฉ ๊ฒ€์ƒ‰ (์ •๊ทœ์‹, ๋Œ€์†Œ๋ฌธ์ž, include/exclude) + dotfileยทgitignored ํŒŒ์ผ ํ‘œ์‹œ ์ „ํ™˜
  • ํŒŒ์ผยทํด๋” ์ด๋ฆ„ ๋ณ€๊ฒฝ, ํœด์ง€ํ†ต ์ด๋™, ์ƒ๋Œ€ยท์ ˆ๋Œ€ ๊ฒฝ๋กœ ๋ณต์‚ฌ, Finder/๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ/์™ธ๋ถ€ ์—๋””ํ„ฐ๋กœ ์—ด๊ธฐ
  • ํŒŒ์ผ์„ Claude / Codex / Antigravity / Grok ๋Œ€ํ™”์— ์ฒจ๋ถ€ํ•˜๊ณ  ํƒญ ์˜์—ญ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•ด ์—ด๊ธฐ
  • ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ๋˜๋Š” ํ„ฐ๋ฏธ๋„์˜ ํŒŒ์ผ ์ฐธ์กฐ ํด๋ฆญ์œผ๋กœ ์ฝ”๋“œ ๋ทฐ์–ด ์ง„์ž…
  • ์‹ ํƒ์Šค ํ•˜์ด๋ผ์ดํŒ…, in-file ๊ฒ€์ƒ‰, markdown source/preview ์ „ํ™˜
  • Diff ํ†ตํ•ฉ / ๋ถ„ํ•  ๋ชจ๋“œ, ์™ธ๋ถ€ ์—๋””ํ„ฐ๋กœ ์—ด๊ธฐ
  • ์ด๋ฏธ์ง€ ํ™•๋Œ€ยท์ถ•์†Œ์™€ PDF ์ธ์•ฑ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

๐Ÿ“ˆ ์ž‘์—… ์š”์•ฝ

  • ์„ธ์…˜ ๋ฉ”๋‰ด์—์„œ ํ˜„์žฌ worktree์˜ ๋ณ€๊ฒฝ ํŒŒ์ผยท๋ผ์ธ ์ฆ๊ฐยท์ƒํƒœ ๋ถ„ํฌ๋ฅผ ํ•œ ํƒญ์— ์ง‘๊ณ„
  • ๋ณ€๊ฒฝ ํŒŒ์ผ์„ ์š”์•ฝ์—์„œ ๋ฐ”๋กœ ์—ด๊ณ  ์„ธ์…˜ยท๋ธŒ๋žœ์น˜ยทtranscript metadata ํ™•์ธ
  • ๋„ค์ดํ‹ฐ๋ธŒ ์ฑ„ํŒ…์˜ ๋ฉ”์‹œ์ง€ยทํ„ด ํ˜„ํ™ฉ๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ž…๋ ฅยท์ถœ๋ ฅยท์บ์‹œยท์ถ”๋ก  ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ํ‘œ์‹œ

๐Ÿ›Ž๏ธ Activity center

  • ์„ธ์…˜๋ณ„ ์•Œ๋ฆผ(์ž…๋ ฅ ๋Œ€๊ธฐ / ์™„๋ฃŒ / ์‹คํŒจ)์„ ์šฐ์ธก ํŒจ๋„ Activity ํƒญ๊ณผ ์ƒํƒœ ํ‘œ์‹œ์ค„์—์„œ ๋ชจ์•„ ๋ณด๊ธฐ
  • ๋„ค์ดํ‹ฐ๋ธŒ ์•Œ๋ฆผ ์ด๋ฒคํŠธ๋ณ„ ํ† ๊ธ€, ํžˆ์Šคํ† ๋ฆฌ ๋ณด๊ด€ ๊ธฐ๊ฐ„ ์„ค์ •

โŒจ๏ธ ์ปค๋งจ๋“œ ํŒ”๋ ˆํŠธ + ๋‹จ์ถ•ํ‚ค

Action Shortcut
์ปค๋งจ๋“œ ํŒ”๋ ˆํŠธ โŒ˜P
์ƒˆ ์„ธ์…˜ / isolated / control โŒ˜T / โŒ˜โŒฅT / โŒ˜โŒฅโ‡งT
์ƒˆ ํ”„๋กœ์ ํŠธ โŒ˜โ‡งN
Pane ๋ถ„ํ•  (์„ธ๋กœ/๊ฐ€๋กœ) โŒ˜D / โŒ˜โ‡งD
Pane ํฌ๊ธฐ ๊ท ๋“ฑํ™” โŒ˜โŒฅE
ํƒญ ๋‹ซ๊ธฐ โŒ˜W
์‚ฌ์ด๋“œ๋ฐ” / ๋ฉ”์ธ / ์šฐ์ธก ํŒจ๋„ ํฌ์ปค์Šค โŒ˜1 / โŒ˜2 / โŒ˜3
์‚ฌ์ด๋“œ๋ฐ” / ์šฐ์ธก ํŒจ๋„ ํ† ๊ธ€ โŒ˜B / โŒ˜J
multi-input ํ† ๊ธ€ โŒ˜โŒฅI
๋‹ค์Œ/์ด์ „ ์„ธ์…˜ Ctrl+Tab / Ctrl+โ‡ง+Tab
์ตœ๊ทผ ์ž…๋ ฅ ๋Œ€๊ธฐ ์„ธ์…˜์œผ๋กœ ์ด๋™ Ctrl+โŒฅ]
ํ„ฐ๋ฏธ๋„ ํด๋ฆฌ์–ด โŒ˜K
์„ค์ • โŒ˜,

์ „์ฒด ๋ชฉ๋ก์€ Settings โ†’ Shortcuts ํƒญ์—์„œ ํ™•์ธํ•˜๊ณ  ์›ํ•˜๋Š” ์กฐํ•ฉ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽ›๏ธ ์„ค์ •

  • ์–ธ์–ด / UI ๋ฐฐ์œจ / theme / ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ / ๊ธฐ๋ณธ PaneยทKanban ๋ณด๊ธฐ
  • ํ„ฐ๋ฏธ๋„ ํฐํŠธ fallbackยทํ”„๋ฆฌ์…‹, ํฌ๊ธฐยท๊ตต๊ธฐยท์ž๊ฐ„ยท์ค„ ๋†’์ดยท์•ˆํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ, ์ƒ์ฃผ ํ„ฐ๋ฏธ๋„ ์ˆ˜
  • ๋‹จ์ถ•ํ‚ค ์ง์ ‘ ๋…นํ™”ยท์ถฉ๋Œ ๊ฐ์ง€ยท๊ฐœ๋ณ„/์ „์ฒด ์ดˆ๊ธฐํ™”
  • AI ๊ณต๊ธ‰์ž ์„ ํƒ (claude / codex / antigravity / grok / ollama / llm / ์ปค์Šคํ…€), ์™ธ๋ถ€ ์—๋””ํ„ฐ ๋ช…๋ น
  • Background sessions ์ œ์–ด, ์ž‘์—… ์ค‘ ์ ˆ์ „ ๋ฐฉ์ง€, ์ข…๋ฃŒ ๊ฒฝ๊ณ , orphan worktreeยท์บ์‹œ ์ •๋ฆฌ
  • macOS ๋ณดํ˜ธ ํด๋” ๊ถŒํ•œ ์ ๊ฒ€ยท์žฌ์„ค์ •
  • ํ”„๋กœ์ ํŠธ๋ณ„ PR ์ƒ์„ฑ ์„ค์ • (์‚ฌ์ด๋“œ๋ฐ” ํ”„๋กœ์ ํŠธ โ†’ Settings)

๐Ÿ“Š ์ƒํƒœ ํ‘œ์‹œ์ค„ + ์ž๋™ ์—…๋ฐ์ดํŠธ

  • ๋ฉ”๋ชจ๋ฆฌ + ํ”„๋กœ์„ธ์Šค๋ณ„ Breakdown, ํ˜„์žฌ worktree ๋ธŒ๋žœ์น˜, GitHub ๊ณ„์ • ๋ฐฐ์ง€
  • ํ™œ์„ฑ Claude / Codex ์„ธ์…˜์˜ ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰, Background sessions / multi-input ์ƒํƒœ ํ‘œ์‹œ
  • macOS ์ž๋™ ์—…๋ฐ์ดํŠธ โ€” ์ƒˆ ๋ฒ„์ „ ๊ฐ์ง€ ์‹œ ๋ฐฐ๋„ˆ, ์ ์šฉ ์‹œ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒ
  • About ํƒญ์—์„œ ํ˜„์žฌ ๋ฒ„์ „์˜ GitHub ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ํ™•์ธ

์„ค์น˜ (macOS)

์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ

curl -fsSL https://raw.githubusercontent.com/im-ian/acorn/main/scripts/install-macos.sh | bash

์ตœ์‹  ๋ฆด๋ฆฌ์Šค DMG๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ /Applications/Acorn.app์— ๋ณต์‚ฌํ•˜๊ณ  quarantine ์†์„ฑ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ ค๋ฉด ACORN_INSTALL_DIR๋ฅผ ์ง€์ •:

curl -fsSL https://raw.githubusercontent.com/im-ian/acorn/main/scripts/install-macos.sh \
  | ACORN_INSTALL_DIR="$HOME/Applications" bash

์ˆ˜๋™ DMG

Releases์—์„œ Acorn_*_aarch64.dmg(Apple Silicon) ๋˜๋Š” Acorn_*_x64.dmg(Intel)๋ฅผ ๋ฐ›์•„ Applications๋กœ ๋ณต์‚ฌํ•œ ๋’ค quarantine ์†์„ฑ ์ œ๊ฑฐ:

xattr -dr com.apple.quarantine /Applications/Acorn.app

Acorn์€ Apple Developer ID๋กœ ์„œ๋ช…ยท๊ณต์ฆ๋˜์ง€ ์•Š์€ ad-hoc ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค. ์œ„ ๋ช…๋ น์€ Gatekeeper์˜ quarantine ํ”Œ๋ž˜๊ทธ๋งŒ ๋–ผ๋Š” ๋‹จ๊ณ„๋กœ ์•ฑ ๋ฌด๊ฒฐ์„ฑ์—๋Š” ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค.


์†Œ์Šค์—์„œ ๋นŒ๋“œ

์š”๊ตฌ์‚ฌํ•ญ: pnpm 9.x, Rust stable, Xcode CLT (macOS) ๋˜๋Š” OS ๋ณ„ Tauri ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ.

pnpm install
pnpm run build:sidecar  # acorn-ipc + acornd ์‚ฌ์ด๋“œ์นด ๋นŒ๋“œ (์ตœ์ดˆ 1ํšŒ + IPC/daemon ๋ณ€๊ฒฝ ์‹œ)
pnpm run tauri dev      # ๊ฐœ๋ฐœ ๋ชจ๋“œ
pnpm run tauri build    # ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ

โ„น๏ธ pnpm run tauri dev / tauri build๋Š” src-tauri/binaries/acorn-ipc-<target-triple>, acornd-<target-triple> ํŒŒ์ผ์ด ์กด์žฌํ•ด์•ผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๋กœ๋Š” .gitignore์— ํฌํ•จ๋ผ ์žˆ์–ด fresh checkout(ํŠนํžˆ git worktree add๋กœ ๋งŒ๋“  worktree)์—์„œ๋Š” ๋น„์–ด ์žˆ๊ณ , ๋ฏธ๋ฆฌ ๋นŒ๋“œํ•˜์ง€ ์•Š์œผ๋ฉด resource path 'binaries/...' doesn't exist ์—๋Ÿฌ๋กœ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. pnpm run build:sidecar๊ฐ€ ํ˜ธ์ŠคํŠธ ํƒ€๊นƒ์— ๋งž๋Š” ๋‘ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— stageํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ๋ชจ๋“œ์˜ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ๋Š” ์„ค์น˜๋œ ์•ฑ๊ณผ ๋ถ„๋ฆฌ๋˜์–ด ~/Library/Application Support/io.im-ian.acorn/profiles/dev/์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ๋Š” profiles/prod/. ์ž„์‹œ ๊ฒฉ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ACORN_PROFILE=<name> ๋˜๋Š” ACORN_DATA_DIR=/tmp/acorn-test๋กœ ์•ฑยทIPC CLIยทdaemon์ด ๋ณผ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ

pnpm run test       # Vitest
pnpm run test:e2e   # Playwright

๊ธฐ์—ฌ ๊ฐ€์ด๋“œ๋Š” CLAUDE.md ์ฐธ๊ณ .


์ œ์ž‘์ž

๐Ÿฟ๏ธ by @im-ian โ€” issues / PRs welcome.

About

Multi-session AI workspace manager

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages