
aquaman v0.14.0
๐ฑ AI ์์ด์ ํธ๋ฅผ ์ํ ์ ์ผํ ๋ ๋ฆฝ ์๊ฒฉ ์ฆ๋ช ํ๋ก์: ์์ฒด ๋ณผํธ ๊ฒฉ๋ฆฌ(BYOV) ๋ฐ ์ต์ ๊ถํ ์์ฒญ ์ ์ฑ . ํค๋ ์ด๋ฏธ ๋ณด๊ด ์ค์ธ ๊ณณ์ ๊ทธ๋๋ก ๋จ์ ์์ผ๋ฉฐ, ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ ์ ์ฅ๋์ง ์์ต๋๋ค. 1Password, keychain, keepassxc ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๋๊ตฌ์ ํธํ๋ฉ๋๋ค.
๐ฑ Aquaman
๐ฑ AI ์์ด์ ํธ๋ฅผ ์ํ ์ ์ผํ ๋ ๋ฆฝํ ์๊ฒฉ ์ฆ๋ช ํ๋ก์: bring-your-own-vault ๊ฒฉ๋ฆฌ ๋ฐ ์ต์ ๊ถํ ์์ฒญ ์ ์ฑ . ์ฌ๋ฌ๋ถ์ ํค๋ ์ด๋ฏธ ๋ณด๊ดํ๊ณ ์๋ ๊ณณ์ ๊ทธ๋๋ก ๋จ์ ์์ผ๋ฉฐ, ์์ด์ ํธ์ ๋ฉ๋ชจ๋ฆฌ์๋ ์ ๋ ๋ค์ด๊ฐ์ง ์์ต๋๋ค. 1Password, keychain, keepassxc ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๋๊ตฌ์ ํธํ๋ฉ๋๋ค.
Claude Code, OpenClaw ๋๋ Hermes๋ฅผ ์ค์ ํ๋๋ฐ, ์ด์ ์์คํ API ํค๊ฐ ํ๋ฌธ์ผ๋ก ๋ค์ด ์๋ .env ํ์ผ์ ๋ฐ๋ผ๋ณด๊ณ ๊ณ์ค ๊ฒ๋๋ค. ๊ด๋ จ ๊ธ๋ค๋ ์ฝ์ด๋ณด์
จ์ ํ
๊ณ , ์์ด์ ํธ๊ฐ ํ๋กฌํํธ ์ธ์ ์
์ ๋นํ๋ฉด ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์ง๋ ์์ค ๊ฒ๋๋ค. ์ถฉ๋ถํ ์ดํดํฉ๋๋ค.
Aquaman์ ์ธ ๊ฐ์ง ๋ฐฉ์ด ๊ณ์ธต์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค:
- ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ: API ํค๋ ์ก์ ์์ ์ ํค๋ฅผ ์ฃผ์ ํ๋ ๋ณ๋์ ํ๋ก์ ํ๋ก์ธ์ค์ ์กด์ฌํฉ๋๋ค. ์์ด์ ํธ๋ ํค๊ฐ ์๋ ๋ง์ปค๋ง ๋ณด์ ํ๋ฏ๋ก, ์์ด์ ํธ์์ RCE๊ฐ ๋ฐ์ํ๋๋ผ๋ ํค๋ฅผ ์ฝ์ ์ ์์ต๋๋ค. ์ฝ๋ฉ ์์ด์ ํธ๋ ์ฌ๋ฌ๋ถ์ด ์ ์ธํ ์ฐธ์กฐ๋ง, ํ ๋ฒ์ ํ๋์ ๋ช ๋ น์ฉ๋ง ๋ฐ์ต๋๋ค.
- ์์ฒญ ์ ์ฑ : ์๋น์ค๋ณ ๊ท์น์ด ์์ด์ ํธ๊ฐ ํธ์ถํ ์ ์๋ ์๋ํฌ์ธํธ๋ฅผ ์ ์ดํฉ๋๋ค. ๊ด๋ฆฌ์ API๋ฅผ ์ฐจ๋จํ๊ณ , ์ญ์ ๋ฅผ ๋ฐฉ์งํ๋ฉฐ, ์ด์ ์์ฑ์ ํ์ฉํ๋ ์ ์ก์ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค. ๊ฑฐ๋ถ๋ ์์ฒญ์๋ ์ค์ ์๊ฒฉ ์ฆ๋ช ์ด ์ ๋ ์ ๋ฌ๋์ง ์์ต๋๋ค.
- ๋ณ์กฐ ๊ฐ์ง ๊ฐ์ฌ: ๋ชจ๋ ์๊ฒฉ ์ฆ๋ช ์ฌ์ฉ์ SHA-256 ํด์ ์ฒด์ธ์ผ๋ก ๊ธฐ๋ก๋ฉ๋๋ค. ๋ฌด์์ ์ ๊ทผํ๋์ง ์ฆ๋ช ํ๊ณ , ์ฌํ์ ๋ณ์กฐ๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค.
๊ฒฝ๋ก ์ ํ
Aquaman์ ํ๋์ vault์ ํ๋์ daemon์ ๊ณต์ ํ๋ ๋ค ๊ฐ์ ํ๋ ฅ ํจํค์ง๋ก ์ ๊ณต๋ฉ๋๋ค. ํ์ํ ๊ฒ๋ง ์ค์นํ์ธ์:
| ํจํค์ง | ๊ธฐ๋ฅ | ์ค์น ์์ |
|---|---|---|
aquaman-proxy | ํต์ฌ: vault, daemon, ๊ฐ์ฌ, ์ ์ฑ , CLI. ๋๊ตฌ๋ ํ์ํ ๋ถ๋ถ. | ํญ์. |
aquaman-plugin | OpenClaw Gateway ์ด๋ํฐ. Gateway ์์ ์ ํ๋ก์๋ฅผ ์คํํ๊ณ , ๋ชจ๋ธ ๋ฐ Telegram ํธ๋ํฝ์ ํ๋ก์๋ฅผ ํตํด ๋ผ์ฐํ ํ๋ฉฐ, 5๊ฐ์ง ์ธ์ฆ ๋ชจ๋์ ๊ฑธ์ณ 25๊ฐ์ ๋ด์ฅ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. | OpenClaw Gateway๋ฅผ ์ด์ํ๋ ๊ฒฝ์ฐ. https://clawhub.ai/plugins/aquaman-plugin ์์๋ ์ด์ฉ ๊ฐ๋ฅ |
aquaman-coder | AI ์ฝ๋ฉ ์์ด์ ํธ ์ด๋ํฐ. ํ๋ก์ ํธ ๋ฒ์์ aquaman://service/key ์ฐธ์กฐ๋ฅผ Bash ๋๊ตฌ ํธ์ถ๋ง๋ค ํด์ํฉ๋๋ค. | Claude Code๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ(ํ์ฌ) - Codex / OpenCode / Cursor ๊ณํ ์ค. |
aquaman-hermes | Hermes ์์ด์ ํธ ํธ์คํธ ํ๋ฌ๊ทธ์ธ(Python, PyPI). Hermes์ ๋ค์ดํฐ๋ธ ANTHROPIC_BASE_URL/OPENAI_BASE_URL์ ํตํด ์ตํธ์ธ, ํ ํฐ ๊ฒ์ดํธ ๋ฐฉ์์ ๋ฃจํ๋ฐฑ ๋ฆฌ์ค๋๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํ๋ฉฐ, ์ธ์
๋ด /aquaman-status ๋ช
๋ น, ๋๊ตฌ, ์ํ ํ๋ก๋ธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ฒฉ๋ฆฌ๋ ํ๋ก์ ์ธก์์ ์ด๋ฃจ์ด์ง๋ฉฐ, ํ๋ฌ๊ทธ์ธ์ ์๊ฒฉ ์ฆ๋ช
์ ๋ณด์ ํ์ง ์์ต๋๋ค. | Hermes ์์ด์ ํธ ํธ์คํธ๋ฅผ ์ด์ํ๋ ๊ฒฝ์ฐ. pip install aquaman-hermes |
๋จ์ผ aquaman CLI๊ฐ ๋ค ๊ฐ์ง ๋ชจ๋๋ฅผ ๋
ธ์ถํฉ๋๋ค: vault์ ๊ฐ์ฌ๋ฅผ ์ํ ์ต์์ ๋ช
๋ น, OpenClaw ํตํฉ์ ์ํ aquaman openclaw ..., ์ฝ๋ฉ ์์ด์ ํธ ํตํฉ์ ์ํ aquaman coder ...(๋ด๋ถ์ ์ผ๋ก aquaman-coder์ ์์), ๊ทธ๋ฆฌ๊ณ Hermes Python ํจํค์ง๋ฅผ ์ํ aquaman hermes ....
๋น ๋ฅธ ์์
aquaman help, aquaman doctor๊ฐ ์ฌ๋ฌ๋ถ์ ์น๊ตฌ์
๋๋ค.
1. Vault๋ง ์ฌ์ฉ (ํ๋ก์ + ์ฌ๋ฌ๋ถ์ ์ํฌ๋ฆฟ๋ง)```bash
npm install -g aquaman-proxy aquaman setup # backend wizard + store keys aquaman daemon & # start the proxy aquaman credentials list # verify
ํ๋ก์๋ `~/.aquaman/proxy.sock` (UDS, `chmod 0o600`)์์ ์์ ๋๊ธฐํฉ๋๋ค. ์ด๋ค ๋๊ตฌ๋ `http://aquaman.local/<service>/<path>`๋ก ์ง์ ํ๋ฉด ํ๋ก์๊ฐ ์ ํํ vault ๋ฐฑ์๋์์ ํด๋น ์๋น์ค์ ์ธ์ฆ ํค๋๋ฅผ ์ฃผ์
ํฉ๋๋ค.
### 2. OpenClaw Gateway```bash
openclaw plugins install aquaman-plugin # 1. install plugin + proxy
openclaw aquaman setup # 2. backend + keys + plugin wire-up
openclaw # 3. done - proxy starts automatically
๋ฌธ์ ํด๊ฒฐ: openclaw aquaman doctor.
npm์ ์ง์ ์ฌ์ฉํ์๋์? npm install -g aquaman-proxy && aquaman openclaw setup์ ๋์ผํ ์์
์ ์ํํฉ๋๋ค - ํ๋ก์ CLI๋ฅผ ์ค์นํ๊ณ , ํค๋ฅผ ์ ์ฅํ๋ฉฐ, ํ๋ฌ๊ทธ์ธ์ ~/.openclaw/extensions/aquaman-plugin/์ ์ค์นํ๊ณ , ์๊ฒฉ ์ฆ๋ช
์ ์ฐ๊ฒฐํฉ๋๋ค (OpenClaw โฅ 2026.6.5์์๋ SecretRef ์ฐธ์กฐ, ์ด์ ๋ฒ์ ์์๋ auth-profiles.json ํ๋ ์ด์คํ๋).
aquaman openclaw setup์ models.providers.<svc>.baseUrl๊ณผ channels.telegram.apiRoot๋ฅผ ํ๋ก์์ ๋ฃจํ๋ฐฑ ๋ฆฌ์ค๋๋ก ์ง์ ํฉ๋๋ค. OpenClaw์ ๋ชจ๋ธ ์ ์ก๊ณผ ๊ฐ ์ฑ๋์ด ์์ฒด HTTP ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ์ถํ์ฌ fetch ์ธํฐ์
ํฐ๋ฅผ ์ฐํํ๊ธฐ ๋๋ฌธ์
๋๋ค. Telegram ์ด์ธ์ ์ฑ๋์ ์๋ํฌ์ธํธ ์ฌ์ ์๋ฅผ ๋
ธ์ถํ์ง ์์ผ๋ฏ๋ก, ํด๋น ํ ํฐ์ ์ ์ฅ๋๊ณ ๋ง์ด๊ทธ๋ ์ด์
๋์ง๋ง ์ด๊ทธ๋ ์ค ์์ ์ ์ฃผ์
๋์ง ์์ต๋๋ค (packages/plugin/README.md ์ฐธ์กฐ). openclaw.json์ ํ๋ฌ๊ทธ์ธ ์ค์ ์๋์ ์ฑ๋์ ์ถ๊ฐํ์ธ์. ์ง์๋๋ ์ฑ๋๋ก๋ Slack, Discord, Telegram, MS Teams, Matrix, LINE, Twitch, Twilio, BlueBubbles, Mattermost, Nostr, Tlon, Feishu, Google Chat, ElevenLabs, xAI, Cloudflare AI Gateway, Mistral, Hugging Face ๋ฑ์ด ์์ต๋๋ค (์ด 25๊ฐ).
3. AI ์ฝ๋ฉ ์์ด์ ํธ (ํ์ฌ Claude Code)```bash
npm install -g aquaman-proxy aquaman-coder # 1. install daemon + adapter aquaman setup # 2. vault wizard aquaman daemon & # 3. start the proxy
aquaman coder project add my-app --path ~/code/my-app
--env ANTHROPIC_API_KEY=aquaman://anthropic/api_key
--env GITHUB_TOKEN=aquaman://github/token # 4. declare a project
aquaman coder setup claude-code # 5. wire Claude Code hooks
aquaman doctor # 6. verify - should show both vault + coder green
**์ง์ ํ์ธํด ๋ณด์ธ์ (30์ด๋ฉด ์ํ!):** Claude Code๋ฅผ ์ฌ์์ํ๊ณ , `~/code/my-app` ์์์ ์ ์ธ์
์ ์ด๊ณ , ์์ด์ ํธ์๊ฒ ๋ค์์ ์คํํ๋๋ก ์์ฒญํ์ธ์:```
printenv | grep ANTHROPIC_API_KEY
ํธ๋์คํฌ๋ฆฝํธ์์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค:``` ANTHROPIC_API_KEY=[REDACTED:injected-value]
โบ ANTHROPIC_API_KEY is set and available (injected via aquaman vault).
*์์* ํ๋ก์ธ์ค๋ ์ค์ ํค๋ฅผ ๋ณด์์ต๋๋ค(ํ
์คํธ, ๋น๋, MCP ์๋ฒ, import ์คํฌ๋ฆฝํธ ๋ฑ ์ค์ ๋ก ํค๊ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ด ์๋ํฉ๋๋ค). *์์ด์ ํธ* - ์ฆ, ์ฌ๋ฌ๋ถ์ ๋จธ์ ์์ ์ด๋ค ์ฝ๋๋ฅผ ์คํํ ์ง ๊ฒฐ์ ํ๋ ๊ทธ ์กด์ฌ - ๋ ๊ทธ ๊ฐ์ ๊ฒฐ์ฝ ๋ณด์ง ๋ชปํ๋ฉฐ, ๋ฐ๋ผ์ ๋ํ ๊ธฐ๋ก๋, ๋ชจ๋ธ ์ ๊ณต์์ ๋ก๊ทธ๋, ๋์ค์ ์ฌ๋ฌ๋ถ์ ํฐ๋ฏธ๋์ ์คํฌ๋ฆฐ์ท ์ฐ๋ ๋๊ตฌ๋ ๋ณด์ง ๋ชปํฉ๋๋ค.
**์ฌ๋ฌ๋ถ์ ํฐ๋ฏธ๋์์๋ ์ฌ์ฉํ์ธ์.** ๋์ผํ ๋ํผ๋ ์์ด์ ํธ ์์ด๋ ์๋ํฉ๋๋ค. ์ปค๋ฒ๋ ํ๋ก์ ํธ๋ก `cd`ํ ๋ค์ ๋ช
๋ น ์์ ์ ๋์ฌ๋ฅผ ๋ถ์ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค:```bash
cd ~/code/
aquaman-coder exec -- python app/scripts/import.py
stdout/stderr์ ๋ํ ๋์ผํ ํ๊ฒฝ ๋ณ์ ์ฃผ์
, ๋์ผํ ๋ฆฌ๋คํฌ์
. Makefile ํ๊น, ์
ธ ๋ณ์นญ, CI ๋ฌ๋ ๋ฑ ํ์๋ผ๋ฉด .env ํ์ผ์ ์ฐพ์์ ๊ณณ ์ด๋์๋ ๋ฃ์ ์ ์์ต๋๋ค.
Claude Code๊ฐ ~/code/my-app์์ Bash ๋๊ตฌ๋ฅผ ์คํํ๋ฉด, aquaman์ ํ
์ด updatedInput.command๋ฅผ ํตํด ๋ช
๋ น์ ์ฌ์์ฑํ์ฌ aquaman-coder exec ์๋๋ก ๊ฐ์๋๋ค. ์ด ๋ํผ๋:
- ๋ธ๋ก์ปค(UDS๋ฅผ ํตํ
POST /broker/resolve)๋ฅผ ํตํด ๊ฐaquaman://service/key์ฐธ์กฐ๋ฅผ ํด์ํฉ๋๋ค. ์๊ฒฉ ์ฆ๋ช ์ ์์ด์ ํธ์ ์๋ช ์ด ์๋๋ผ ๋จ์ผ ๋ช ๋ น์ ์ํด ๊ตฌ์ฒดํ๋ฉ๋๋ค. - stdout/stderr๋ฅผ ๋ฆฌ๋คํฌํฐ๋ฅผ ํตํด ํ์ดํํ๋ฉฐ, ํด์๋ ๊ฐ ๊ฐ์ ๋ํด ๊ฐ ๊ธฐ๋ฐ ํจํด์ ์์ ์ถ๊ฐํฉ๋๋ค: ์ฃผ์ ๋ ๋ฌธ์์ด์ ํํ์ ๋ฌด๊ดํ๊ฒ ๋ฆฌ๋คํฌ๋ฉ๋๋ค (Atlassian ํ ํฐ, Notion ์ํฌ๋ฆฟ, ๋ด๋ถ API ํค ๋ฑ์ ์๋ ค์ง ์ ๊ณต์ ํ์๊ณผ ์ผ์นํ ํ์๊ฐ ์์ต๋๋ค). ์ผ๋ฐ์ ์ธ ํํ ๊ธฐ๋ฐ ํจํด(sk-ant-, ghp_, sk_live_, AKIAโฆ, JWT, PEM ๋ธ๋ก, ATATT3xFโฆ)์ ์ฐ๋ฆฌ๊ฐ ์ฃผ์ ํ์ง ์์, ์์ ํ๋ก์ธ์ค๊ฐ ๋ ธ์ถํ๋ ์ํฌ๋ฆฟ์ ๋ํ ์ฌ์ธต ๋ฐฉ์ด๋ก์ ์ดํ์๋ ๊ณ์ ์คํ๋ฉ๋๋ค.
- ๋ช ๋ น์ด ์ข ๋ฃ๋๋ฉด ์ ๋ฆฌํฉ๋๋ค.
Claude Code ์๋๋ฐ์ค: ๊ธฐ๋ณธ์ ์ผ๋ก Unix ์์ผ์ ์ฐจ๋จํ๋ฏ๋ก, aquaman coder setup claude-code๋ macOS์์ ํ๋ก์ ์์ผ์ ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํฉ๋๋ค(sandbox.network.allowUnixSockets). Linux์ WSL2๋ ํด๋น ๋ชฉ๋ก์ ๋ฌด์ํ๋ฉฐ, ์ ์ผํ ์ต์
์ sandbox.network.allowAllUnixSockets: true๋ก, ์ด๋ ์๋๋ฐ์ค๋ ๋ช
๋ น์ ๋ชจ๋ Unix ์์ผ์ ์ฝ๋๋ค.
4. Hermes (์์ด์ ํธ ํธ์คํธ)
Hermes๋ ์ฃผ์ ํ ์ ์ก ํ ์ด ์๋ ์ธ๋ถ(Python) ํธ์คํธ์ด๋ฏ๋ก, ๊ฒฉ๋ฆฌ๋ ํ๋ก์ ์ธก์์ ์ํ๋ฉ๋๋ค: ํ๋ก์๊ฐ ์ตํธ์ธ ๋ฐฉ์์ ํ ํฐ ๊ฒ์ดํธ ๋ฃจํ๋ฐฑ ๋ฆฌ์ค๋๋ฅผ ๋ ธ์ถํ๊ณ , Hermes๋ ์์ฒด ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ํด๋น ๋ฆฌ์ค๋๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.```bash npm install -g aquaman-proxy # 1. install daemon aquaman setup # 2. vault wizard aquaman credentials add anthropic api_key sk-ant-... # 3. store a provider key
aquaman hermes setup # 4. enable loopback + write ~/.hermes/.env aquaman daemon & # 5. start the proxy (UDS + loopback) aquaman hermes doctor # 6. verify - listener + env + vault + Hermes
`aquaman hermes setup`์ ๋ฃจํ๋ฐฑ ๋ฆฌ์ค๋๋ฅผ ํ์ฑํํ๊ณ , ์ค์น๋ณ ํ ํฐ์ ์์ฑํ๋ฉฐ, `~/.hermes/.env`(`HERMES_HOME` ์กด์ค)์ aquaman์ด ๊ด๋ฆฌํ๋ ๋ธ๋ก์ ๊ธฐ๋กํฉ๋๋ค: ๋ค์ดํฐ๋ธ `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL`๊ณผ ํ ํฐ๊ณผ ๋์ผํ ์๋ฆฌ ํ์์ api_key๊ฐ ํฌํจ๋ฉ๋๋ค. Hermes๋ ์ด ํ ํฐ์ ํ๋ก๋ฐ์ด๋ ํค๋ก ์ ์กํ๊ณ , ํ๋ก์๋ ์ด๋ฅผ ์ ๊ฑฐํ ๋ค ์ค์ vault ์๊ฒฉ ์ฆ๋ช
์ ์ฃผ์
ํ์ฌ ์
์คํธ๋ฆผ์ผ๋ก ์ ๋ฌํฉ๋๋ค. ํ์ฌ๋ LLM ํ๋ก๋ฐ์ด๋(Anthropic, OpenAI)๋ง ์ง์ํฉ๋๋ค.