
aquaman v0.15.0
๐ฑ AI ์์ด์ ํธ๋ฅผ ์ํ ์ ์ผํ ๋ ๋ฆฝ ์๊ฒฉ ์ฆ๋ช ํ๋ก์: ์์ฒด ๋ณผํธ ๊ฒฉ๋ฆฌ(BYOV) ๋ฐ ์ต์ ๊ถํ ์์ฒญ ์ ์ฑ . ํค๋ ์ด๋ฏธ ๋ณด๊ด ์ค์ธ ๊ณณ์ ๊ทธ๋๋ก ๋จ์ ์์ผ๋ฉฐ, ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ ์ ์ฅ๋์ง ์์ต๋๋ค. 1Password, keychain, keepassxc ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๋๊ตฌ์ ํธํ๋ฉ๋๋ค.
๐ฑ Aquaman
๐ฑ AI ์์ด์ ํธ๋ฅผ ์ํ ์ ์ผํ ๋ ๋ฆฝํ ์๊ฒฉ ์ฆ๋ช ํ๋ก์: bring-your-own-vault ๊ฒฉ๋ฆฌ ๋ฐ ์ต์ ๊ถํ ์์ฒญ ์ ์ฑ . ์ฌ๋ฌ๋ถ์ ํค๋ ์ด๋ฏธ ๋ณด๊ดํ๊ณ ์๋ ๊ณณ์ ๊ทธ๋๋ก ๋จ์ ์์ผ๋ฉฐ, ์์ด์ ํธ์ ๋ฉ๋ชจ๋ฆฌ์๋ ์ ๋ ๋ค์ด๊ฐ์ง ์์ต๋๋ค. 1Password, keychain, keepassxc ๋ฐ ๊ธฐํ ์ฌ๋ฌ ๋๊ตฌ์ ํธํ๋ฉ๋๋ค.
Claude Code, Codex, OpenClaw, Hermes ๋๋ Docker Sandboxes๋ฅผ ์ค์ ํ๋๋ฐ, ์ด์ ์์คํ API ํค๊ฐ ํ๋ฌธ์ผ๋ก ๋ค์ด ์๋ .env ํ์ผ์ ๋ซ์ด์ง๊ฒ ๋ฐ๋ผ๋ณด๊ณ ์์ ๊ฒ๋๋ค. ๊ด๋ จ ๊ธ๋ค์ ์ฝ์ด๋ณด์
จ์ ํ
๊ณ , ์์ด์ ํธ๊ฐ ํ๋กฌํํธ ์ธ์ ์
์ ๋นํ๋ฉด ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์ง๋ ์์ค ๊ฒ๋๋ค. ์ถฉ๋ถํ ์ดํดํฉ๋๋ค.
Aquaman์ ์ธ ๊ฐ์ง ๋ฐฉ์ด ๊ณ์ธต์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค:
- ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ: API ํค๋ ์ก์ ์์ ์ ํค๋ฅผ ์ฃผ์ ํ๋ ๋ณ๋์ ํ๋ก์ ํ๋ก์ธ์ค์ ์กด์ฌํฉ๋๋ค. ์์ด์ ํธ๋ ํค๊ฐ ์๋ ๋ง์ปค๋ง ๋ณด์ ํ๋ฏ๋ก, ์์ด์ ํธ์์ RCE๊ฐ ๋ฐ์ํ๋๋ผ๋ ํค๋ฅผ ์ฝ์ ์ ์์ต๋๋ค. ์ฝ๋ฉ ์์ด์ ํธ๋ ์ฌ๋ฌ๋ถ์ด ์ ์ธํ ์ฐธ์กฐ๋ง, ํ ๋ฒ์ ํ๋์ ๋ช ๋ น์ฉ ๋ฐ์ต๋๋ค.
- ์์ฒญ ์ ์ฑ : ์๋น์ค๋ณ ๊ท์น์ด ์์ด์ ํธ๊ฐ ํธ์ถํ ์ ์๋ ์๋ํฌ์ธํธ๋ฅผ ์ ์ดํฉ๋๋ค. ๊ด๋ฆฌ์ API๋ฅผ ์ฐจ๋จํ๊ณ , ์ญ์ ๋ฅผ ๋ฐฉ์งํ๋ฉฐ, ์ด์ ์์ฑ์ ํ์ฉํ๋ ์ ์ก์ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค. ๊ฑฐ๋ถ๋ ์์ฒญ์๋ ์ค์ ์๊ฒฉ ์ฆ๋ช ์ด ์ ๋ ์ ๋ฌ๋์ง ์์ต๋๋ค.
- ๋ณ์กฐ ๊ฐ์ง ๊ฐ์ฌ: ๋ชจ๋ ์๊ฒฉ ์ฆ๋ช ์ฌ์ฉ์ SHA-256 ํด์ ์ฒด์ธ์ผ๋ก ๊ธฐ๋ก๋ฉ๋๋ค. ๋ฌด์์ ์ ๊ทผํ๋์ง ์ฆ๋ช ํ๊ณ , ์ฌํ์ ๋ณ์กฐ๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค.
๊ฒฝ๋ก ์ ํ
Aquaman์ ํ๋์ vault + ํ๋์ ๋ฐ๋ชฌ์ ๊ณต์ ํ๋ ๋ค ๊ฐ์ ์กฐ์จ๋ ํจํค์ง๋ก ์ ๊ณต๋ฉ๋๋ค. ํ์ํ ๊ฒ๋ง ์ค์นํ์ธ์:
| ํจํค์ง | ๊ธฐ๋ฅ | ์ค์น ์์ |
|---|---|---|
aquaman-proxy | ํต์ฌ: vault, ๋ฐ๋ชฌ, ๊ฐ์ฌ, ์ ์ฑ , CLI. ๋๊ตฌ๋ ํ์ํ ๋ถ๋ถ. | ํญ์. |
aquaman-plugin | OpenClaw Gateway ์ด๋ํฐ. Gateway ์์ ์ ํ๋ก์๋ฅผ ์คํํ๊ณ , ๋ชจ๋ธ ๋ฐ Telegram ํธ๋ํฝ์ ์ด๋ฅผ ํตํด ๋ผ์ฐํ ํ๋ฉฐ, 5๊ฐ์ง ์ธ์ฆ ๋ชจ๋์ ๊ฑธ์ณ 25๊ฐ์ ๋ด์ฅ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. | OpenClaw Gateway๋ฅผ ์ด์ํ๋ ๊ฒฝ์ฐ. https://clawhub.ai/plugins/aquaman-plugin ์์๋ ์ด์ฉ ๊ฐ๋ฅ |
aquaman-coder | AI ์ฝ๋ฉ ์์ด์ ํธ ์ด๋ํฐ. Bash ๋๊ตฌ ํธ์ถ๋ง๋ค ํด์๋๋ ํ๋ก์ ํธ ๋ฒ์์ aquaman://service/key ์ฐธ์กฐ. | Claude Code ๋๋ Codex๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ. |
aquaman-hermes | Hermes ์์ด์ ํธ ํธ์คํธ ํ๋ฌ๊ทธ์ธ (Python, PyPI). ๋ค์ดํฐ๋ธ ANTHROPIC_BASE_URL/OPENAI_BASE_URL์ ํตํด Hermes๋ฅผ ์ตํธ์ธ ๋ฐฉ์์ ํ ํฐ ๊ฒ์ดํธ ๋ฃจํ๋ฐฑ ๋ฆฌ์ค๋๋ก ์ฐ๊ฒฐํ๋ฉฐ, ์ธ์
๋ด /aquaman-status ๋ช
๋ น, ๋๊ตฌ, ์ํ ํ๋ก๋ธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ฒฉ๋ฆฌ๋ ํ๋ก์ ์ธก์์ ์ด๋ฃจ์ด์ง๋ฉฐ, ํ๋ฌ๊ทธ์ธ์ ์๊ฒฉ ์ฆ๋ช
์ ๋ณด์ ํ์ง ์์ต๋๋ค. | Hermes ์์ด์ ํธ ํธ์คํธ๋ฅผ ์ด์ํ๋ ๊ฒฝ์ฐ. pip install aquaman-hermes |
| Docker Sandboxes | ํจํค์ง๊ฐ ์๋๋๋ค: aquaman-proxy๋ง ํ์ํ ๋ณ๋์ ๊ฒฝ๋ก์
๋๋ค. Docker ์์ฒด ํ๋ก์๊ฐ ์ํฌ๋ฆฟ์ ์ฃผ์
ํ๊ณ , aquaman get์ด ํ์ฉ ๋ชฉ๋ก ๋ฐ ๊ฐ์ฌ ๋ก๊ทธ์ ํจ๊ป vault์์ ์ํฌ๋ฆฟ์ ์ ๊ณตํฉ๋๋ค. | Docker Sandboxes์์ ์์ด์ ํธ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ. Quick Start 5 ์ฐธ์กฐ. |
๋จ์ผ aquaman CLI๊ฐ ๋ค ๊ฐ์ง ๋ชจ๋๋ฅผ ๋
ธ์ถํฉ๋๋ค: vault ๋ฐ ๊ฐ์ฌ๋ฅผ ์ํ ์ต์์ ๋ช
๋ น, OpenClaw ํตํฉ์ ์ํ aquaman openclaw ..., ์ฝ๋ฉ ์์ด์ ํธ ํตํฉ์ ์ํ aquaman coder ...(๋ด๋ถ์ ์ผ๋ก aquaman-coder์ ์์) ๊ทธ๋ฆฌ๊ณ Hermes Python ํจํค์ง๋ฅผ ์ํ aquaman hermes ....
Quick Start
aquaman help, aquaman doctor๊ฐ ์ฌ๋ฌ๋ถ์ ์น๊ตฌ์
๋๋ค.
1. Vault๋ง ์ฌ์ฉ (ํ๋ก์ + ์ฌ๋ฌ๋ถ์ ์ํฌ๋ฆฟ๋ง)
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
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, Codex)
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
# (or: aquaman coder setup codex)
aquaman doctor # 6. verify - should show both vault + coder green
์ง์ ํ์ธํด ๋ณด์ธ์ (30์ด ๋ง์ ๊นจ๋ซ๋ ์๊ฐ): Claude Code(๋๋ Codex)๋ฅผ ์ฌ์์ํ๊ณ , ~/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ํ ๋ค์ ๋ช
๋ น ์์ ์ ๋์ฌ๋ฅผ ๋ถ์ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค:
cd ~/code/
aquaman-coder exec -- python app/scripts/import.py
๋์ผํ ํ๊ฒฝ ๋ณ์ ์ฃผ์
, stdout/stderr์ ๋ํ ๋์ผํ ๋ฆฌ๋์
. Makefile ํ๊น, ์
ธ ๋ณ์นญ, CI ๋ฌ๋ ๋ฑ ํ์๋ผ๋ฉด .env ํ์ผ์ ์ฐพ์์ ๊ณณ ์ด๋๋ ๋ฃ์ผ๋ฉด ๋๋ค.
Claude Code๋ Codex๊ฐ ~/code/my-app์์ ์
ธ ๋ช
๋ น์ ์คํํ๋ฉด, aquaman์ ํ
์ด updatedInput.command๋ฅผ ํตํด ๋ช
๋ น์ ์ฌ์์ฑํ์ฌ aquaman-coder exec ์๋๋ก ๊ฐ์ผ๋ค. ์ด ๋ํผ๋:
- ๋ธ๋ก์ปค(
POST /broker/resolve, UDS ๊ฒฝ์ )๋ฅผ ํตํด ๊ฐ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 ์์ผ์ ๊ฐ๋ฐฉํ๋ค.
Codex: ์ค์ ํ Codex์ ์์ ํ
๊ฒํ ์์ aquaman ํ
์ ์น์ธํ๋ผ (Codex๋ ์ ๋ขฐํ๊ธฐ ์ ๊น์ง ์ ํ
์ ๊ฑด๋๋ด๋ค). ์ด ์๋๋ฐ์ค ์ญ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ์์ผ์ ์ฐจ๋จํ๋ฏ๋ก, aquaman coder setup codex๊ฐ ์ด๋ฅผ ํ์ฉํ๋ config.toml ๊ถํ ํ๋กํ์ ์ถ๋ ฅํ๋ค. Codex ํ
์ ์
ธ ์ถ๋ ฅ์ ์ฌ์์ฑํ ์ ์์ผ๋ฏ๋ก, ๋ฆฌ๋์
์ aquaman-coder exec ๋ด๋ถ์์ ์ผ์ด๋๋ค. ์์ธํ ๋ด์ฉ์ packages/coder/README.md ์ฐธ์กฐ.
4. Hermes (์์ด์ ํธ ํธ์คํธ)
Hermes๋ ์ฃผ์ ํ ์ ์ก ํ ์ด ์๋ ์ธ๋ถ(Python) ํธ์คํธ์ด๋ฏ๋ก, ๊ฒฉ๋ฆฌ๋ ํ๋ก์ ์ธก์์ ์ํ๋๋ค: ํ๋ก์๊ฐ ์ตํธ์ธ ๋ฐฉ์์ ํ ํฐ ๊ฒ์ดํธ ๋ฃจํ๋ฐฑ ๋ฆฌ์ค๋๋ฅผ ๋ ธ์ถํ๊ณ , Hermes๋ ์์ฒด ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์ด ๋ฆฌ์ค๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
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