| name | setup |
| description | Use this skill only to inspect or modify a Mixdog user's persisted configuration and settings. Skip Mixdog source changes, builds, installs, releases, and development deployment. |
mixdog Setup Runbook
์ฌ์ฉ์ ์์ฒญ์ ์๋ ๋ ์ํผ์ ๋งค์นญํ๊ณ ํ์ธ โ ๋ณ๊ฒฝ โ ๊ฒ์ฆ ์์๋ก ์งํํ๋ค.
METHODยทPOINTER๋ง ๊ธฐ๋กํ๋ค. ๋ชจ๋ธ๋ช
ยทํ ํฐยทURLยท์ฑ๋ ID ๊ฐ์ ๋ผ์ด๋ธ ๊ฐ์ ์ด ๋ฌธ์์ ๋ฃ์ง ์๊ณ , ๋งค๋ฒ configยท๋ฐํ์ statusยทํ๊ฒฝ๋ณ์์์ ์ฝ๋๋ค.
0. ๊ธฐ์ค๊ณผ ์ ์ฅ ๊ตฌ์กฐ
๊ณตํต ๊ฒฝ๋ก
<mixdogData> ํด์ ์์: MIXDOG_DATA_DIR โ <MIXDOG_HOME|~/.mixdog>/data (src/runtime/shared/plugin-paths.mjs)
- ํตํฉ config:
<mixdogData>/mixdog-config.json
- ํ๋ก์ ํธ config:
<cwd>/.mcp.json, <cwd>/.mixdog/skills/, <cwd>/.mixdog/hooks.json
- TUI ๋ช
๋ น ๋ชฉ๋ก:
src/tui/app/slash-commands.mjs
- TUI ์ค์ ํ๋ธ:
/setting (๋ณ์นญ /settings, /config) โ src/tui/app/settings-picker.mjs
- Desktop ์ค์ :
Ctrl+, โ General / Context / Output style / Providers / Git / Skills / MCP / Plugins / Hooks / Connection / System / Shortcuts / About
- Desktop rail: Projects / Workflows / Schedules / Webhooks / Utilities
์ฌ์ฉ์ ๊ฒฝ๋ก์ ์ง์ ์ฌ๋ถ๋ ํ์ฌ Desktop ๊ตฌํ์ ์ต์ ๊ธฐ์ค์ผ๋ก ํ์ ํ๋ค. TUI๋ Desktop์ ์๋ ๊ณ ๊ธ ๊ฒฝ๋ก๋ฅผ ๋ณด์ํ ๋๋ง ์ฌ์ฉํ๋ฉฐ, ์ ์ฅ๋ง ์๋ณต๋๊ณ ์ค์ ์๋น๋์ง ์๋ key๋ ์ฌ์ฉ์ ์ต์
์ผ๋ก ์ค๋ช
ํ์ง ์๋๋ค.
config ์ค์ฒฉ ๊ท์น
๋ฐํ์ API๋ agent ์ค์ ์ flat object์ฒ๋ผ ๋ค๋ฃจ์ง๋ง, ๋์คํฌ์์๋ ๋๋ถ๋ถ agent ์น์
์๋์ ์ ์ฅํ๋ค.
| ์์ญ | ๋์คํฌ ๊ฒฝ๋ก |
|---|
| Lead ๋ชจ๋ธ | agent.presets[id=workflow-lead] + agent.default |
| ์์ด์ ํธ ๋ผ์ฐํธ | agent.agents.<id> |
| Web Search ๋ชจ๋ธ | agent.webSearchRoute |
| ProviderยทMCPยทํ๋กํยท์คํฌยท์
๋ฐ์ดํธยท์
ธยทautoClearยทcompaction | agent.* |
| Web search ๋๊ตฌ | agent.modules.webSearch.enabled |
| Recap(๋ฐฐ๊ฒฝ ์ฌ์ดํด) | agent.recap.enabled |
| ์ถ๋ ฅ ์คํ์ผ | ๋ฃจํธ outputStyle |
| Webhook server | channels.webhook.* |
| ๋ฉ๋ชจ๋ฆฌ cycle interval | memory.cycle1.interval, memory.cycle2.interval |
| ์์ฑ ์ ์ฌ | voice.enabled |
| TUI ํ
๋ง | ui.theme |
agent.workflowRoutes๋ ์ ์ฅํ์ง ์๋๋ค. ๋ก๋ ์ ๋ ๊ฑฐ์ ๊ฐ์ agent.agents๋ก ์ด๊ดํ ๋ค ์ ๊ฑฐํ๋ค.
API ํคยทํ ํฐยทOAuth ์๊ฒฉ์ config์ ์ฐ์ง ์๋๋ค.
๊ณตํต ์ง๋จ
- MCP:
/mcp, Desktop Settings โ MCP, ๋๋ mcpStatus()
- Skills:
/skills, Desktop Settings โ Skills, ๋๋ skillsStatus()
- Providers:
/providers, Desktop Settings โ Providers, ๋๋ getProviderSetup()
- Webhooks: Desktop Webhooks ๋ทฐ, ๋๋
getChannelSetup() (webhook enabled/port)
- ๋น๋ฐ ์กด์ฌ ์ฌ๋ถ:
hasStoredSecret(account)๋ง ์ฌ์ฉํ๊ณ ๊ฐ์ ์ถ๋ ฅํ์ง ์๋๋ค.
1. ๋ชจ๋ธยท๋ผ์ฐํ
ยท์ํฌํ๋ก
๋ฉ์ธ ๋ชจ๋ธ ๋ณ๊ฒฝ
- ํ์ธ: ์ํ์คยท์ธ์
ํค๋, TUI
/setting โ Model, ๋์คํฌ agent.presets[id=workflow-lead] / agent.default.
- ๋ณ๊ฒฝ:
/model ๋๋ ์ธ์
ํค๋ ๋ชจ๋ธ ํผ์ปค โ provider โ model โ effort/Fast โ ์ ์ฅ (setRoute โ persistLeadRoute).
- ๊ฒ์ฆ: ๋น์ด ์๋ ํ์ฌ ์ธ์
์ ์ฆ์ ๋ฐ์๋๋ค. ๋ํ ์ด๋ ฅ์ด ์์ผ๋ฉด ๊ธฐ์กด ์ธ์
route๋ ์ ์ง๋๊ณ ๋ค์ ์ธ์
๋ถํฐ ์ ์ฉ๋๋ฏ๋ก
/clear ํ provider/model์ ํ์ธํ๋ค.
์จ๋ณด๋ฉ ์ผ๊ด ์ค์ ์ mixdog --onboarding ๋๋ Desktop wizard Main.
ํน์ ์์ด์ ํธ ๋ชจ๋ธ ๋ณ๊ฒฝ
๊ณ ์ ์๋น์ค๋ Maintainer๋ฟ์ด๋ค. worker / heavy-worker / reviewer์ ์ฌ์ฉ์ ์์ด์ ํธ๋ custom ์ ์๋ค.
- ํ์ธ: Desktop rail Workflows โ Default agents / Agents, ๋๋ TUI
/agents. ์ ์ฅ override๋ agent.agents.<id>.
- ๋ณ๊ฒฝ:
- Desktop: Workflows โ ํด๋น ํ Edit
- TUI:
/agents โ agent โ model picker
- API:
setAgentRoute(id, route) (src/session-runtime/workflow-agents-api.mjs)
- ์ ์ฅ ๊ณ์ฝ:
agent.agents.<id>๋ง ๊ฐฑ์ ํ๋ค. workflow-agent-* preset๊ณผ workflowRoutes๋ ์ฐ์ง ์๋๋ค.
- ๊ฒ์ฆ: ๋ชฉ๋ก์ route์
agent.agents.<id>๊ฐ ๊ฐ์ provider/model/effort/Fast๋ฅผ ๊ฐ๋ฆฌํค๋์ง ํ์ธํ๋ค.
Main ์์์ผ๋ก ๋ณต์
- TUI
/agents์ Desktop route editor์๋ override ์ญ์ ๋ฒํผ์ด ์๋ค.
- API:
setAgentRoute(id, { provider: '' })๊ฐ agent.agents.<id>๋ฅผ ์ ๊ฑฐํ๊ณ inherited๋ฅผ ๋ฐํํ๋ค.
- ์๋ ๋ณต์ ์
agent.agents.<id>๋ง ์ ๊ฑฐํ๋ค.
- ์จ๋ณด๋ฉ Default๋ wizard draft๋ง ๋น์ฐ๋ฉฐ, ์ด๋ฏธ ์ ์ฅ๋ override ์ญ์ ๋ฅผ ๋ณด์ฅํ์ง ์๋๋ค.
์ํฌํ๋ก ์ฌ๋กฏ
WORKFLOW_ROUTE_SLOTS = ['lead','agent','memory'] (src/session-runtime/workflow.mjs). ์จ๋ณด๋ฉ ์
๋ ฅ์ฉ์ด๋ฉฐ ๋์คํฌ์๋ ๋จ๊ธฐ์ง ์๋๋ค.
| ์ฌ๋กฏ | ์ ์ฅ | ์ฌ์ฉ์ ๊ฒฝ๋ก |
|---|
lead | agent.presets[id=workflow-lead] + agent.default | /model / ์ธ์
ํค๋ |
memory | agent.agents.maintainer | Desktop Workflows โ Maintainer ๋๋ /agents โ Maintainer |
agent | agent.agents.worker | ์ ์ฉ ํ ์์. onboarding ๋๋ setAgentRoute('worker', โฆ) |
explorer ์ฌ๋กฏ์ ์๋ค. Desktop์ด Explore ํ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ catalog์ explore id๊ฐ ๋จ์ ์์ ๋๋ง์ด๋ค.
์น ๊ฒ์ ๋ชจ๋ธ
- ํ์ธ: Desktop Workflows โ Default agents โ Web Search, TUI
/websearch, getWebSearchRoute(), ๋์คํฌ agent.webSearchRoute.
- ๋ณ๊ฒฝ: Desktop Web Search โ Edit ๋๋ TUI
/websearch โ setWebSearchRoute().
- ๊ฒ์ฆ: ์ ์ฅ route๊ฐ native web-search ๊ฐ๋ฅ provider/model์ธ์ง ํ์ธํ๊ณ ๋ค์
web_search ๋๊ตฌ ํธ์ถ์์ ์ฌ์ฉ๋๋์ง ํ์ธํ๋ค.
/websearch ์ธ์๋ route๋ฅผ ์ง์ ์ง์ ํ์ง ์์ผ๋ฉฐ ํผ์ปค๋ฅผ ์ฐ๋ค.
Web search ๋๊ตฌ ํ ๊ธ
๋ชจ๋ธ๊ณผ ๋ณ๊ฐ๋ค. ์ ์ธ์
์ search/fetch ๋๊ตฌ ๋
ธ์ถ์ ์ ์ดํ๋ค.
- ํ์ธ: Desktop Settings โ General โ Web search, TUI
/setting โ Web search.
- ๋ณ๊ฒฝ: toggle โ
setWebSearchEnabled().
- ์ ์ฅ:
agent.modules.webSearch.enabled.
- ๊ฒ์ฆ: ๋ค์ ์ธ์
์ tool surface.
reasoning effort / Fast
- Effort:
/effort [level] ๋๋ model picker์ โ/โ โ ํ์ฌ Main route์ ์ ์ฅ
- Fast:
/fast [on|off] ๋๋ model picker์ Tab โ ํ์ฌ Main route์ ์ ์ฅ
- Desktop ์ธ์
ํค๋์์๋ ๊ฐ์ Main route๋ฅผ ๋ฐ๊พผ๋ค.
- ์งํ ์ค turn์ ์์ ๊ฐ์ ์ ์งํ๊ณ ์ ๊ฐ์ ๋ค์ turn๋ถํฐ ์ ์ฉ๋๋ค.
- agent/web-search route์ effort/Fast๋ ๊ฐ route์ ๊ฒฉ๋ฆฌ๋๋ฉฐ Main์
modelSettings๋ฅผ ๋ฎ์ด์ฐ์ง ์๋๋ค.
์ํฌํ๋ก ํฉ
- ํ์ธ: Desktop ์ธ์
ํค๋ workflow ํผ์ปค, TUI
/workflow, ๋์คํฌ agent.workflow.active.
- ๋ณ๊ฒฝ:
- ํ์ฑ ํฉ: Desktop ์ธ์
ํค๋ ํผ์ปค ๋๋ TUI
/workflow โ setWorkflow().
- ํฉยท์์ด์ ํธ ์ ์: Desktop rail Workflows์์ ์์ฑยทํธ์งยท์ญ์ . ์ด ํ์ด์ง์๋ ํ์ฑ ํฉ ๋ฒํผ์ด ์๋ค.
- Desktop
/workflowยท/agents๋ Settings๊ฐ ์๋๋ผ Workflows ํ์ด์ง๋ฅผ ์ฐ๋ค.
- ์ ์ฅ: ์ฌ์ฉ์ pack์
<mixdogData>/workflows/<id>/WORKFLOW.md, agent๋ <mixdogData>/agents/<id>/AGENT.md.
- ๊ฒ์ฆ:
listWorkflows() active ๊ฐ๊ณผ pack agent ๋ชฉ๋ก, listAgents() route๋ฅผ ํ์ธํ๋ค.
2. Providerยท์ธ์ฆยท๋น๋ฐ
Provider API ํค
- ํ์ธ:
/providers, /setting โ Providers, ๋๋ Desktop Settings โ Providers์ authenticated/env/stored ์ํ.
- ๋ณ๊ฒฝ:
- TUI: provider โ Add/Replace API key
- Desktop: unauthenticated API-key provider์ secret ์
๋ ฅ. ์ ์ฅ key ๊ต์ฒด๋ Forget ํ ๋ค์ ์ ์ฅํ๋ค.
- env๋ก authenticated์ธ provider๋ Desktop ์
๋ ฅ๋์ด ์จ๊ฒจ์ง๋ฏ๋ก ํด๋น env๋ฅผ ๋ณ๊ฒฝํ๋ค.
- API:
saveProviderApiKey(provider, secret)
- ์ ์ฅ: OS keychain account
agent.<provider>.apiKey. ๋์คํฌ agent.providers.<provider>์๋ enabled/baseURL ๋ฑ ๋น๋ฐ์ด ์๋ ๊ฐ๋ง ๋จ๋๋ค.
- ๊ฒ์ฆ: provider๊ฐ authenticated์ด๊ณ
/model catalog๊ฐ ๋ก๋๋๋์ง ํ์ธํ๋ค.
ํ์ค provider env๊ฐ ์์ผ๋ฉด ๋ฐํ์์์ ์ฐ์ ์ฌ์ฉํ ์ ์๋ค. ์ค์ env ์ด๋ฆ์ src/runtime/shared/config.mjs์์ ์ฝ๋๋ค.
OAuth ๋ก๊ทธ์ธ / ํด์
- ํ์ธ: Providers ํ๋ฉด์ OAuth provider authenticated ์ํ.
- ๋ณ๊ฒฝ: provider โ Login/Re-login (
beginOAuthProviderLogin) ๋๋ Forget login (forgetProviderAuth).
- ์ ์ฅ: provider๋ณ credential ํ์ผ ๋๋ provider auth ์ ์ฅ์. ๊ฒฝ๋กยท๊ฐ์ ๋ฌธ์์ ๋ณต์ฌํ์ง ์๋๋ค.
- ๊ฒ์ฆ: authenticated ์ํ์ model catalog๋ฅผ ํ์ธํ๋ค.
๋ก์ปฌ Provider
- ํ์ธ: Providers์ local provider enabled/detected/baseURL.
- ๋ณ๊ฒฝ: provider โ Enable / Set URL, Update Base URL, Disable (
setLocalProvider).
- ์ ์ฅ:
agent.providers.<id>.enabled/baseURL.
- ๊ฒ์ฆ: provider status์ model catalog๋ฅผ ํ์ธํ๋ค.
Usage ๋ก๊ทธ์ธ
- OpenCode Go ๋ฑ ์ง์ provider: Providers โ Usage login (browser) (
loginOpenCodeGoUsage).
- ์๊ฒฉ์ OS keychain์ ์ ์ฉ account์ ์ ์ฅํ๋ค.
/usage ์๋ก๊ณ ์นจ์ผ๋ก ๊ฒ์ฆํ๋ค.
Secrets ์์น
| account | ์ฉ๋ |
|---|
agent.<provider>.apiKey | Provider API key |
agent.openai.usageSessionKey | OpenAI usage |
agent.opencode-go.authCookie | OpenCode Go usage |
๊ฐ์ ์ถ๋ ฅํ์ง ์๊ณ hasStoredSecret()์ผ๋ก ์กด์ฌ๋ง ํ์ธํ๋ค. MCP env๋ keychain์ด ์๋๋ผ ์์ ํ๋ก์ธ์ค ํ๊ฒฝ์ด๋ค.
3. ์ถ๋ ฅยทํ๋กํยท์ธ์
ยท๋ฉ๋ชจ๋ฆฌยท์
ธ
์ถ๋ ฅ ์คํ์ผ
- ํ์ธ:
/OutputStyle status, /setting โ Output style, Desktop Settings โ Output style, ๋์คํฌ ๋ฃจํธ outputStyle.
- ๋ณ๊ฒฝ:
/OutputStyle, /style, /OutputStyle <id>, ๋๋ Desktop์์ ์ ํ โ setOutputStyle().
- ์ฌ์ฉ์ ์ ์:
<mixdogData>/output-styles/<id>.md.
- ๊ฒ์ฆ: ๋ํ ์ด๋ ฅ์ด ์์ผ๋ฉด ํ์ฌ chat์๋ ์ ์ฉ๋์ง ์์ผ๋ฏ๋ก
/clear ํ ํ์ธํ๋ค.
๋ฃจํธ outputStyle๋ง ์ฝ๊ณ ์ด๋ค. agent.outputStyle์ ๋ ์ด์ ์ฝ์ง ์์ผ๋ฏ๋ก ๋ฐ๊ฒฌํ๋ฉด ์ ๊ฑฐํ๋ค.
์ฌ์ฉ์ ์ ์ ์คํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํธ์ธ ๊ณตํต ํฌ๋งท(output-styles/common.md)์ ์์ํ๋ค. ์ ๋ฉด ๊ต์ฒด๋ frontmatter์ keep-shared-format: false๋ฅผ ๋ฃ๊ณ , ๊ณตํต ํฌ๋งท ์์ฒด๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด <mixdogData>/output-styles/common.md๋ฅผ ๋๋ค.
ํ
๋ง
- TUI:
/theme [id] ๋๋ /setting โ Theme; ์ฆ์ ์ ์ฉ, ui.theme์ ์ ์ฅ.
- Desktop: Settings โ General โ Theme; Desktop
localStorage์๋ง ์ ์ฅํ๋ฉฐ TUI ํ
๋ง์ ๋
๋ฆฝ์ ์ด๋ค.
ํ๋กํ โ ํธ์นญยท์๋ต ์ธ์ด
- ํ์ธ:
/profile, /setting โ Profile, Desktop Settings โ General โ Profile, ๋์คํฌ agent.profile.
- ๋ณ๊ฒฝ: title/language โ
setProfile(). ๋ฏธ์ง์ language id๋ system์ผ๋ก ์ ๊ทํ๋๋ค.
- ๊ฒ์ฆ:
getProfile()๊ณผ ์ ์ธ์
์ system prompt ๋ฐ์์ ํ์ธํ๋ค.
์๋ต ์ธ์ด(agent.profile.language)์ Desktop Display language(chrome UI, localStorage)๋ ๋ณ๊ฐ๋ค.
Auto-clear
- ํ์ธ:
/autoclear status, /setting โ Auto-clear, Desktop Settings โ Context, ๋์คํฌ agent.autoClear.
- ๋ณ๊ฒฝ:
/autoclear [on|off|duration]
- TUI
/setting โ Auto-clear โ Advanced์์ provider๋ณ idle window
- Desktop Context์์ toggleยทprovider๋ณ durationยทReset
- ๊ฒ์ฆ:
getAutoClear()์ enabled/idleMs/providerDefaults. ์ต์ duration์ 1๋ถ์ด๋ค.
Auto-compact
- ํ์ธ:
/setting โ Auto-compact, Desktop Settings โ Context, ๋์คํฌ agent.compaction.
- ๋ณ๊ฒฝ: Auto-compact toggle โ
setCompactionSettings({ auto }).
- ๊ณ ์ ๊ณ์ฝ: Compact type์
Fast-track (fixed)์ด๋ฉฐ UI ๋ณ๊ฒฝ ๋ถ๊ฐ. memory recap์ด ๊บผ์ ธ๋ recall-fasttrack์ ์ ์ง๋๋ค.
Memory / Recap / Core Memory
๊ตฌ๋ถ
- Desktop Settings โ General โ Memory์ TUI Memory๋ ๋ง์คํฐ๋ค.
setMemoryToolsEnabled()๊ฐ ๋ชจ๋ธ memory/recall ๋๊ตฌยทcore-memory ์ฃผ์
ยท๋ฐฐ๊ฒฝ recap์ ํจ๊ป ์์ง์ธ๋ค.
- TUI Memory cycles๋ง recap ๋จ๋
ํ ๊ธ์ด๋ค (
setRecapEnabled()). Desktop์๋ ์ด ํ์ด ์๋ค.
- ์ง์ ์ ์ฅ์
agent.recap.enabled. memoryTools ๋์คํฌ ํค๋ฅผ ์ฌ์ฉ์ ์ต์
์ผ๋ก ํธ์งํ์ง ์๋๋ค.
- ํ์ธ: Desktop General Memory, TUI
/setting โ Memory / Memory cycles, /memory.
- ๋ณ๊ฒฝ: ๋ง์คํฐ๋
setMemoryToolsEnabled(), ์ฌ์ดํด๋ง์ TUI Memory cycles โ setRecapEnabled().
- Core Memory: Desktop Settings โ Context โ Core memories, TUI
/memory ๋๋ /setting โ Core memories.
- ๊ฒ์ฆ:
getToolModuleSettings().memory, getRecapSettings().enabled. toggle์ ์ฌ์์ ์์ด ๋ค์ ์ธ์
/cycle๋ถํฐ ์ ์ฉ๋๋ค.
Memory cycle interval
TUIยทDesktop interval ํธ์ง UI๋ ์๋ค.
- ํ์ธ/๋ณ๊ฒฝ: ๋์คํฌ
memory.cycle1.interval, memory.cycle2.interval duration ๋ฌธ์์ด.
- ๊ฒ์ฆ: config ์ฌ์ฝ๊ธฐ. ์ฌ์์์ด ๊ฐ์ฅ ํ์คํ ์ ์ฉ ๊ฒฝ๊ณ๋ค.
์์คํ
์
ธ
- ํ์ธ:
/setting โ System shell, getSystemShell()์ command/effective/source, ๋์คํฌ agent.shell.command.
- ๋ณ๊ฒฝ:
/setting โ System shell โ command ์
๋ ฅ; ๋น ๊ฐ์ ์๋ ์ ํ (setSystemShell()).
- ์ ์ฉ: ๋ฐํ์ shell resolver๊ฐ ์ฆ์ ๊ฐฑ์ ๋๋ค.
MIXDOG_SHELL์ config๊ฐ ๋น์ด ์์ ๋ env fallback์ด๋ค.
- ๊ฒฝ๊ณ: Desktop Settings์๋ ์
ธ override๊ฐ ์๋ค.
Desktop ์ ์ฉ ๋ก์ปฌ ์ค์
- General โ Display language: Desktop chrome ์ธ์ด.
localStorage. ๋ณ๊ฒฝ ์ ์ฐฝ reload.
- General โ Side panels: Desktop local preference
- Git: GitHub CLI ๋ก๊ทธ์ธ, commit format(Plain / Conventional / Custom), Auto commit message. mixdog-config๊ฐ ์๋๋ค.
- System โ Keep system awake while working: Electron desktop settings
- Connection: phone/browser pairing
- Shortcuts / About: ์กฐํยท๋งํฌ ์ค์ฌ์ด๋ฉฐ runtime config ๋ ์ํผ๊ฐ ์๋๋ค.
- Utilities rail: Studio / Terminal / Explorer ์คํ. ์ค์ ์ ์ฅ์ด ์๋๋ค.
4. MCPยทSkillsยทPluginsยทHooks
MCP ์ถ๊ฐ
UI์๋ ์๋ฒ ์ถ๊ฐยท์ญ์ ยท์ ์ฒด ์ฌ์ฐ๊ฒฐ ์ก์
์ด ์๋ค.
- ํ์ธ:
/mcp ๋๋ Desktop Settings โ MCP, mcpStatus(), <cwd>/.mcp.json.
- ๋ณ๊ฒฝ:
- ์ ์ญ: ๋์คํฌ
agent.mcpServers.<name> ํธ์ง
- ํ๋ก์ ํธ:
<cwd>/.mcp.json์ mcpServers wrapper ๋๋ bare name map ํธ์ง
- API ์๋ํ:
addMcpServer(), removeMcpServer(), reconnectMcp()
- transport:
- stdio:
type, command, args, cwd, env
- URL:
http, sse, ws์ url, ์ ํ headers
- ์ ์ฝ: API๋ก stdio๋ฅผ ์ถ๊ฐํ ๋
cwd๋ ํ์ฌ ํ๋ก์ ํธ ์๋์ฌ์ผ ํ๋ค.
- ๊ฒ์ฆ:
connected, toolCount, source, transport, error.
ํ์ผ์ ์ง์ ํธ์งํ๋ค๋ฉด mixdog ์ฌ์์์ด ๊ธฐ๋ณธ ์ ์ฉ ๊ฒฝ๋ก๋ค.
MCP enable / disable
TUI /mcp์ Desktop MCP ๋ชจ๋ ์๋ฒ๋ณ toggle์ ์ง์ํ๋ฉฐ live connection๊ณผ ์ธ์
tool surface๋ฅผ ์ฌ๋๊ธฐํํ๋ค.
source: project: <cwd>/.mcp.json ํญ๋ชฉ์ enabled๋ฅผ ์ง์ ์ ์ฅ
source: config: ์๋ฒ ์ ์๋ ์ ์งํ๊ณ ํ์ฌ ํ๋ก์ ํธ์ฉ override๋ฅผ agent.mcpProjectOverrides[normalizedCwd][name].enabled์ ์ ์ฅ
- ์ฆ, ์ ์ญ config ์๋ฒ๋ฅผ toggleํด๋ ์ ์ญ
agent.mcpServers.<name>.enabled๋ฅผ ๋ฐ๊พธ์ง ์๋๋ค.
- turn ์คํ ์ค toggle์ turn ์ข
๋ฃ ๊ฒฝ๊ณ์์ ์ธ์
์ ์ฌ์์ฑํ๋ค.
MCP ์ง๋จ
/mcp์ source/transport/error๋ฅผ ๋จผ์ ์ฝ๋๋ค.
- ํ๋ก์ ํธ์ ์ ์ญ ์ด๋ฆ ์ถฉ๋ ์
<cwd>/.mcp.json์ด ์ฐ์ ํ๋ค.
- stdio๋ commandยทargsยทcwdยท์์ env, URL transport๋ schemeยทendpointยทheadersยท๋ฐฉํ๋ฒฝ์ ํ์ธํ๋ค.
connected:true์ ๊ธฐ๋ tool ๋
ธ์ถ๋ก ๊ฒ์ฆํ๋ค.
Skills enable / disable
- ํ์ธ:
/skills ๋๋ Desktop Settings โ Skills.
- ๋ณ๊ฒฝ: Enable/Disable โ
setDisabledSkills().
- ์ ์ฅ: ๋์คํฌ
agent.skills.disabled.
- ์ ์ฉ: prompt/tool surface๋ ๋ค์ ์ธ์
๋ถํฐ ๊ฐฑ์ ๋๋ฏ๋ก
/clear ํ ๊ฒ์ฆํ๋ค.
Desktop Skills๋ enable/disable๋ง ํ๋ค. TUI /skills๋ ๊ฐ์ ํ ๊ธ์ ๋ํด ํ์ฑ skill์ ๋ค์ ์์ฒญ์ ๋ถ์ด๋ use ์ก์
์ด ์๋ค.
Skill ์์ฑ
UI ์์ฑ ์ก์
์ ์๋ค.
- ํ๋ก์ ํธ:
<cwd>/.mixdog/skills/<name>/SKILL.md
- ๊ธ๋ก๋ฒ:
<mixdogData>/skills/<name>/SKILL.md
- API
addSkill()์ ํ๋ก์ ํธ skill skeleton๋ง ์์ฑํ๋ค.
- ์ฐ์ ์์: ํ๋ก์ ํธ โ ๊ธ๋ก๋ฒ โ plugin; frontmatter
name์ด ๊ฐ์ผ๋ฉด ๋จผ์ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ด ์ด๊ธด๋ค.
- frontmatter์
name, description์ ๋ฃ๊ณ /skills์์ ๊ฒ์ฆํ๋ค.
Plugins
- ํ์ธ:
/plugins ๋๋ Desktop Settings โ Plugins.
- ์ถ๊ฐ: Git URL,
owner/repo, ๊ธฐ์กด local path โ addPlugin().
- ๊ด๋ฆฌ: update/metadata refresh, plugin MCP enable/reconfigure, root/MCP name ๋ณต์ฌ, uninstall.
- ์ ์ฅ:
<mixdogData>/plugins/registry.json; managed Git checkout์ <mixdogData>/plugins/installed/.
- ๊ฒ์ฆ:
pluginsStatus(), plugin skill ์, MCP server ๋
ธ์ถ.
Plugins ํ๋ฉด์๋ ์ผ๋ฐ์ ์ธ โplugin ํ์ฑ/๋นํ์ฑโ toggle์ด ์๋ค. MCP์ skill ํ์ฑ ์ํ๋ ๊ฐ๊ฐ MCP/Skills ํ๋ฉด์์ ๊ด๋ฆฌํ๋ค.
Hooks
- ํ์ธ:
/hooks ๋๋ Desktop Settings โ Hooks, hooksStatus().
- UI ๋ฒ์: ๊ธฐ์กด rule์ Enable/Disable๋ง ์ง์ํ๋ค. UI์์ add/delete/edit์ ํ์ง ์๋๋ค.
- ์ถ๊ฐยท์์ ยท์ญ์ : hook config ํ์ผ์ ํธ์งํ๊ฑฐ๋ runtime
addHookRule() / deleteHookRule()์ ์ฌ์ฉํ๋ค.
- ๊ฒ์ ๊ฒฝ๋ก:
MIXDOG_HOOKS_FILE โ ํ๋ก์ ํธ .mixdog/hooks.jsonยท.mixdog/hooks/hooks.json โ ๊ธ๋ก๋ฒ <mixdogData>/hooks.jsonยทhooks/hooks.json โ plugin hooks.
- ํ์: ํ์ค
{ "hooks": { "<Event>": [{ "matcher": "...", "hooks": [...] }] } }; ๋ ๊ฑฐ์ before-tool ๋ฐฐ์ด๋ ์ฝ๋๋ค.
- ๊ฒ์ฆ: mtime ๊ธฐ๋ฐ ์๋ reload ํ Hooks ๋ชฉ๋ก๊ณผ ๋์ event ๋ฐ๋์ ํ์ธํ๋ค.
5. VoiceยทAutomation
Discord/Telegram messaging์ ์ ๊ฑฐ๋๋ค. schedules/webhooks ์๋ํ์ voice transcription๋ง ๋จ๋๋ค.
Voice transcription
- ํ์ธ:
/channels โ Voice ๋๋ Desktop Settings โ Channels โ Voice transcription, ๋์คํฌ voice.enabled.
- ๋ณ๊ฒฝ: toggle โ managed Whisper/model/ffmpeg๊ฐ ์์ผ๋ฉด ์ค์น ํ ํ์ฑํ.
- ๊ฒ์ฆ: voice status์ ์ค์ channel voice message ์ ์ฌ.
Schedules / Webhooks
๊ด๋ฆฌ UI๋ Desktop rail ์ ์ฉ์ด๋ค.
- Desktop Schedules: ์์ฑยทํธ์งยทpause/resumeยทrun nowยท์ญ์
- Desktop Webhooks: ์์ฑยทํธ์งยทpause/resumeยทsecret regenerateยทURL/secret ๋ณต์ฌยท์ญ์
- TUI palette์๋
/schedules, /webhooks๊ฐ ์๊ณ ์ง์ ์
๋ ฅํ๋ฉด Desktop์์ ๊ด๋ฆฌํ๋ผ๋ notice๋ง ํ์ํ๋ค.
Schedules
- ์ ์ฅ์: PG
scheduler.schedules (schedules-db.mjs)
- ๋ฐ๋ณต:
time 5/6-field cron, ์ ํ days; 1ํ: at; ๋์ XOR
- UI frequency: Hourly / Daily / Weekdays / Weekly / One-shot
- modelยทeffortยทFast, workflow, project cwd, attachments, instructions, enabled
- delivery:
app / channel / both
Webhooks
- ์ ์ฅ์: PG
webhooks.endpoints (webhooks-db.mjs)
- parser:
generic / github / stripe / sentry
- modelยทeffortยทFast, workflow, project cwd, attachments, instructions, enabled, delivery
- ์ endpoint๋ signing secret์ ์์ฑํ๋ค. ์ผ๋ฐ edit์์ ๋น secret์ ๊ธฐ์กด ๊ฐ์ ๋ณด์กดํ๊ณ , rotate๋ ๋ช
์์ regenerate๋ก ํ๋ค.
- list/status ๊ฒฝ๋ก๋ plaintext secret์ ๋ด๋ณด๋ด์ง ์๊ณ
secretSet๋ง ์ ๊ณตํ๋ค.
๊ธฐ์กด ํ์ผํ schedules๋ ์ต์ด DB init ๋ import ํ schedules.migrated๋ก ๋ณด์กดํ๋ค. ๊ธฐ์กด webhook ๋๋ ํฐ๋ฆฌ๋ ์ฑ๊ณต์ ์ผ๋ก ๋ชจ๋ import๋ ๊ฒฝ์ฐ ์ญ์ ํ๋ค.
ํ์ฑ schedule/webhook์ด ์์ผ๋ฉด automation worker๊ฐ ์๋ ์์ํ๋ค.
6. Projectยท์
๋ฐ์ดํธยท์ง๋จ
ํ๋ก์ ํธ ์ ํ
- ํ์ธ: ์ํ์ค cwd,
/project, Desktop rail Projects.
- ๋ณ๊ฒฝ:
/project [path] ๋๋ picker. TUI picker๋ ๋ฑ๋กยท์์ฑยทrename๋ ์ง์ํ๋ค.
- ์ ์ฉ: cwd ๋ณ๊ฒฝ ์ ํ๋ก์ ํธ
.mcp.json๊ณผ skills๋ฅผ ๋ค์ ์ฝ๊ณ MCP๋ฅผ ์ฌ์ฐ๊ฒฐํ๋ค.
- ๊ฒ์ฆ: cwd,
/mcp source, /skills project ํญ๋ชฉ.
Git (Desktop ์ ์ฉ)
- ํ์ธ: Desktop Settings โ Git.
- ๋ณ๊ฒฝ: GitHub CLI Connect/Disconnect, commit Format, Auto commit message. identity๋ ์ฐ๊ฒฐ๋ GitHub ๊ณ์ ์์ ๋น์ด ์์ ๋ ์๋ ๋๊ธฐํํ๋ค.
- ์ ์ฅ: Desktop local preference + git global config. mixdog-config ๋ ์ํผ๊ฐ ์๋๋ค.
- ๊ฒ์ฆ: Git panel์ authenticated/account์ ๋ค์ ์๋ commit ํํธ.
์
๋ฐ์ดํธ
- TUI:
/update ๋๋ /setting โ Update
- Desktop: Settings โ System โ Update
- ์ง์ ๋์: check, auto-update toggle, update install; ์ค์น ํ ์ฌ์์ ํ์
- ์ ์ฅ:
agent.update.auto
Doctor
- TUI
/doctor
- Desktop Settings โ System โ Doctor
- runtime, providers, integrations, local installation ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค.
๋ ๊ฑฐ์ config ๊ฐ์ฌ
Desktop๊ณผ ํ์ฌ runtime์์ ์๋น๋์ง ์๋ ์๋ key๋ ์ฌ์ฉ์ ์ต์
์ด ์๋๋ค. ๋ฐ๊ฒฌํ๋ฉด config ๋ฐฑ์
ํ ์ ๊ฑฐํ๊ณ , writer๊ฐ ๋ค์ ์์ฑํ์ง ์๋์ง ์ฌ์์ ๋ค ํ์ธํ๋ค.
| ๋ ๊ฑฐ์ key | ์ฒ๋ฆฌ |
|---|
agent.workflowRoutes | agent.agents๋ก ์ด๊ด๋ ๋ค ์ ๊ฑฐ. ์๋ ํธ์ง ๊ธ์ง |
agent.fastModels | ์ ๊ฑฐ (์ด๊ด ์์; modelSettings.<provider/model>.fast๋ง ์ ํจ) |
agent.agentMaintenance, agent.runtime | ์ ๊ฑฐ |
remote.autoStart | ์ ๊ฑฐ; Remote๋ session header์์ ์๋ claim |
ui.mouseMode | ์ ๊ฑฐ; ui.theme์ TUI ํํ ์ค์ |
channels.backend, channels.provider, channels.channel.* | ์ ๊ฑฐ; Discord/Telegram messaging ์ํด๋ก ์ ๋ถ ๋ฐ๋ key |
channels.quiet, channels.schedules | ์ ๊ฑฐ; schedule์ PG๊ฐ ๋จ์ผ ์ ์ฅ์ |
channels.webhook.ngrokDomain, channels.webhook.respectQuiet | ์ ๊ฑฐ; endpoint URL์ Desktop Webhooks๊ฐ ๋ฐ๊ธ |
agent.outputStyle | ์ ๊ฑฐ (์ด๊ด ์์; ๋ฃจํธ outputStyle๋ง ์ ํจ) |
๋ค์ ํญ๋ชฉ์ ๋ ๊ฑฐ์์ฒ๋ผ ๋ณด์ฌ๋ ํํ์ด๋ฏ๋ก ์ ์งํ๋ค: ๋ฃจํธ outputStyle, agent.shell, agent.modules, compaction์ type/compactType๊ณผ recall tuning fields.
๋ถ๋ก โ ํต์ฌ ์คํค๋ง
MCP
{
"agent": {
"mcpServers": {
"<name>": {
"type": "stdio",
"command": "...",
"args": [],
"cwd": "<project-subdir>",
"env": {}
}
},
"mcpProjectOverrides": {
"<normalized-cwd>": {
"<name>": { "enabled": false }
}
}
}
}
URL transport๋ type + url + ์ ํ headers๋ฅผ ์ฌ์ฉํ๋ค.
Channels
{
"channels": {
"webhook": {
"enabled": true,
"port": 3333
}
},
"voice": { "enabled": false }
}
์ฐ์ ์์์ ๊ธ์ง
- MCP ์ด๋ฆ ์ถฉ๋: project
.mcp.json > agent.mcpServers
- Skill ์ด๋ฆ ์ถฉ๋: project > global > plugin
Mixdog.md ์๋ ํ๋กฌํํธ ๋ก๋๋ ์๋ค. skill/core memory๋ฅผ ์ฌ์ฉํ๋ค.
- ํ์ธ๋์ง ์์ key๋ ์ถ์ธกํ์ง ๋ง๊ณ TODO๋ก ๋จ๊ธด๋ค.
- UI์ ์๋ runtime API๋ฅผ ์ฌ์ฉ์ UI์ฒ๋ผ ์ค๋ช
ํ์ง ์๋๋ค.
- config ์๋ ํธ์ง ์ ๋ฐฑ์
ํ๊ณ JSON ์ ํจ์ฑ์ ์ ์งํ๋ค.