himkt/cafleet

๐Ÿ›ฐ๏ธ ์—์ด์ „ํŠธ ํŒ€์„ ํ˜‘์—… ์ฝ”๋”ฉ์„ ์œ„ํ•ด ์žฌ์ฐฝ์กฐํ•œ ๋„๊ตฌ๋กœ, Claude Code์™€ Codex๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์™„์ „ํ•œ ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

cafleet๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

himkt/cafleet๋Š” Claude Code์™€ Codex ๊ฐ™์€ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ํ˜‘์—… ํŒ€ ๊ตฌ์„ฑ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ž‘์—…์„ ํ•จ๊ป˜ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํ‚ฌ์€ ์—์ด์ „ํŠธ ํŒ€์ด ๋™์ผํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ๊ฐ ์—์ด์ „ํŠธ์˜ ๊ธฐ์—ฌ๋ฅผ ๋ช…ํ™•ํžˆ ์ถ”์ ํ•˜๊ณ  ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์™„์ „ํžˆ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋œ ์ด์ ์€ ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง, ๋ณต์žกํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„, ๋˜๋Š” ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์—์„œ ํšจ์œจ์„ฑ๊ณผ ํˆฌ๋ช…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. cafleet์€ Claude Code์™€ Codex ํ”Œ๋žซํผ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฉฐ, ์„ค์น˜ ๋ฐ ์„ค์ •์ด ๊ฐ„๋‹จํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฆ‰์‹œ ํ˜‘์—… ์ฝ”๋”ฉ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

์ง€์› ๋Œ€์ƒโœ“Claude Codeโœ“Codex CLI~Cursor
npx skills add himkt/cafleet

Installed? Explore more ์ฝ”๋”ฉ & ๊ฐœ๋ฐœ skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli ยท View all 6 โ†’

์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” AI์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ

์ด ์—์ด์ „ํŠธ ์Šคํ‚ฌ์ด ๋ฏธ๋ฆฌ ๋กœ๋“œ๋œ ์ƒˆ ์ฑ„ํŒ…์„ ์—ฝ๋‹ˆ๋‹ค.

๋ฌธ์„œ

cafleet์€(๋Š”) ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

๐Ÿ›ฐ๏ธ ์—์ด์ „ํŠธ ํŒ€์„ ํ˜‘์—… ์ฝ”๋”ฉ์„ ์œ„ํ•ด ์žฌ์ฐฝ์กฐํ•œ ๋„๊ตฌ๋กœ, Claude Code์™€ Codex๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์™„์ „ํ•œ ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

cafleet์€ ์—ฌ๋Ÿฌ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Claude Code, Codex)๋ฅผ ํ•˜๋‚˜์˜ ํŒ€์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๊ฐ ์—์ด์ „ํŠธ์˜ ์ž‘์—… ๋‚ด์—ญ๊ณผ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์™„์ „ํžˆ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ณต๊ฐœ๋˜์–ด, ํŒ€ ๋ฆฌ๋”๊ฐ€ ์ „์ฒด ์ง„ํ–‰ ์ƒํ™ฉ์„ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ์—์ด์ „ํŠธ ํŒ€ ๊ตฌ์„ฑ: ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—… ๋ถ„๋‹ด
  • ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ: ๋ชจ๋“  ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ์—์ด์ „ํŠธ ๊ฐ„ ํ†ต์‹  ๊ธฐ๋ก์ด ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ณต๊ฐœ
  • ๋‹ค์ค‘ ํ”Œ๋žซํผ ์ง€์›: Claude Code์™€ Codex ๋ชจ๋‘์—์„œ ๋™์ž‘
  • ๊ฐ„ํŽธํ•œ ์„ค์ •: ์ตœ์†Œํ•œ์˜ ์„ค์ •์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ ๊ฐ€๋Šฅ

์„ค์น˜ ๋ฐฉ๋ฒ•

# cafleet ์„ค์น˜
pip install cafleet

# ๋˜๋Š” GitHub์—์„œ ์ง์ ‘ ์„ค์น˜
pip install git+https://github.com/himkt/cafleet.git

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ cafleet ์ดˆ๊ธฐํ™”:

    cafleet init
    
  2. ์—์ด์ „ํŠธ ํŒ€ ๊ตฌ์„ฑ ํŒŒ์ผ ํŽธ์ง‘ (cafleet.yaml):

    agents:
      - name: agent-1
        platform: claude-code
        role: architect
      - name: agent-2
        platform: codex
        role: implementer
    
  3. ํŒ€ ์‹คํ–‰:

    cafleet run
    

์„ค์ • ์˜ต์…˜

์˜ต์…˜์„ค๋ช…๊ธฐ๋ณธ๊ฐ’
agents์—์ด์ „ํŠธ ๋ชฉ๋กํ•„์ˆ˜
shared_context๊ณต์œ  ์ปจํ…์ŠคํŠธ ํฌ๊ธฐ4096
log_level๋กœ๊ทธ ๋ ˆ๋ฒจinfo

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

  • CAFLEET_HOME: cafleet ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ (๊ธฐ๋ณธ๊ฐ’: ~/.cafleet)
  • CLAUDE_CODE_API_KEY: Claude Code API ํ‚ค (Claude Code ์‚ฌ์šฉ ์‹œ ํ•„์š”)
  • CODEX_API_KEY: Codex API ํ‚ค (Codex ์‚ฌ์šฉ ์‹œ ํ•„์š”)

์˜ˆ์ œ

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ:

my-project/
โ”œโ”€โ”€ src/
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ cafleet.yaml
โ””โ”€โ”€ README.md

cafleet.yaml ์˜ˆ์‹œ:

agents:
  - name: refactor-agent
    platform: claude-code
    role: refactor
    context_prompt: "๋ฆฌํŒฉํ† ๋งํ•  ๋ชจ๋“ˆ์˜ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๊ฐœ์„  ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์„ธ์š”."
  - name: test-agent
    platform: codex
    role: tester
    context_prompt: "๋ฆฌํŒฉํ† ๋ง๋œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”."

์‹คํ–‰ ๋ช…๋ น์–ด:

cafleet run --config cafleet.yaml

๋ผ์ด์„ ์Šค

MIT License

๊ธฐ์—ฌ

๋ฒ„๊ทธ ๋ฆฌํฌํŠธ, ๊ธฐ๋Šฅ ์ œ์•ˆ, ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” GitHub ์ €์žฅ์†Œ์—์„œ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ์Šคํ‚ฌ