mixdog 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +117 -434
  2. package/package.json +18 -17
  3. package/scripts/gate-local.mjs +93 -0
  4. package/scripts/lib/gate-scheduler.mjs +24 -0
  5. package/scripts/lib/run-node-tests.mjs +5 -1
  6. package/scripts/release-paths.mjs +22 -1
  7. package/scripts/test-direct.mjs +2 -1
  8. package/scripts/test.mjs +3 -1
  9. package/src/defaults/agents.json +0 -12
  10. package/src/defaults/mixdog-config.template.json +1 -2
  11. package/src/defaults/skills/docx/SKILL.md +7 -4
  12. package/src/defaults/skills/docx/references/html.md +46 -0
  13. package/src/defaults/skills/docx/references/native-authoring.md +18 -4
  14. package/src/defaults/skills/pdf/SKILL.md +10 -2
  15. package/src/defaults/skills/pdf/references/html.md +64 -0
  16. package/src/defaults/skills/pptx/references/html.md +1 -1
  17. package/src/defaults/skills/xlsx/SKILL.md +7 -3
  18. package/src/defaults/skills/xlsx/references/html.md +40 -0
  19. package/src/defaults/skills/xlsx/references/report-design.md +21 -4
  20. package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch/preset.mjs +1 -1
  21. package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +2 -3
  22. package/src/runtime/agent/orchestrator/internal-agents.mjs +1 -1
  23. package/src/runtime/agent/orchestrator/providers/account-pool.mjs +6 -5
  24. package/src/runtime/agent/orchestrator/session/compact/execution-tail.mjs +6 -3
  25. package/src/runtime/agent/orchestrator/session/compact/runner.mjs +6 -2
  26. package/src/runtime/agent/orchestrator/session/loop/fresh-context.mjs +50 -9
  27. package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +28 -1
  28. package/src/runtime/agent/orchestrator/session/manager/session-crud.mjs +4 -1
  29. package/src/runtime/agent/orchestrator/session/pre-send-compact.mjs +34 -8
  30. package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +10 -2
  31. package/src/runtime/agent/orchestrator/session/transcript-restore/agent-envelope.mjs +1 -1
  32. package/src/runtime/agent/orchestrator/session/transcript-restore/restore.mjs +1 -0
  33. package/src/runtime/agent/orchestrator/tools/builtin/shell-analysis.mjs +3 -1
  34. package/src/runtime/attachments/pdf-extract.mjs +7 -3
  35. package/src/runtime/computer-bridge/client.mjs +1 -1
  36. package/src/runtime/memory/index.mjs +4 -15
  37. package/src/runtime/memory/lib/core-memory-store.mjs +1 -1
  38. package/src/runtime/memory/lib/cycle-llm-adapters.mjs +0 -2
  39. package/src/runtime/memory/lib/cycle-scheduler/backlog-probe.mjs +3 -11
  40. package/src/runtime/memory/lib/cycle-scheduler/health-ledger.mjs +1 -3
  41. package/src/runtime/memory/lib/cycle-scheduler/scheduled-enqueue.mjs +1 -11
  42. package/src/runtime/memory/lib/cycle-scheduler/tick-loop.mjs +0 -2
  43. package/src/runtime/memory/lib/cycle-scheduler.mjs +4 -13
  44. package/src/runtime/memory/lib/cycle-signatures.mjs +0 -6
  45. package/src/runtime/memory/lib/cycle1/cycle1-rows.mjs +1 -1
  46. package/src/runtime/memory/lib/cycle1/cycle1-window.mjs +2 -2
  47. package/src/runtime/memory/lib/embedding-reindex.mjs +1 -1
  48. package/src/runtime/memory/lib/http-router/lifecycle-routes.mjs +0 -1
  49. package/src/runtime/memory/lib/memory-action-handlers/cycle-actions.mjs +7 -52
  50. package/src/runtime/memory/lib/memory-action-handlers/cycle-backfill-action.mjs +6 -22
  51. package/src/runtime/memory/lib/memory-action-handlers/cycle-rebuild-action.mjs +10 -17
  52. package/src/runtime/memory/lib/memory-action-handlers/maintenance-actions.mjs +1 -3
  53. package/src/runtime/memory/lib/memory-action-handlers/manage-actions.mjs +2 -4
  54. package/src/runtime/memory/lib/memory-action-handlers.mjs +2 -4
  55. package/src/runtime/memory/lib/memory-cycle-requests.mjs +1 -1
  56. package/src/runtime/memory/lib/{memory-cycle2-shared.mjs → memory-cycle-shared.mjs} +14 -16
  57. package/src/runtime/memory/lib/memory-cycle.mjs +3 -2
  58. package/src/runtime/memory/lib/memory-cycle1.mjs +1 -1
  59. package/src/runtime/memory/lib/memory-embed.mjs +14 -1
  60. package/src/runtime/memory/lib/memory-ops-policy.mjs +8 -11
  61. package/src/runtime/memory/lib/memory-schema/entries.mjs +0 -1
  62. package/src/runtime/memory/lib/memory.mjs +2 -6
  63. package/src/runtime/memory/lib/pg/adapter.mjs +1 -1
  64. package/src/runtime/memory/lib/query-handlers.mjs +1 -1
  65. package/src/runtime/memory/lib/query-hybrid-search.mjs +1 -1
  66. package/src/runtime/memory/lib/query-maintenance-handlers.mjs +0 -6
  67. package/src/runtime/memory/lib/recall-format.mjs +1 -1
  68. package/src/runtime/office/authoring/docx-html-build.mjs +375 -0
  69. package/src/runtime/office/authoring/docx-html-measure.mjs +561 -0
  70. package/src/runtime/office/authoring/docx-html-runner.mjs +102 -0
  71. package/src/runtime/office/authoring/html-browser.mjs +61 -0
  72. package/src/runtime/office/authoring/html-document-author.mjs +181 -0
  73. package/src/runtime/office/authoring/html-source-drift.mjs +36 -0
  74. package/src/runtime/office/authoring/pdf-author-action.mjs +266 -0
  75. package/src/runtime/office/authoring/pdf-html-charts.mjs +379 -0
  76. package/src/runtime/office/authoring/pdf-html-runner.mjs +317 -0
  77. package/src/runtime/office/authoring/pptx-author-action.mjs +44 -22
  78. package/src/runtime/office/authoring/pptx-author-session.mjs +12 -6
  79. package/src/runtime/office/authoring/pptx-html-build.mjs +23 -4
  80. package/src/runtime/office/authoring/pptx-html-measure.mjs +38 -44
  81. package/src/runtime/office/authoring/pptx-html-runner.mjs +18 -3
  82. package/src/runtime/office/authoring/pptx-receipt.mjs +39 -31
  83. package/src/runtime/office/authoring/pptx-review-artifacts.mjs +9 -1
  84. package/src/runtime/office/authoring/pptx-script-runner.mjs +6 -2
  85. package/src/runtime/office/authoring/xlsx-html-build.mjs +365 -0
  86. package/src/runtime/office/authoring/xlsx-html-measure.mjs +257 -0
  87. package/src/runtime/office/authoring/xlsx-html-runner.mjs +139 -0
  88. package/src/runtime/office/capabilities-catalog.mjs +8 -0
  89. package/src/runtime/office/capabilities-signatures.mjs +18 -6
  90. package/src/runtime/office/capabilities.mjs +26 -1
  91. package/src/runtime/office/com/office-com-host.ps1 +133 -17
  92. package/src/runtime/office/core/office-actions-batch.mjs +16 -1
  93. package/src/runtime/office/core/office-actions-inspect.mjs +3 -2
  94. package/src/runtime/office/core/office-actions-lifecycle.mjs +6 -2
  95. package/src/runtime/office/core/office-actions-render.mjs +4 -1
  96. package/src/runtime/office/core/office-finalize/review-stage.mjs +15 -2
  97. package/src/runtime/office/core/office-qa/design-review-stage.mjs +9 -0
  98. package/src/runtime/office/core/office-session-dispatch.mjs +3 -0
  99. package/src/runtime/office/core/office-sessionless-actions.mjs +7 -2
  100. package/src/runtime/office/core/office-sessions.mjs +19 -2
  101. package/src/runtime/office/pdf/pdf-writer.mjs +1 -1
  102. package/src/runtime/office/portable/docx-formatting.mjs +21 -0
  103. package/src/runtime/office/portable/ooxml-validator.mjs +22 -1
  104. package/src/runtime/office/portable/portable-chart.mjs +10 -2
  105. package/src/runtime/office/portable/portable-docx-edits.mjs +12 -6
  106. package/src/runtime/office/portable/portable-docx-operations.mjs +75 -1
  107. package/src/runtime/office/portable/portable-docx-xml.mjs +49 -6
  108. package/src/runtime/office/portable/portable-docx.mjs +2 -0
  109. package/src/runtime/office/portable/portable-snapshot-docx.mjs +2 -0
  110. package/src/runtime/office/portable/portable-validation.mjs +6 -3
  111. package/src/runtime/office/portable/portable-xlsx-cell-values.mjs +87 -0
  112. package/src/runtime/office/portable/portable-xlsx-charts.mjs +55 -13
  113. package/src/runtime/office/portable/portable-xlsx-sheet-edits.mjs +1 -1
  114. package/src/runtime/office/portable/xlsx-contract.mjs +82 -3
  115. package/src/runtime/office/quality/assurance-checklist.mjs +2 -2
  116. package/src/runtime/office/quality/assurance-rendered.mjs +27 -1
  117. package/src/runtime/office/quality/assurance-structure-docx.mjs +44 -0
  118. package/src/runtime/office/quality/assurance-structure-pptx.mjs +24 -6
  119. package/src/runtime/office/quality/assurance-structure-xlsx.mjs +50 -1
  120. package/src/runtime/office/quality/design-review-critique.mjs +3 -2
  121. package/src/runtime/office/quality/document-brief.mjs +44 -0
  122. package/src/runtime/office/quality/inline-audit.mjs +7 -2
  123. package/src/runtime/office/quality/quality-pipeline.mjs +9 -1
  124. package/src/runtime/office/tool-defs.mjs +2 -2
  125. package/src/runtime/shared/llm/quota-value-estimate.mjs +317 -0
  126. package/src/runtime/shared/llm/usage-ledger-quota.mjs +266 -63
  127. package/src/runtime/shared/llm/usage-ledger-rollup.mjs +35 -0
  128. package/src/runtime/shared/llm/usage-ledger-worker.mjs +2 -1
  129. package/src/runtime/shared/llm/usage-ledger.mjs +10 -1
  130. package/src/runtime/shared/provider-accounts.mjs +11 -1
  131. package/src/runtime/shared/statusline/statusline-segments.mjs +4 -4
  132. package/src/runtime/shared/tool-execution-contract.mjs +1 -1
  133. package/src/runtime/shared/wait-until.test-support.mjs +33 -0
  134. package/src/session-runtime/boot/apis.mjs +1 -1
  135. package/src/session-runtime/services/channel-admin.mjs +4 -3
  136. package/src/session-runtime/services/usage-stats-model.mjs +22 -0
  137. package/src/session-runtime/setup-tool/settings-contract.mjs +6 -1
  138. package/src/session-runtime/turn/session-ops.mjs +15 -9
  139. package/src/session-runtime/usage-stats-api.mjs +34 -2
  140. package/src/standalone/agent-dispatch-broker.mjs +1 -1
  141. package/src/standalone/local-session-runtime.mjs +488 -0
  142. package/src/standalone/session-protocol.mjs +1 -0
  143. package/src/standalone/session-runtime-inline-host.mjs +1 -1
  144. package/src/tui/hooks/useSession.mjs +1 -1
  145. package/src/tui/session/session-api/commands.mjs +1 -1
  146. package/src/tui/session/session-api/integrations.mjs +3 -0
  147. package/src/tui/session/session-flow/auto-clear.mjs +6 -7
  148. package/src/tui/session/tool-card-results.mjs +1 -1
  149. package/src/tui/session/turn.mjs +5 -0
  150. package/src/tui/session-local.mjs +3 -488
  151. package/src/tui/session.mjs +1 -1
  152. package/src/ui/statusline-agents.mjs +0 -1
  153. package/src/rules/agent/41-cycle2-agent.md +0 -24
  154. package/src/runtime/memory/lib/cycle-scheduler/cycle2-runs.mjs +0 -120
  155. package/src/runtime/memory/lib/memory-cycle2-mutations.mjs +0 -110
  156. package/src/runtime/memory/lib/memory-cycle2-quarantine.mjs +0 -99
  157. package/src/runtime/memory/lib/memory-cycle2-review.mjs +0 -240
  158. package/src/runtime/memory/lib/memory-cycle2.mjs +0 -191
package/README.md CHANGED
@@ -1,345 +1,158 @@
1
- # Mixdog
2
-
3
- [![npm](https://img.shields.io/npm/v/mixdog)](https://www.npmjs.com/package/mixdog)
4
- ![Node.js ^22.19.0 || >=24.0.0](https://img.shields.io/badge/node-%5E22.19.0%20%7C%7C%20%3E%3D24.0.0-brightgreen)
5
- ![license](https://img.shields.io/badge/license-Apache--2.0-blue)
6
-
7
- ## More work. Less cost. Less complexity.
8
-
9
- Get more from your models and budget with an efficient AI coding
10
- harness—and intuitive controls for managing sessions, agents, and your
11
- entire workflow.
12
-
13
- - **More work for your budget.** Cache-aware context, focused
14
- tools, and compaction reduce overhead so more of your budget goes toward
15
- the task. The published same-model Terminal-Bench comparisons below show comparable
16
- or better results with smaller contexts and lower costs at the same API rates.
17
- - **Easy to start. Simple to manage.** Guided setup and visual controls
18
- help you choose models, assign agent roles, and configure workflows without
19
- becoming an expert in agent infrastructure or building your own stack.
20
- - **One workspace, your way.** In Desktop, organize parallel sessions with
21
- tabs and split panes, customize agents and workflows, and keep token
22
- statistics and supported provider limits in view.
23
-
24
- Use supported subscription accounts, API keys, or Mixdog's built-in Local Provider.
25
- Take the same agent beyond code into browsers, Windows apps, documents,
26
- images, and video—and continue live sessions across terminal, Desktop,
27
- and a paired browser on your computer or phone.
1
+ <h1 align="center">Mixdog</h1>
28
2
 
29
- ## Get started
30
-
31
- ### Desktop
3
+ <p align="center">
4
+ <b>Same model. Same score. 63% fewer tokens.</b><br>
5
+ Free, open-source coding agent for Windows — benchmarked against Codex CLI on Terminal-Bench 2.1.
6
+ </p>
32
7
 
33
8
  <p align="center">
34
9
  <a href="https://github.com/tribgames/mixdog/releases/latest/download/mixdog-desktop-win-x64.exe">
35
- <img src="https://img.shields.io/badge/Download_for_Windows_x64-0078D4?style=for-the-badge&logo=windows11&logoColor=white" alt="Download Mixdog for Windows x64" height="56">
10
+ <img src="https://raw.githubusercontent.com/tribgames/mixdog/main/docs/assets/download-windows.svg" alt="Download Mixdog for Windows x64" width="320">
36
11
  </a>
37
12
  </p>
38
13
 
39
- The Windows installer is currently unsigned, so Windows SmartScreen may show a
40
- security warning.
14
+ <p align="center">
15
+ <sub>The installer is unsigned, so Windows SmartScreen may show a warning.</sub>
16
+ </p>
41
17
 
42
- ### CLI
18
+ <p align="center">
19
+ <a href="https://www.npmjs.com/package/mixdog"><img src="https://img.shields.io/npm/v/mixdog" alt="npm"></a>
20
+ <img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="license">
21
+ <img src="https://img.shields.io/badge/node-%5E22.19.0%20%7C%7C%20%3E%3D24.0.0-brightgreen" alt="Node.js ^22.19.0 || >=24.0.0">
22
+ </p>
43
23
 
44
- Requires Node.js 22.19+ (22.x) or 24+.
24
+ <p align="center">
25
+ <img src="https://raw.githubusercontent.com/tribgames/mixdog/main/docs/assets/desktop.png" alt="Mixdog Desktop" width="860">
26
+ </p>
45
27
 
46
- ```bash
47
- npm install -g mixdog
48
- mixdog
49
- ```
28
+ ## Same model. Same results. A fraction of the tokens.
50
29
 
51
- First run guides you through provider authentication, model selection, and
52
- workflow setup.
53
-
54
- ## One workspace for your sessions and agents
55
-
56
- Run multiple AI sessions side by side and manage your agents in Desktop.
57
- Combine tabs and split panes, customize how you work, and keep token usage
58
- and supported provider limits in view.
59
-
60
- - **Multiple sessions, manageable agents.** Keep separate tasks in separate
61
- sessions and work on them in parallel. Manage agent definitions, assign
62
- models by role, and configure workflows in one app instead of assembling
63
- your own agent stack.
64
- - **Tabs and split panes—together.** Use tabs to organize sessions and split
65
- panes to follow several side by side. Each pane can hold its own tabs, so
66
- you do not have to choose between quick switching and a simultaneous view.
67
- - **Make the workspace your own.** Visual controls put layout, providers,
68
- models, agent rules, workflows, and extensions within easy reach. The model
69
- picker shows pricing, context limits, and capability metadata to help you
70
- choose—not just a list of model names.
71
- - **See where your tokens go.** Usage statistics break down token totals by
72
- provider and model, including input, output, cache hits, and cache hit rate,
73
- with trends and cost figures. Subscription values use list prices; API
74
- costs may be estimates. Neither is an invoice.
75
- - **Keep remaining usage in sight.** The usage panel brings supported
76
- providers' quota windows and reset times together, reducing trips to
77
- separate account dashboards. Available figures depend on the provider.
78
- - **Less window switching.** Chat, a Monaco code editor, Git, terminals, and
79
- a file explorer share one workspace, keeping the conversation close to the
80
- files and changes you are working on.
81
- - **Pick up on another screen.** Continue the same live session from Desktop,
82
- TUI, or a paired browser on your computer or phone, without starting a
83
- separate conversation.
84
-
85
- ## Benchmarks
86
-
87
- Terminal-Bench 2.1 — same model, same 89 tasks, same official verifier, with
88
- only the harness changed. Against the native CLI of each model family, Mixdog
89
- delivers the same results at the same speed — on a fraction of the context,
90
- for far less cost.
91
-
92
- ### GPT-5.6 Sol xhigh — Mixdog vs Codex CLI
30
+ Terminal-Bench 2.1 — same model, same 89 tasks, same official verifier.
31
+ Only the harness changes.
32
+
33
+ ### GPT-5.6 Sol xhigh — Mixdog vs Codex CLI (`k=5`, 445 trials each)
34
+
35
+ | | Mixdog | Codex CLI | |
36
+ | --- | --- | --- | --- |
37
+ | **Total tokens** (incl. cached input) | **156.5M** | 421.4M | **63% fewer** |
38
+ | Success rate | **86.5%** (385/445) | 86.1% (383/445) | +2 trials |
39
+ | Pass@5 | **96.6%** | 95.5% | |
40
+ | Priced cost per trial | **$0.476** | $0.782 | 39% lower |
41
+ | Median final context | **18.5k** | 34.3k | 46% smaller |
42
+ | Wall time per trial | **415s** | 437s | matched |
93
43
 
94
44
  ![Terminal-Bench 2.1: Mixdog with GPT-5.6 Sol xhigh versus Codex CLI](https://raw.githubusercontent.com/tribgames/mixdog/main/benchmarks/terminal-bench-2.1/tb21-sol-vs-codex.svg)
95
45
 
96
- - **39%** lower priced cost — $0.476 vs $0.782 per trial
97
- - **46%** smaller median final context — 18.5k vs 34.3k tokens
98
- - **86.5%** (385/445) vs Codex CLI's **86.1%** (383/445) — full `k=5` on both
99
- sides, pass@5 **96.6%** vs 95.5%
100
- - Matched speed — 415s vs 437s wall time per trial
46
+ ### Claude Opus 5 — Mixdog vs Claude Code (`k=1`, 89 trials each)
101
47
 
102
- ### Claude Opus 5 — Mixdog vs Claude Code
48
+ | | Mixdog | Claude Code | |
49
+ | --- | --- | --- | --- |
50
+ | Solved | **79/89** | 77/89 | +2 tasks |
51
+ | Priced cost per run | **$104.29** | $129.21 | 19% lower |
52
+ | Median final context | **27.6k** | 38.2k | 28% smaller |
53
+ | Wall time per trial | **610s** | 708s | 1.16× faster |
103
54
 
104
55
  ![Terminal-Bench 2.1: Mixdog with Claude Opus 5 versus Claude Code](https://raw.githubusercontent.com/tribgames/mixdog/main/benchmarks/terminal-bench-2.1/tb21-opus-vs-claude-code.svg)
105
56
 
106
- - **19%** lower priced cost — $104.29 vs $129.21 per run
107
- - **28%** smaller median final context — 27.6k vs 38.2k tokens
108
- - **79/89** vs Claude Code's **77/89**
109
- - **1.16×** faster — 610s vs 708s wall time per trial
110
-
111
- These published runs use the official Harbor verifier with fast mode off;
112
- task failures and agent timeouts are never retried. The Sol comparison
113
- follows the protocol the official Terminal-Bench leaderboard requires on both
114
- sides — all 89 tasks repeated five times (`k=5`, 445 trials each); the
115
- Opus-side runs are single passes (`k=1`, 89 trials each). Speed is the full
116
- trial wall clock, and cost values both sides at the same current API list
117
- rates, not actual subscription charges or invoices. These are measurements of
118
- the pinned source revision, not a new benchmark of every subsequent release.
119
-
120
- The leaderboard is not accepting community submissions, so every run here ships
121
- its raw artifacts instead — Harbor verdicts, official verifier output, pinned
122
- task checksums, and the usage snapshots behind every cost figure — alongside
123
- the harness, presets, and metric scripts that recompute each number above:
124
- [`benchmarks/terminal-bench-2.1/`](benchmarks/terminal-bench-2.1/).
125
-
126
- ## Less overhead. More budget for the work.
127
-
128
- Mixdog reduces the overhead of repeatedly sending context, re-explaining
129
- requirements, and rediscovering prior work. Focused tools keep unnecessary
130
- text out of the prompt, while provider-aware caching reuses stable input.
131
-
132
- Compaction keeps long conversations manageable with a handoff for continuing
133
- the task. Optional idle-time compaction reduces the history resent after
134
- long breaks, when provider caches may have expired. Approved memory and
135
- past-work retrieval help carry earlier decisions and requirements forward
136
- without loading the entire conversation archive into every prompt.
137
-
138
- You do not have to use the same high-cost model for every role. Choose models
139
- by role and workflow to focus your budget on the work that needs them.
140
-
141
- The benchmarks above measure single-model, single-session runs without
142
- personal memory, sub-agent delegation, or helper-model lookups. Their cost
143
- figures already account for cache usage; savings in ongoing work depend on
144
- the provider, workload, and configuration.
145
-
146
- ## How Mixdog keeps context lean
147
-
148
- Efficiency comes from several layers working together, not just a shorter
149
- prompt or a larger context window:
150
-
151
- 1. **Lightweight system instructions** — continuously refined rules keep
152
- operating guidance focused without repeating the same policy.
153
- 2. **Purpose-built tools** — scoped queries, batched calls, and bounded
154
- results retrieve the evidence a task needs instead of dumping whole files.
155
- 3. **Built-in ast-grep and code graphs** — parsed symbols, signatures, calls,
156
- and imports answer structural questions without repeated text searches.
157
- 4. **Provider-aware caching** — stable prompt layers and provider-specific
158
- cache controls help reuse context that has already been processed.
159
- 5. **Structured compaction** — a task handoff, the latest request, and a
160
- bounded execution history keep long sessions moving.
161
- 6. **Idle-time context reduction** — configurable automatic compaction
162
- reduces the context sent after long idle gaps, when caches may be cold.
163
- 7. **On-demand prompt loading** — skill bodies and deferred tool schemas
164
- load when needed; stable instructions stay separate from changing state.
165
- 8. **Database-backed long-term memory** — retrieve relevant history instead
166
- of injecting the whole archive into every session.
167
- 9. **Tool-result reduction** — repeated results become short references,
168
- while large outputs can be saved separately and returned as previews.
169
-
170
- Caching can reduce repeated processing and input cost, but cached tokens
171
- still count toward the model's context limit. Compaction, selective retrieval,
172
- and output reduction reduce the amount of context the model needs. See
173
- [Context efficiency](docs/context-efficiency.md) for the mechanisms,
174
- implementation references, and limits.
175
-
176
- ## What you can do
177
-
178
- ### Build, test, and review
179
-
180
- Search repositories with text and AST-based tools, edit files, run tests
181
- and background commands, and review changes. Desktop brings the agent together
182
- with a Monaco editor, Git, terminals, and a file explorer. Use workflows and
183
- role-specific models to organize work, and extend the toolset with MCP
184
- servers, skills, hooks, and plugins.
185
-
186
- **Code graph.** Inspect exports, signatures, and nested members; locate
187
- declarations and references; trace calls and imports; and assess which files
188
- a change may affect. Call relationships come from parsed call sites rather than
189
- text matches, and identifier references exclude comment-only mentions.
190
- The native engine embeds tree-sitter and ast-grep, parses 31 languages, and
191
- extracts symbols and imports for 24. Capabilities vary by language; this is
192
- structural navigation, not a replacement for a compiler's type analysis.
193
-
194
- **Code Tidy.** Install the built-in capability to format, lint, and check
195
- structural rules through the agent. It respects project configuration and
196
- uses project-local, system-installed, or supported managed engines.
197
- Fixes are previewed without changing files unless explicitly applied. See
198
- [Code Tidy](docs/code-tidy.md) for engine setup and rule coverage.
199
-
200
- The GitHub integration manages repositories, issues, pull requests and reviews,
201
- Actions, releases, and notifications. Source Control commits use a manually
202
- entered summary and optional description; there is no built-in AI commit-message
203
- generator. See [Git & GitHub](docs/git-github-integration.md) for supported
204
- operations and permission requirements.
205
-
206
- ### Keep longer work moving
207
-
208
- Resume saved chats and recall prior work through local semantic and lexical
209
- search. Long-term memory separates searchable conversation history (`recall`)
210
- from approved shared or project-scoped preferences (`memory`); generated
211
- conversation summaries do not become standing instructions.
212
-
213
- Compaction keeps long conversations manageable while retaining the latest
214
- request and the context needed to continue. Configurable idle-time compaction
215
- can also reduce input cost when resuming after a long idle period, when the
216
- provider's cache may have expired.
217
- For an explicitly requested longer-running objective, **Goals** track
218
- completion conditions and tasks, support time limits and automatic
219
- continuation, and let you pause or resume the work.
220
-
221
- ### Work beyond the repository
222
-
223
- - **Browser Use** — operate signed-in Chromium pages, forms, tabs, and
224
- downloads. On Windows, import a Chrome profile, including cookies and
225
- passwords; cookie and password import require administrator approval and
226
- a build with the native importer. Session cookies are encrypted with the
227
- OS keychain and restored on launch when encryption is available.
228
- Developer controls share the same pages and sign-in through
229
- `browser_devtools`.
230
- - **Computer Use on Windows** — operate native apps through accessibility,
231
- screenshots, OCR, keyboard, and pointer input with guarded execution.
232
- An overlay provides Stop and Resume controls.
233
- - **Documents** — create and edit Word, Excel, and PowerPoint files, work
234
- with PDFs, and review rendered previews alongside automated checks.
235
- Use portable OOXML editing without Microsoft Office, or Microsoft Office
236
- automation on Windows. Rendering and spreadsheet recalculation depend on
237
- the available engines. See [Office runtime](src/runtime/office/README.md).
238
- - **Image and video Studio** — generate and edit images, generate short video
239
- clips, and keep the results in a persistent local gallery. Continue a clip
240
- by using its last frame as the reference for a new generation; this carries
241
- over the pose, not the original motion or camera trajectory. Available
242
- models and controls depend on your signed-in provider routes.
243
-
244
- Browser Use and Computer Use are opt-in capabilities. In interactive sessions,
245
- each asks for approval before its first live call by default; approval covers
246
- the rest of that session, and a restart asks again. Headless and agent-owned
247
- sessions without an approval UI are not gated by this first-use prompt.
248
-
249
- ### Continue from another screen
250
-
251
- Desktop, TUI, and paired browsers share live sessions rather than starting
252
- independent copies. The installable remote web app connects to Desktop over
253
- authenticated end-to-end encryption, so you can follow and continue work from
254
- a computer or phone.
57
+ <sub>Official Harbor verifier, fast mode off, no retries of task failures or
58
+ agent timeouts. Mixdog runs are single-model, single-session — no sub-agents
59
+ or helper models. Cost values both sides at the same API list rates, not
60
+ subscription charges. Results measure the pinned source revision. Raw
61
+ verdicts, verifier output, usage snapshots, and the scripts that recompute
62
+ every number are in [`benchmarks/terminal-bench-2.1/`](benchmarks/terminal-bench-2.1/).</sub>
63
+
64
+ ## Why Mixdog
65
+
66
+ - **All your models in one app.** Use supported subscription accounts, API
67
+ keys, or the built-in Local Provider side by side.
68
+ - **Agents by role.** Assign a different model to each agent role and combine
69
+ them through orchestration — from **Solo** (the lead does the work) up to
70
+ **Swarm** (maximum delegation). Run separate sessions in parallel, too.
71
+ - **Easy to set up.** Onboarding walks you through connecting providers,
72
+ choosing models, and setting up workflows. Workflows and agents are
73
+ Markdown packs (`WORKFLOW.md`, `AGENT.md`) with visual editors in the app.
74
+ - **Lean context.** Scoped tools, provider-aware caching, and structured
75
+ compaction keep prompts small. Search past work and keep project memory
76
+ without loading the whole archive. See
77
+ [Context efficiency](docs/context-efficiency.md).
78
+ - **See where tokens go.** Usage stats by provider and model — input, output,
79
+ cache hits, and cost — plus supported providers' quota windows and resets.
80
+
81
+ ## Beyond code
82
+
83
+ - **Workspace** — tabs and split panes, Monaco editor, Git and GitHub,
84
+ terminals, file explorer, code graph, and Code Tidy in one window.
85
+ - **Browser Use** — operate signed-in Chromium pages, with Chrome profile
86
+ import on Windows.
87
+ - **Computer Use (Windows)** — operate native apps with guarded input and an
88
+ on-screen Stop control.
89
+ - **Documents** — Word, Excel, PowerPoint, and PDF with rendered previews.
90
+ - **Image and video Studio** — generate and edit with a local gallery.
91
+ - **Continue anywhere** — pick up the same live session from Desktop, the
92
+ terminal, or a paired browser on your computer or phone over end-to-end
93
+ encryption.
94
+
95
+ Browser Use and Computer Use are opt-in and ask for approval before their
96
+ first live call in each interactive session.
255
97
 
256
98
  ## Providers
257
99
 
258
- Mixdog supports subscription OAuth and API-key routes, including:
259
-
260
100
  - Anthropic API keys and Claude account OAuth
261
101
  - OpenAI API keys and ChatGPT/Codex account OAuth
262
102
  - Google Gemini API keys
263
103
  - xAI API keys and Grok account OAuth
264
- - OpenRouter API keys and its unified model catalog
265
- - DeepSeek and OpenCode Go
266
- - Mixdog's built-in Local Provider
267
-
268
- Cursor and Antigravity (Gemini) account OAuth are off by default; turn them on
269
- under **Settings → Developer**, which warns that using these providers through
270
- OAuth risks account restrictions.
104
+ - OpenRouter, DeepSeek, and OpenCode Go
105
+ - Built-in **Local Provider** — download and run models in the app
106
+ (Windows x64 with an NVIDIA GPU)
271
107
 
272
- The model picker combines live provider catalogs with model metadata for
273
- context limits, pricing, tool support, reasoning, and recency.
108
+ Cursor and Antigravity (Gemini) OAuth are off by default under
109
+ **Settings → Developer**; using them through OAuth risks account restrictions.
274
110
 
275
- The supported provider list above is not an arbitrary OpenAI-compatible
276
- endpoint registry. The former Ollama and LM Studio routes have been retired.
111
+ ## Get started
277
112
 
278
- ### Local Provider
113
+ ### Desktop (Windows)
279
114
 
280
- Download and run models directly in Mixdog, without managing a separate model
281
- server. The managed runtime currently requires **Windows x64 and an NVIDIA
282
- GPU**, with enough VRAM for the selected model.
115
+ [Download the installer](https://github.com/tribgames/mixdog/releases/latest/download/mixdog-desktop-win-x64.exe)
116
+ and follow onboarding.
283
117
 
284
- Ask in chat to add a local model; Mixdog checks your hardware and guides
285
- installation. **Extensions → Plugin → Local Provider** manages installed
286
- models, download progress and resumption, and automatic unloading when idle.
287
- Installed models are available through the `mixdog-local` provider.
118
+ ### CLI
288
119
 
289
- ## Run
120
+ Requires Node.js 22.19+ (22.x) or 24+.
290
121
 
291
122
  ```bash
292
- # Start in the current project
123
+ npm install -g mixdog
293
124
  mixdog
294
-
295
- # Select a provider and model
296
- mixdog --provider anthropic-oauth --model claude-haiku-4-5-20251001
297
-
298
- # Select a workflow
299
- mixdog --workflow default
300
-
301
- # Use read-only tools
302
- mixdog --readonly
303
-
304
- # Enable remote mode
305
- mixdog --remote
306
-
307
- # Run onboarding again
308
- mixdog --onboarding
309
125
  ```
310
126
 
311
- Run `mixdog --help` for the complete option reference.
312
-
313
- ## Headless exec
314
-
315
- `mixdog exec` runs one non-interactive, single-model session with ephemeral
316
- configuration and no agent delegation. It requires an explicit provider and
317
- model. It does not load the host's behavioral configuration, personal memory,
318
- prior sessions, user profile, skills, MCP servers, or plugins:
127
+ <details>
128
+ <summary><b>CLI options and headless exec</b></summary>
319
129
 
320
130
  ```bash
321
- mixdog exec --provider anthropic-oauth --model claude-opus-5 "fix the failing test"
322
- mixdog exec --provider openai-oauth --model gpt-5.6-sol --effort xhigh --fast "review the current diff"
323
- mixdog exec --provider openai-oauth --model gpt-5.6-sol --json "fix the failing test"
131
+ mixdog # start in the current project
132
+ mixdog --provider anthropic-oauth --model claude-haiku-4-5-20251001
133
+ mixdog --workflow default
134
+ mixdog --readonly # read-only tools
135
+ mixdog --remote # enable remote mode
136
+ mixdog --onboarding # run onboarding again
324
137
  ```
325
138
 
326
- Web search and page retrieval are disabled by default. Enable them per run
327
- when needed:
139
+ `mixdog exec` runs one non-interactive, single-model session without personal
140
+ memory, prior sessions, skills, MCP servers, or plugins:
328
141
 
329
142
  ```bash
330
- mixdog exec --provider openai-oauth --model gpt-5.6-sol --web-search "research this issue"
143
+ mixdog exec --provider openai-oauth --model gpt-5.6-sol --effort xhigh "fix the failing test"
144
+ mixdog exec --provider openai-oauth --model gpt-5.6-sol --json "review the current diff"
331
145
  ```
332
146
 
333
- Disabling web search does **not** block ordinary shell networking: package
334
- managers, Git clients, and other commands can still access the network.
335
- Headless exec is not an offline sandbox.
147
+ Web search is off by default (`--web-search` enables it). This does not block
148
+ shell networking — headless exec is not an offline sandbox.
336
149
 
337
- `--memory`, `--workflow`, `--readonly`, `--remote`, and `--onboarding` are not
338
- supported by `mixdog exec`. Use an interactive session for personal memory and
339
- saved-work continuation. `--json` emits timestamped JSONL events to stdout;
340
- diagnostics remain on stderr.
150
+ Run `mixdog --help` for the full reference.
341
151
 
342
- ## TUI commands
152
+ </details>
153
+
154
+ <details>
155
+ <summary><b>TUI commands</b></summary>
343
156
 
344
157
  ```text
345
158
  /clear start a fresh chat
@@ -371,146 +184,16 @@ diagnostics remain on stderr.
371
184
  /quit quit the TUI
372
185
  ```
373
186
 
374
- Workflows and agents are Markdown definition packs (`WORKFLOW.md`, `AGENT.md`).
375
- Built-in packs ship with Mixdog; custom packs live under the Mixdog data
376
- directory.
377
-
378
- By default the Lead does the work without delegating (**Solo**). Each
379
- session's orchestration mode sets how much it delegates to agents, up to
380
- **Swarm** for maximum delegation. Running multiple independent Desktop
381
- sessions is separate from delegating work to agents within one session.
382
-
383
- To start a time-bounded Goal, for example:
384
-
385
- ```text
386
- /goal Fix the failing tests --time 1h
387
- /goal status
388
- /goal pause
389
- /goal resume
390
- ```
391
-
392
- ## Desktop app
393
-
394
- Mixdog Desktop runs the same agent runtime as the CLI. In the **Sessions**
395
- panel, choose **New task** for agent work or **New Studio** for image and video
396
- work. The **Projects** panel has **Project** and **Workflow** tabs for managing
397
- repositories, workflow packs, and agent definitions.
398
-
399
- The workspace includes:
400
-
401
- - Split panes for parallel, independently routed agent sessions
402
- - Live session handoff between the TUI, desktop windows, and paired browsers
403
- - Monaco editor, LSP integration, diffs, and turn-by-turn edit review
404
- - Built-in code graph navigation and installable Code Tidy checks and fixes
405
- - Git staging, commits with manually entered messages, and branches
406
- - GitHub repositories, issues, pull requests, reviews, Actions, releases,
407
- and notifications
408
- - File explorer with previews, thumbnails, search, and drag-and-drop
409
- - Integrated terminal tabs using the local system shell
410
- - Browser Use pane with agent control and Chrome profile import on Windows
411
- - Computer Use on Windows with guarded native input
412
- - Word, Excel, PowerPoint, and PDF tools with rendered previews
413
- - Image and video generation Studio with a persistent local gallery
414
- - Visual workflow, agent, schedule, and webhook editors, plus session Goal
415
- progress and controls
416
- - Voice dictation with an optional local transcription runtime
417
- - Extensions hub with guided setup for Git & GitHub, Memory, Browser Use,
418
- Computer Use, Office, Code Tidy, Local Provider, and voice
419
- - Provider setup, usage, git identity, and remote pairing settings
420
-
421
- In **Extensions**, the **Plugin** tab manages integrations and built-in
422
- capabilities; the **Skill** tab lets you add and manage skills and MCP servers.
423
- Language servers start on demand when installed locally or on your system;
424
- Mixdog does not download them automatically. See
425
- [language server setup](docs/language-servers.md).
426
-
427
- The paired remote web app is installable on desktop and mobile browsers. It
428
- uses an authenticated end-to-end encrypted connection before session state,
429
- terminal data, files, or operation requests cross the relay, and adds mobile
430
- share-target intake, push notifications, and remote Browser Use.
431
-
432
- ## Data and configuration
433
-
434
- Mixdog uses `~/.mixdog` as its home root and `~/.mixdog/data` for runtime data
435
- by default.
436
-
437
- ```bash
438
- MIXDOG_HOME=/path/to/home mixdog
439
- MIXDOG_DATA_DIR=/path/to/data mixdog
440
- ```
441
-
442
- Useful environment variables:
443
-
444
- - `MIXDOG_TUI_MOUSE=0` — use terminal-native mouse behavior.
445
- - `MIXDOG_DISABLE_MODEL_PREFETCH=1` — disable provider model prefetch.
446
- - `MIXDOG_MODE=ship|dev` — select shipping or development diagnostics.
447
- - `MIXDOG_DIAGNOSTICS=1` — force diagnostic trace and log output.
187
+ </details>
448
188
 
449
- ## Core technology
189
+ ## Docs
450
190
 
451
- | Layer | Stack |
452
- | --- | --- |
453
- | Shared agent runtime | Node.js and ECMAScript modules, shared by CLI and Desktop |
454
- | Terminal UI | React and Ink |
455
- | Desktop workspace | Electron, React, TypeScript, Monaco, and xterm.js |
456
- | Native code tools | Rust, tree-sitter, and embedded ast-grep for parsing, structural queries, and rule-based checks |
457
- | Browser automation | Chromium and the Chrome DevTools Protocol (CDP) |
458
- | Long-term memory | Managed local PostgreSQL with pgvector and full-text search |
459
- | Documents | Portable OOXML and PDF tooling, plus Microsoft Office automation on Windows |
460
-
461
- These components serve different roles: native tools analyze code, database
462
- retrieval keeps historical context selective, and provider-specific caching
463
- reduces repeated model processing. See [Context efficiency](docs/context-efficiency.md)
464
- for how they work with prompt management and compaction.
465
-
466
- ## Development
467
-
468
- ```bash
469
- npm install
470
- npm start
471
-
472
- npm run smoke
473
- npm run smoke:all
474
- npm test # discovered fast-lane tests
475
- npm test -- src/runtime/memory # narrow to one path
476
- npm run test:slow # *.slow.test.mjs
477
- npm run test:live # built-artifact or live-system checks
478
- npm run build:tui
479
- npm run audit:models
480
- ```
481
-
482
- For desktop development, install the root dependencies above, then:
483
-
484
- ```bash
485
- cd apps/desktop
486
- npm install
487
- npm run dev
488
- ```
489
-
490
- Desktop development uses a fresh, isolated test profile on each launch, including
491
- its data, daemon and tool connections. It does not copy the installed app's
492
- settings or sign-ins. The profile path is printed and retained in the system
493
- temporary directory for diagnosis. CDP uses port `9342`; if it is occupied, reuse
494
- the running test app or choose another port with `npm run dev -- --port 9343`.
495
- On Windows, `npm run e2e:direct` and `npm run e2e:direct:source` also use isolated
496
- profiles and port `9342` (override with `-- -Port 9343`).
497
-
498
- Both packages discover `*.test.mjs` and `*-test.mjs` under their `src/` and
499
- `scripts/` directories. Fast, slow, and live tests run in separate lanes;
500
- live checks need their corresponding built artifacts or services. See
501
- [testing practices](docs/testing.md) for details.
502
-
503
- Main directories:
504
-
505
- ```text
506
- src/ CLI, TUI, runtime, workflows, agents, and rules
507
- apps/desktop/ desktop app
508
- apps/relay/ remote web app and relay
509
- native/ native process, search, graph, patch, and support binaries
510
- scripts/ tests, diagnostics, benchmarks, and build scripts
511
- benchmarks/ reproducible benchmark harnesses, results, and raw artifacts
512
- src/vendor/ vendored runtime components
513
- ```
191
+ - [Context efficiency](docs/context-efficiency.md)
192
+ - [Code Tidy](docs/code-tidy.md)
193
+ - [Git & GitHub](docs/git-github-integration.md)
194
+ - [Language servers](docs/language-servers.md)
195
+ - [Office runtime](src/runtime/office/README.md)
196
+ - [Development, configuration, and testing](docs/development.md)
514
197
 
515
198
  ## License
516
199