moai-adk 곡μ ν¬λ‘μ€νλ«νΌ Agent IDE. SPEC-first κ°λ° λ°©λ²λ‘ , MoAI-ADK ν΅ν©, 27κ° Hook μ΄λ²€νΈ, 26κ° μ λ¬Έ μμ΄μ νΈ, TRUST 5 νμ§ κ²μ΄νΈ, @MX μ½λ μ΄λ Έν μ΄μ μ κ°μΆ κ³ μ±λ₯ λ€μ΄ν°λΈ ν°λ―Έλ λ©ν°νλ μ.
μ μ₯μ: github.com/modu-ai/moai-studio (2026-04-26 GoosLabμμ modu-ai orgλ‘ μ΄μ )
μΈμ΄: Pure Rust
Edition: Rust 2024
MSRV: Rust 1.93+
λΌμ΄μ μ€: Apache License 2.0
MoAI Studioλ SPEC-first κ°λ° λ°©λ²λ‘ μ ꡬνν ν¬λ‘μ€νλ«νΌ Agent IDEμ λλ€. Rust κΈ°λ°μ κ³ μ±λ₯ μμ§κ³Ό GPUI νλ μμν¬λ₯Ό ν΅ν΄ GPU κ°μ λ€μ΄ν°λΈ UIλ₯Ό μ 곡νλ©°, ν°λ―Έλ μμ§μΌλ‘ libghostty-vtλ₯Ό ν΅ν©ν©λλ€.
ν΅μ¬ νΉμ§:
- SPEC-driven μν¬νλ‘μ°: EARS νμ μꡬμ¬ν, TRUST 5 νμ§ κ²μ΄νΈ, @MX μ½λ μ΄λ Έν μ΄μ μΌλ‘ μ격ν κ°λ° κ·μ¨ μ μ§
- MoAI-ADK ν΅ν©: Go CLI μ€μΌμ€νΈλ μ΄μ νλ μμν¬μ μμ€ν μμ€ νλ ₯ (Hook, Agent dispatch)
- κ³ μ±λ₯ Terminal: libghostty-vt κΈ°λ° ν°λ―Έλ λ©ν°νλ μλ‘ μ΅λ μ±λ₯ + νΈνμ±
- ν¬λ‘μ€νλ«νΌ λ°°ν¬: macOS (arm64 + x86_64), Linux (x86_64), Windows (x86_64) β λΆνΈν λ° μλ μ λ°μ΄νΈλ MS-2 μμ
| λ§μΌμ€ν€ | μν | ꡬν λ΄μ© |
|---|---|---|
| V3 Scaffold | β μλ£ | 23κ° Rust crate μ»΄νμΌ, κΈ°λ³Έ UI/Terminal ꡬ쑰 |
| SPEC-V3-001~013 | π μ§ν μ€ | ν΅μ¬ Agent IDE κΈ°λ₯, Pane system, Terminal multiplexing |
| SPEC-V3-011 MS-1 | β μλ£ | macOS (.app), Linux (.deb + .AppImage), Windows (.msi) ν¨ν€μ§ infra |
| v0.1.0 (unsigned) | β 첫 μ μ λ¦΄λ¦¬μ€ | GitHub Releases unsigned λ°°ν¬ (USER-DECISION-PK-B (b) κ²°μ ) |
| SPEC-V3-DIST-001 | π ready (ꡬν μμ ) | Homebrew Cask + Scoop bucket + AUR + AppImage λ¬΄λ£ λ°°ν¬ μ±λ λ±λ‘ |
| MS-2 (signed) | π μ°¨κΈ° | macOS codesign + notarize, Windows EV signtool μΈμ¦ (μΈμ¦μ 보μ μ) |
| MS-3 (auto-update) | π μ°¨κΈ° | Ed25519 μλͺ , GitHub Releases JSON manifest κΈ°λ° μλ μ λ°μ΄νΈ |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MoAI Studio (Rust + GPUI) β
β β
β GPU-accelerated UI (gpui crate) β
β β β
β βΌ β
β moai-studio-app (binary: moai-studio) β
β β β
β ββ moai-studio-terminal βββββββΊ libghostty-vt β
β ββ moai-studio-ui (terminal subsystem) β
β ββ moai-studio-workspace β
β ββ moai-studio-spec βββββββΊ .moai/specs/ parsing β
β ββ moai-studio-agent βββββββΊ agent dispatch β
β ββ moai-studio-plugin-api βββΊ plugin runtime β
β β
β Foundation crates (moai-core, moai-fs, moai-git, ...) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ subprocess / IPC
moai-adk-go (Go CLI orchestration)
ν΅μ¬ μ€κ³:
- Pure Rust: λ©λͺ¨λ¦¬ μμ μ±, μ±λ₯, λΉλ μΌκ΄μ± (Swift λ κ±°μ μ κ±° μλ£)
- GPUI κΈ°λ°: Zed Industriesμ GPU κ°μ UI νλ μμν¬ (μμ‘΄μ± κ³ν)
- libghostty-vt ν΅ν©: ghostty-orgμ μ¬μ¬μ© κ°λ₯ν VT μλΈμμ€ν
- 23κ° Rust crate μν¬μ€νμ΄μ€: λͺ¨λμ μν€ν μ², κ° λλ©μΈλ³ μ± μ λΆλ¦¬
moai-studio/
βββ README.md β μ΄ νμΌ
βββ CHANGELOG.md
βββ LICENSE β Apache 2.0
βββ Cargo.toml β Rust workspace
βββ Cargo.lock
βββ crates/ β 23κ° Rust crate
β βββ moai-claude-host/
β βββ moai-core/
β βββ moai-fs/
β βββ moai-git/
β βββ moai-studio-app/ β λ©μΈ binary (moai-studio)
β βββ moai-studio-ui/ β UI layer
β βββ moai-studio-terminal/ β Terminal multiplexer
β βββ moai-studio-workspace/
β βββ moai-studio-spec/ β SPEC parsing
β βββ ... (16 more crates)
βββ .moai/
β βββ specs/ β SPEC-V3-001~015 λλννΈ λ° κ΅¬ν
β βββ config/
β βββ project/
βββ .github/
β βββ workflows/ β CI/CD (Pane CI, Rust CI, Release Drafter)
β βββ labels.yml
βββ .claude/ β Claude Code μ€μ & rules
β βββ rules/moai/
β βββ skills/
β βββ agents/
βββ scripts/ β λΉλ & λ°°ν¬ μ νΈ
β βββ build-macos.sh
β βββ build-linux.sh
β βββ build-windows.sh
βββ wix/ β Windows MSI ν¨ν€μ§
βββ archive/ β μ΄μ λ²μ (Swift M2 era)
βββ swift-legacy/ β λ κ±°μ Xcode νλ‘μ νΈ
μ£Όλͺ©:
.moai/specs/: EARS νμ SPEC λ¬Έμ, TRUST 5 νμ§ κ²μ¦.github/workflows/: macOS + Linux λ§€νΈλ¦μ€ CI, bench-smoke, Release Draftercrates/: 23κ° λ 립 crate β κ° crateκ° λͺ νν μ± μ μμ
νμ 쑰건: Rust 1.93+, git, ν¬λ‘μ€νλ«νΌ λΉλ νκ²½ (Cargo)
git clone https://github.com/modu-ai/moai-studio.git
cd moai-studio
cargo build --release -p moai-studio-app
./target/release/moai-studioMoAI Studioλ λ€μν μ±λμ ν΅ν΄ μ€μΉν μ μμ΅λλ€. κΆμ₯λλ λ°©λ²λΆν° μμλλ‘ μλ΄ν©λλ€.
# Homebrew tap μΆκ°
brew tap modu-ai/tap
# μ€μΉ
brew install --cask moai-studio# Scoop bucket μΆκ°
scoop bucket add moai https://github.com/modu-ai/scoop-bucket
# μ€μΉ
scoop install moai-studio# yayλ₯Ό μ¬μ©ν μ€μΉ
yay -S moai-studio-bin
# λλ λ€λ₯Έ AUR ν¬λ¬ μ¬μ©
paru -S moai-studio-binGitHub Releasesμμ μ΅μ λ²μ λ€μ΄λ‘λ:
- macOS:
moai-studio-mac-*.dmg(universal binary: arm64 + x86_64) - Linux:
moai-studio-linux-amd64.AppImage - Windows:
moai-studio-windows-x64.msi
# λ€μ΄λ‘λ
wget https://github.com/modu-ai/moai-studio/releases/latest/download/moai-studio-linux-amd64.AppImage
# μ€ν κΆν λΆμ¬
chmod +x moai-studio-linux-amd64.AppImage
# μ€ν
./moai-studio-linux-amd64.AppImageνμ 쑰건: Rust 1.93+, git
# μ μ₯μ ν΄λ‘
git clone https://github.com/modu-ai/moai-studio.git
cd moai-studio
# λΉλ
cargo build --release -p moai-studio-app
# μ€ν
./target/release/moai-studiov0.1.0μ OS λ 벨 μΈμ¦μ 미보μ μνλ‘ releaseλ©λλ€ (USER-DECISION-PK-B (b) κ²°μ , 2026-04-27). μ¬μ©μλ λ€μ ν λ²μ μ°ν μμ μ΄ νμνλ©°, μ΄ν μΌλ° μ±κ³Ό λμΌνκ² λμν©λλ€.
λ€μ΄λ‘λν .dmgλ₯Ό λ§μ΄νΈνκ³ moai-studio.appμ /Applications/λ‘ λλκ·Έν ν, ν°λ―Έλμμ λ€μ λͺ
λ Ήμ ν λ² μ€ν:
xattr -dr com.apple.quarantine /Applications/moai-studio.app
open /Applications/moai-studio.appλλ Finder β moai-studio.app μ°ν΄λ¦ β "μ΄κΈ°" β "μ΄κΈ°" 1ν. μ΄ν Spotlight/Launchpadμμ μΌλ° μ±μ²λΌ μ€ν κ°λ₯.
.msi λλΈν΄λ¦ μ "Windows protected your PC" κ²½κ³ κ° νμλ©λλ€.
1. κ²½κ³ νλ©΄μμ "More info" ν΄λ¦
2. "Run anyway" ν΄λ¦
μ΄ν μμ λ©λ΄μμ μΌλ° μ±μ²λΌ μ€ν κ°λ₯.
.deb / .AppImage λͺ¨λ λ³ μΈμ¦ μμ
μμ΄ μ€νλ©λλ€.
# Debian/Ubuntu
sudo dpkg -i moai-studio-v0.1.0.deb
# AppImage (λͺ¨λ distribution)
chmod +x moai-studio-v0.1.0.AppImage
./moai-studio-v0.1.0.AppImagev0.1.0: unsigned λ°°ν¬λ‘ μΈν OSλ³ μ°ν μμ μ΄ νμν©λλ€. μλ λ΄μ© μ°Έμ‘°νμκ±°λ, v0.1.1+ λ‘ μ κ·Έλ μ΄λνμ¬ ν¨ν€μ§ λ§€λμ λ‘ μλ μ²λ¦¬ν μ μμ΅λλ€.
λ€μ΄λ‘λν .dmgλ₯Ό λ§μ΄νΈνκ³ moai-studio.appμ /Applications/λ‘ λλκ·Έν ν, ν°λ―Έλμμ λ€μ λͺ
λ Ήμ ν λ² μ€ν:
xattr -dr com.apple.quarantine /Applications/moai-studio.app
open /Applications/moai-studio.appλλ Finder β moai-studio.app μ°ν΄λ¦ β "μ΄κΈ°" β "μ΄κΈ°" 1ν. μ΄ν Spotlight/Launchpadμμ μΌλ° μ±μ²λΌ μ€ν κ°λ₯.
.msi λλΈν΄λ¦ μ "Windows protected your PC" κ²½κ³ κ° νμλ©λλ€.
1. κ²½κ³ νλ©΄μμ "More info" ν΄λ¦
2. "Run anyway" ν΄λ¦
μ΄ν μμ λ©λ΄μμ μΌλ° μ±μ²λΌ μ€ν κ°λ₯.
.deb / .AppImage λͺ¨λ λ³ μΈμ¦ μμ
μμ΄ μ€νλ©λλ€.
# Debian/Ubuntu
sudo dpkg -i moai-studio-v0.1.0.deb
# AppImage (λͺ¨λ distribution)
chmod +x moai-studio-v0.1.0.AppImage
./moai-studio-v0.1.0.AppImageν: ν¨ν€μ§ λ§€λμ λ₯Ό μ¬μ©νλ©΄ μμ μ°ν μμ μ΄ νμ μμ΅λλ€. v0.1.1+ λΆν°λ Homebrew, Scoop, AURμμ μλμΌλ‘ μ€μΉλ©λλ€.
v0.1.1+ ν¨ν€μ§ λ§€λμ μ€μΉ: ν¨ν€μ§ λ§€λμ λ₯Ό ν΅ν΄ μ€μΉ μ μλμ κ°μ μ΄μ μ΄ μμ΅λλ€:
- μλ μλͺ λ° μΈμ¦μ μ²λ¦¬
- μ λ°μ΄νΈ μλ¦Ό λ° μλ μ κ·Έλ μ΄λ
- μμ‘΄μ± μλ κ΄λ¦¬
- νμ€ μ€μΉ κ²½λ‘ μ¬μ©
v0.1.0μ V3 μν€ν μ²μ minimum-viable surfaceλ‘ νμ λ©λλ€. λ€μ SPECλ€μ v0.1.x patch λλ v0.2.0+ backlogλ‘ μ΄μλ©λλ€:
- SPEC-V3-005 (File Explorer)
- SPEC-V3-006 (Markdown / Code Viewer)
- SPEC-V3-007 ~ 010 (Agent Dashboard, SPEC Management UI λ±)
- SPEC-V3-DIST-001 (λ°°ν¬ μ±λ λ±λ‘ β μ μλ΄ μ°Έμ‘°)
μμΈν λΆλ₯λ .moai/specs/RELEASE-V0.1.0/plan.md Β§1.2 μ°Έκ³ .
MoAI Studioλ MoAI-ADK νλ μμν¬λ₯Ό ν΅ν΄ SPEC-first κ°λ°μ μ€νν©λλ€.
ν΅μ¬ κ°λ :
- EARS νμ: Ubiquitous, Event-driven, State-driven, Unwanted, Optional μꡬμ¬ν νκΈ°
- TRUST 5 κ²μ΄νΈ: Tested (85%+ coverage), Readable, Unified, Secured, Trackable νμ§ κ²μ¦
- @MX νκ·Έ: μ½λ μμ€ μ΄λ Έν μ΄μ (@MX:NOTE, @MX:WARN, @MX:ANCHOR, @MX:TODO)
- 26κ° μ λ¬Έ μμ΄μ νΈ: manager-spec, expert-backend, expert-frontend, manager-ddd, manager-tdd λ±
νμ¬ κ΅¬ν μ€μΈ SPEC: .moai/specs/
νμ΅ μλ£:
- MoAI-ADK λ¬Έμ (Go CLI νλ μμν¬)
- SPEC-V3-001~015
λͺ¨λ μ½λ λ³κ²½μ λ€μ μλ κ²μ¦μ κ±°μΉ©λλ€:
| κ²μ¬ | λμ | μν |
|---|---|---|
| Fmt + Clippy | macOS + Linux | β |
| Cargo test | macOS + Linux | β (7 contexts required, Β§2.1) |
| Bench-smoke | macOS + Linux | β |
| Tmux-test | macOS + Linux | β³ (--ignored λ²ν·, SPEC-V3-FS-WATCHER-001 pending) |
| Release Drafter | PR λΌλ²¨ κΈ°λ° CHANGELOG | β |
Branch protection (CLAUDE.local.md Β§2):
main: 1κ° approval + 7 required contexts (Squash merge: feature, Merge commit: release/hotfix)develop: 7 required contexts, 0 approvals (Squash merge: feature)release/*,hotfix/*: νμ±ν μ mainκ³Ό λμΌ κ·μΉ
νμ¬: λ¨μΌ κ°λ°μ μ΄μ (Goos Kim, namgoos@gmail.com). μΈλΆ κΈ°μ¬λ νμ©λμ§λ§ μΌκ΄ μ²λ¦¬λ μ μμ΅λλ€.
μ μ₯μ μ μ± :
- branch model:
main(releases only) <release/*<develop<feature/SPEC-XXX-*+hotfix/* - Conventional Commits:
feat(scope): description [AC-XXX]+πΏ MoAI <email@mo.ai.kr> - PR base branch:
develop(λ¨, hotfixλmainμμ λΆκΈ°) - λΌλ²¨λ§: type/ + priority/ + area/ (3μΆ νμ, .github/labels.yml)
- Auto-merge: PR approval + CI GREEN μ μλ λ¨Έμ§ (Squash merge for feature)
μμΈν λ΄μ©: CLAUDE.local.md Β§6
μΆμ²: Claude Agent SDK overview
- β νμ©: "MoAI Studio", "MoAI Agent IDE", "moai + Claude", "Powered by Claude"
- β κΈμ§: "Claude Code" λͺ μΉ μ¬μ©, "Claude Code Agent" λͺ λͺ
- β κΈμ§: claude.ai OAuth λ‘κ·ΈμΈ κ΅¬ν
- β
μΈμ¦:
ANTHROPIC_API_KEY, Bedrock, Vertex, Foundry
- modu-ai/moai-adk β Go CLI μ€μΌμ€νΈλ μ΄μ νλ μμν¬ (μ΄ GUIμ 본체)
- ghostty-org/ghostty β ν°λ―Έλ VT μμ§ (libghostty-vt ν΅ν©)
- zed-industries/zed β GPUI UI νλ μμν¬
- anthropics/claude-code β Claude Code CLI
λ€μ λ¬Έμλ€μ μ§ν κΈ°λ‘ λ° μν€ν μ² κ²°μ μΌλ‘ 보쑴λ©λλ€:
- DESIGN.md (v2) β μ΄κΈ° μν€ν μ²
- DESIGN.v3.md (v3) β SDK μλ² λ κ°μ
- DESIGN.v4.md (v4) β 곡μ λ¬Έμ κΈ°μ€ Rust + UI
- NEXT-STEPS.md β λ€μ λ§μΌμ€ν€ κ³ν
Swift M2 eraμ λ κ±°μ Xcode νλ‘μ νΈλ archive/swift-legacy/μ 보쑴λ©λλ€ (μ°Έκ³ λͺ©μ ).
Apache License 2.0 β μμ λ‘μ΄ μμ©/κ°μΈ μ¬μ©, μμ , λ°°ν¬ νμ©.
Copyright Β© 2026 MoAI Studio (modu-ai organization)
- λ©μΈν μ΄λ: Goos Kim (namgoos@gmail.com)
- μ΄μ μΆμ : GitHub Issues
- ν λ‘ : GitHub Discussions