@maincode-ai/matilda-code 0.21.13 → 0.22.0-nightly.20261101.b0ad315a4

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 (252) hide show
  1. package/chunks/agent-IUINB66G.js +3 -0
  2. package/chunks/agent-headless-YA2RKYEZ.js +3 -0
  3. package/chunks/{askUserQuestion-BNSWGD26.js → askUserQuestion-RZYBOPLR.js} +3 -3
  4. package/chunks/ca-JKEHLTNL.js +23 -0
  5. package/chunks/chunk-225CZWD7.js +89 -0
  6. package/chunks/{chunk-MEV5XQI2.js → chunk-2XSB5XHX.js} +1 -1
  7. package/chunks/chunk-453BANK3.js +8 -0
  8. package/chunks/{chunk-6M5G5FBH.js → chunk-4UGPARBR.js} +1 -1
  9. package/chunks/{chunk-RNKDFE2S.js → chunk-5B2QERWR.js} +1 -1
  10. package/chunks/chunk-5ETLURI6.js +3 -0
  11. package/chunks/chunk-6NXVLJ3X.js +56 -0
  12. package/chunks/{chunk-QZI2ZGZY.js → chunk-7B65UIHB.js} +1 -1
  13. package/chunks/{chunk-27Q5KW3A.js → chunk-7E2YCGHS.js} +13 -13
  14. package/chunks/{chunk-DHDD5YJC.js → chunk-ARAB5QTM.js} +69 -69
  15. package/chunks/chunk-DUB7JMQV.js +13 -0
  16. package/chunks/chunk-G3F3ZCH2.js +9 -0
  17. package/chunks/chunk-GT6MSEK4.js +3 -0
  18. package/chunks/chunk-HEJO7OBH.js +3 -0
  19. package/chunks/{chunk-6T2GIM76.js → chunk-IHWAOFCQ.js} +1 -1
  20. package/chunks/chunk-ILHNCXBC.js +8 -0
  21. package/chunks/chunk-J3ZCE3TA.js +8 -0
  22. package/chunks/{chunk-AOOZREGV.js → chunk-LBQNFSZ2.js} +1 -1
  23. package/chunks/{chunk-5OHGYMKP.js → chunk-LM6OIN4B.js} +1 -1
  24. package/chunks/{chunk-EZDV7A76.js → chunk-LMZBADPW.js} +1 -1
  25. package/chunks/chunk-MGRXOZAG.js +8 -0
  26. package/chunks/chunk-NBLBE7PE.js +2609 -0
  27. package/chunks/chunk-POGNX7U3.js +31 -0
  28. package/chunks/chunk-PQZ6HKKW.js +80 -0
  29. package/chunks/chunk-QXSBPCBA.js +8 -0
  30. package/chunks/chunk-RHSUTILA.js +9 -0
  31. package/chunks/{chunk-P5TG5CON.js → chunk-RPXRN7E6.js} +1 -1
  32. package/chunks/chunk-TUKNB5CQ.js +33 -0
  33. package/chunks/chunk-UM6CLO7D.js +7 -0
  34. package/chunks/chunk-V2VUANFI.js +120 -0
  35. package/chunks/chunk-V4VILMIK.js +14 -0
  36. package/chunks/chunk-ZSGBDQXU.js +11 -0
  37. package/chunks/{computer-use-J4GAM4M6.js → computer-use-PBCWDTJR.js} +1 -1
  38. package/chunks/{cron-create-IDWSZENI.js → cron-create-PHQ43NYA.js} +1 -1
  39. package/chunks/cron-delete-7RCQIU2U.js +3 -0
  40. package/chunks/cron-list-KKNLLMNN.js +5 -0
  41. package/chunks/de-GMGNR5CZ.js +23 -0
  42. package/chunks/{devtools-XRQ4YJ5S.js → devtools-7YNCRYZV.js} +1 -1
  43. package/chunks/{chunk-OOEH6ZSV.js → dist-UWUWLWTO.js} +2 -2
  44. package/chunks/{edit-X2S2ZXRN.js → edit-ELHNQB5E.js} +1 -1
  45. package/chunks/en-3NQMLVKW.js +23 -0
  46. package/chunks/{enter-worktree-TUCGNCLO.js → enter-worktree-UZIBOBV3.js} +1 -1
  47. package/chunks/enterPlanMode-UHY3DZXE.js +18 -0
  48. package/chunks/{exit-worktree-7FLITFZI.js → exit-worktree-HLG4PDMX.js} +1 -1
  49. package/chunks/{exitPlanMode-O5UUJ3GM.js → exitPlanMode-V4HYNH3J.js} +2 -2
  50. package/chunks/fr-WS3EBB36.js +23 -0
  51. package/chunks/{getMachineId-bsd-ZYBNK2JG.js → getMachineId-bsd-ETKQTB6C.js} +1 -1
  52. package/chunks/{getMachineId-darwin-CM2MQGUI.js → getMachineId-darwin-AKNRWOWB.js} +1 -1
  53. package/chunks/{getMachineId-linux-SYE2KMCW.js → getMachineId-linux-2QSD7FTP.js} +1 -1
  54. package/chunks/{getMachineId-unsupported-6IHVG2XO.js → getMachineId-unsupported-UXSV7I24.js} +1 -1
  55. package/chunks/{getMachineId-win-S3J3JSUM.js → getMachineId-win-4MTFXGP3.js} +1 -1
  56. package/chunks/glob-C5CTWXLP.js +22 -0
  57. package/chunks/{goal-tools-YQOA6OKU.js → goal-tools-BGIWEJ3K.js} +3 -3
  58. package/chunks/{grep-VAB2VSXM.js → grep-BEFTGKHW.js} +1 -1
  59. package/chunks/ja-GBCDQ43R.js +23 -0
  60. package/chunks/keychain-token-storage-FEJZYJBB.js +3 -0
  61. package/chunks/ls-XH55NAD3.js +15 -0
  62. package/chunks/{lsp-NGLDRHZU.js → lsp-BKDCR37G.js} +1 -1
  63. package/chunks/mcp-client-GAQG7MCT.js +3 -0
  64. package/chunks/monitor-NSVUUKCM.js +32 -0
  65. package/chunks/{multipart-parser-JI75T2O5.js → multipart-parser-FKHYAVGR.js} +1 -1
  66. package/chunks/notebook-edit-AXKYC64C.js +17 -0
  67. package/chunks/openaiContentGenerator-66YY6CIM.js +47 -0
  68. package/chunks/pt-VID6J2CM.js +23 -0
  69. package/chunks/read-file-YFJMLS7V.js +3 -0
  70. package/chunks/ripGrep-BEHEB23R.js +3 -0
  71. package/chunks/ru-EB6V6EAN.js +23 -0
  72. package/chunks/scheduler-GKQOREMS.js +8 -0
  73. package/chunks/send-message-GJSEMAZB.js +8 -0
  74. package/chunks/shell-J5Q2UEXH.js +3 -0
  75. package/chunks/{skill-ETQM5NI3.js → skill-3RWNSUNE.js} +1 -1
  76. package/chunks/src-LZEU4AYF.js +5 -0
  77. package/chunks/symbol-search-4VM6J5Y4.js +19 -0
  78. package/chunks/{syntheticOutput-WZDPECYS.js → syntheticOutput-O7LEF3AM.js} +1 -1
  79. package/chunks/task-create-N4IRJBTF.js +3 -0
  80. package/chunks/{task-detach-TBAVUOTC.js → task-detach-RGNQUX3H.js} +1 -1
  81. package/chunks/task-list-Z7JUB4QK.js +9 -0
  82. package/chunks/{task-stop-HDSARSJ6.js → task-stop-L2OWK2PJ.js} +1 -1
  83. package/chunks/{task-update-MW2VT2XV.js → task-update-H5AXVXDS.js} +1 -1
  84. package/chunks/{team-create-VMYNLZCC.js → team-create-FWTIQ2FT.js} +2 -2
  85. package/chunks/team-delete-D45ALROH.js +8 -0
  86. package/chunks/todoWrite-LCQOQBI7.js +3 -0
  87. package/chunks/{tool-search-WX6FOE35.js → tool-search-X6UUCSPU.js} +1 -1
  88. package/chunks/{web-fetch-CKYBHGLF.js → web-fetch-244KUWSX.js} +17 -17
  89. package/chunks/web-search-YRZ3BZ3X.js +26 -0
  90. package/chunks/{workflow-WBSRQG3N.js → workflow-EP4AFR24.js} +2 -2
  91. package/chunks/write-file-EXWGRN4Q.js +15 -0
  92. package/cli.js +641 -678
  93. package/examples/starter/README.md +0 -3
  94. package/locales/ca.js +3 -87
  95. package/locales/de.js +3 -91
  96. package/locales/en.js +3 -91
  97. package/locales/fr.js +3 -88
  98. package/locales/ja.js +3 -92
  99. package/locales/pt.js +3 -92
  100. package/locales/ru.js +3 -91
  101. package/package.json +2 -2
  102. package/sandbox-macos-permissive-proxied.sb +1 -1
  103. package/sandbox-macos-restrictive-closed.sb +14 -1
  104. package/sandbox-macos-restrictive-open.sb +14 -1
  105. package/sandbox-macos-restrictive-proxied.sb +15 -2
  106. package/bundled/mainy/SKILL.md +0 -157
  107. package/bundled/mainy/docs/_meta.ts +0 -32
  108. package/bundled/mainy/docs/common-workflow.md +0 -571
  109. package/bundled/mainy/docs/configuration/_meta.ts +0 -7
  110. package/bundled/mainy/docs/configuration/auth.md +0 -82
  111. package/bundled/mainy/docs/configuration/matilda-ignore.md +0 -55
  112. package/bundled/mainy/docs/configuration/model-providers.md +0 -516
  113. package/bundled/mainy/docs/configuration/settings.md +0 -818
  114. package/bundled/mainy/docs/configuration/themes.md +0 -199
  115. package/bundled/mainy/docs/configuration/trusted-folders.md +0 -67
  116. package/bundled/mainy/docs/extension/_meta.ts +0 -9
  117. package/bundled/mainy/docs/extension/extension-releasing.md +0 -204
  118. package/bundled/mainy/docs/extension/getting-started-extensions.md +0 -299
  119. package/bundled/mainy/docs/extension/introduction.md +0 -338
  120. package/bundled/mainy/docs/features/_meta.ts +0 -27
  121. package/bundled/mainy/docs/features/approval-mode.md +0 -388
  122. package/bundled/mainy/docs/features/arena.md +0 -219
  123. package/bundled/mainy/docs/features/auto-mode.md +0 -308
  124. package/bundled/mainy/docs/features/channels/_meta.ts +0 -5
  125. package/bundled/mainy/docs/features/channels/overview.md +0 -328
  126. package/bundled/mainy/docs/features/channels/plugins.md +0 -87
  127. package/bundled/mainy/docs/features/channels/telegram.md +0 -120
  128. package/bundled/mainy/docs/features/code-review.md +0 -291
  129. package/bundled/mainy/docs/features/commands.md +0 -528
  130. package/bundled/mainy/docs/features/dual-output.md +0 -627
  131. package/bundled/mainy/docs/features/followup-suggestions.md +0 -109
  132. package/bundled/mainy/docs/features/headless.md +0 -448
  133. package/bundled/mainy/docs/features/hooks.md +0 -1308
  134. package/bundled/mainy/docs/features/language.md +0 -144
  135. package/bundled/mainy/docs/features/lsp.md +0 -496
  136. package/bundled/mainy/docs/features/markdown-rendering.md +0 -183
  137. package/bundled/mainy/docs/features/mcp.md +0 -423
  138. package/bundled/mainy/docs/features/memory.md +0 -185
  139. package/bundled/mainy/docs/features/sandbox.md +0 -249
  140. package/bundled/mainy/docs/features/scheduled-tasks.md +0 -139
  141. package/bundled/mainy/docs/features/skills.md +0 -347
  142. package/bundled/mainy/docs/features/status-line.md +0 -397
  143. package/bundled/mainy/docs/features/structured-output.md +0 -309
  144. package/bundled/mainy/docs/features/sub-agents.md +0 -737
  145. package/bundled/mainy/docs/features/tips.md +0 -54
  146. package/bundled/mainy/docs/features/token-caching.md +0 -29
  147. package/bundled/mainy/docs/features/tool-use-summaries.md +0 -178
  148. package/bundled/mainy/docs/features/worktree.md +0 -343
  149. package/bundled/mainy/docs/ide-integration/_meta.ts +0 -4
  150. package/bundled/mainy/docs/ide-integration/ide-companion-spec.md +0 -182
  151. package/bundled/mainy/docs/ide-integration/ide-integration.md +0 -144
  152. package/bundled/mainy/docs/integration-github-action.md +0 -241
  153. package/bundled/mainy/docs/integration-jetbrains.md +0 -81
  154. package/bundled/mainy/docs/integration-vscode.md +0 -39
  155. package/bundled/mainy/docs/integration-zed.md +0 -72
  156. package/bundled/mainy/docs/matilda-serve-deploy-local.md +0 -221
  157. package/bundled/mainy/docs/matilda-serve.md +0 -661
  158. package/bundled/mainy/docs/overview.md +0 -64
  159. package/bundled/mainy/docs/quickstart.md +0 -234
  160. package/bundled/mainy/docs/reference/_meta.ts +0 -3
  161. package/bundled/mainy/docs/reference/keyboard-shortcuts.md +0 -91
  162. package/bundled/mainy/docs/support/Uninstall.md +0 -65
  163. package/bundled/mainy/docs/support/_meta.ts +0 -6
  164. package/bundled/mainy/docs/support/tos-privacy.md +0 -94
  165. package/bundled/mainy/docs/support/troubleshooting.md +0 -127
  166. package/chunks/agent-SRAIVZEE.js +0 -3
  167. package/chunks/agent-headless-XRDOZESG.js +0 -3
  168. package/chunks/anthropicContentGenerator-LLDIKDMQ.js +0 -39
  169. package/chunks/ca-NPYL24ME.js +0 -25
  170. package/chunks/chunk-27HUYW23.js +0 -22
  171. package/chunks/chunk-2HTPVSGT.js +0 -3
  172. package/chunks/chunk-3B2HABK7.js +0 -30
  173. package/chunks/chunk-3MTZTNAU.js +0 -101
  174. package/chunks/chunk-3YLXGE6T.js +0 -8
  175. package/chunks/chunk-47XR7IMP.js +0 -8
  176. package/chunks/chunk-4F4DA5UI.js +0 -8
  177. package/chunks/chunk-4Q2SNBUH.js +0 -18
  178. package/chunks/chunk-6EQMZNIY.js +0 -8
  179. package/chunks/chunk-6I6VGTKD.js +0 -8
  180. package/chunks/chunk-DC7LAFZZ.js +0 -8
  181. package/chunks/chunk-DE3HKC2W.js +0 -9
  182. package/chunks/chunk-FWDMPRKU.js +0 -3
  183. package/chunks/chunk-G7R2XEEF.js +0 -7
  184. package/chunks/chunk-GOJCMVJJ.js +0 -8
  185. package/chunks/chunk-GTVCJCHR.js +0 -8
  186. package/chunks/chunk-IJEGHQ7Z.js +0 -32
  187. package/chunks/chunk-JCE3JAVC.js +0 -25
  188. package/chunks/chunk-KHHJYBR5.js +0 -9
  189. package/chunks/chunk-LUNDTQ3G.js +0 -8
  190. package/chunks/chunk-LWARA7JY.js +0 -37
  191. package/chunks/chunk-M53RP3YP.js +0 -31
  192. package/chunks/chunk-MTMU7JYZ.js +0 -11
  193. package/chunks/chunk-O44XK65C.js +0 -8
  194. package/chunks/chunk-OA56BXPD.js +0 -3
  195. package/chunks/chunk-PEKAUGYV.js +0 -2621
  196. package/chunks/chunk-PGUG43HG.js +0 -24
  197. package/chunks/chunk-PGXQZVLX.js +0 -8
  198. package/chunks/chunk-QKYGQLWC.js +0 -8
  199. package/chunks/chunk-QN6Y6NPA.js +0 -3
  200. package/chunks/chunk-RI54U73U.js +0 -56
  201. package/chunks/chunk-RPFSFS7Z.js +0 -39
  202. package/chunks/chunk-SDTWBD62.js +0 -8
  203. package/chunks/chunk-SOEIVSM5.js +0 -113
  204. package/chunks/chunk-SVSY6AWS.js +0 -59
  205. package/chunks/chunk-T2T2UEPY.js +0 -4
  206. package/chunks/chunk-TISQNFB5.js +0 -3
  207. package/chunks/chunk-TWJLOEAI.js +0 -31
  208. package/chunks/chunk-VI74YQQO.js +0 -8
  209. package/chunks/chunk-VYZOOSMP.js +0 -30
  210. package/chunks/chunk-W4QSMIWO.js +0 -9
  211. package/chunks/chunk-WC2VTVCE.js +0 -27
  212. package/chunks/chunk-YV3PUOBU.js +0 -65
  213. package/chunks/chunk-ZX34M2GF.js +0 -14
  214. package/chunks/contextCommand-5F5M7NA4.js +0 -3
  215. package/chunks/cron-delete-NQCDZDUI.js +0 -3
  216. package/chunks/cron-list-Z4XMC3TO.js +0 -5
  217. package/chunks/de-34YZHGC6.js +0 -25
  218. package/chunks/dist-7UYRLSLE.js +0 -3
  219. package/chunks/dist-PH6JW7XD.js +0 -42
  220. package/chunks/en-QLGMD6OS.js +0 -25
  221. package/chunks/enterPlanMode-SQEZAAIR.js +0 -18
  222. package/chunks/fileFromPath-7UCWPD4W.js +0 -3
  223. package/chunks/fr-EDNBQACJ.js +0 -25
  224. package/chunks/geminiContentGenerator-FIZFLPU3.js +0 -8
  225. package/chunks/glob-GSFTYAS2.js +0 -22
  226. package/chunks/ja-LV4RLM3M.js +0 -25
  227. package/chunks/keychain-token-storage-KQK6MNOJ.js +0 -3
  228. package/chunks/ls-IZJ3CKZY.js +0 -15
  229. package/chunks/matildaAgentContentGenerator-QQHPCFJ5.js +0 -8
  230. package/chunks/matildaContentGenerator-W7Z33ONU.js +0 -8
  231. package/chunks/matildaOAuth2-7COTQQR2.js +0 -3
  232. package/chunks/mcp-client-DXUNIEIB.js +0 -3
  233. package/chunks/monitor-4PFIGAGG.js +0 -32
  234. package/chunks/notebook-edit-MWJYAATJ.js +0 -17
  235. package/chunks/openaiContentGenerator-NDVJL6QL.js +0 -3
  236. package/chunks/pt-5SQ4DGL7.js +0 -25
  237. package/chunks/read-file-WPZKPXWA.js +0 -3
  238. package/chunks/ripGrep-7LZDZFTX.js +0 -3
  239. package/chunks/ru-7K24S53N.js +0 -25
  240. package/chunks/scheduler-DK2MVKXX.js +0 -8
  241. package/chunks/send-message-TCPX5UDU.js +0 -8
  242. package/chunks/serve-GSZPJI2O.js +0 -1026
  243. package/chunks/shell-PRS47PDP.js +0 -3
  244. package/chunks/src-UB7DZRYK.js +0 -3
  245. package/chunks/src-WZTRMETQ.js +0 -5
  246. package/chunks/symbol-search-HARHZ5AH.js +0 -19
  247. package/chunks/task-create-XRNIDT4T.js +0 -3
  248. package/chunks/task-list-Z6BDZZID.js +0 -9
  249. package/chunks/team-delete-F7QDC2TE.js +0 -8
  250. package/chunks/todoWrite-SCF5M24M.js +0 -3
  251. package/chunks/web-search-67DFNS5V.js +0 -26
  252. package/chunks/write-file-S5FAX4JJ.js +0 -15
@@ -1,185 +0,0 @@
1
- # Memory
2
-
3
- Every Matilda Code session starts with a fresh context window. Two mechanisms carry knowledge across sessions so you don't have to re-explain yourself every time:
4
-
5
- - **MATILDA.md** — instructions _you_ write once and Matilda reads every session
6
- - **Auto-memory** — notes Matilda writes itself based on what it learns from you
7
-
8
- ---
9
-
10
- ## MATILDA.md: your instructions to Matilda
11
-
12
- MATILDA.md is a plain text file where you write things Matilda should always know about your project or your preferences. Think of it as a permanent briefing that loads at the start of every conversation.
13
-
14
- ### What to put in MATILDA.md
15
-
16
- Add things you'd otherwise have to repeat every session:
17
-
18
- - Build and test commands (`npm run test`, `make build`)
19
- - Coding conventions your team follows ("all new files must have JSDoc comments")
20
- - Architectural decisions ("we use the repository pattern, never call the database directly from controllers")
21
- - Personal preferences ("always use pnpm, not npm")
22
-
23
- Don't include things Matilda can figure out by reading your code. MATILDA.md works best when it's short and specific — the longer it gets, the less reliably Matilda follows it.
24
-
25
- ### Where to create MATILDA.md
26
-
27
- | File | Who it applies to |
28
- | -------------------------------- | ------------------------------------------------ |
29
- | `~/.matilda/MATILDA.md` | You, across all your projects |
30
- | `MATILDA.md` in the project root | Your whole team (commit it to source control) |
31
- | `.matilda/MATILDA.local.md` | Only you, only in this project (keep out of git) |
32
-
33
- You can have any combination of these. Matilda loads all of them when you start a session.
34
-
35
- If your repository already has an `AGENTS.md` file for other AI tools, Matilda reads that too. No need to duplicate instructions.
36
-
37
- #### When to use `.matilda/MATILDA.local.md`
38
-
39
- Use it for **project-specific but personal** instructions — things that belong to this project but shouldn't be shared with the team:
40
-
41
- - Your own cluster ID, container registry namespace, or cloud account
42
- - A personal debug command that hardcodes your local environment
43
- - Notes you want Matilda to know about your work-in-progress, but not commit
44
-
45
- It loads **after** the shared project `MATILDA.md`, so your local instructions can supplement or override the team's.
46
-
47
- **You must gitignore it yourself.** Although `.matilda/` is often treated as a local directory, matilda-code does not generate a `.gitignore` for you, and some projects commit `.matilda/settings.json`. Add this line to your `.gitignore` (or to your global git ignore):
48
-
49
- ```
50
- .matilda/MATILDA.local.md
51
- ```
52
-
53
- ### Generate one automatically with `/init`
54
-
55
- Run `/init` and Matilda will analyze your codebase to create a starter MATILDA.md with build commands, test instructions, and conventions it finds. If one already exists, it suggests additions instead of overwriting.
56
-
57
- ### Reference other files
58
-
59
- You can point MATILDA.md at other files so Matilda reads them too:
60
-
61
- ```markdown
62
- See @README.md for project overview.
63
-
64
- # Conventions
65
-
66
- - Git workflow: @docs/git-workflow.md
67
- ```
68
-
69
- Use `@path/to/file` anywhere in MATILDA.md. Relative paths resolve from the MATILDA.md file itself.
70
-
71
- ---
72
-
73
- ## Auto-memory: what Matilda learns about you
74
-
75
- Auto-memory runs in the background. After each of your conversations, Matilda quietly saves useful things it learned — your preferences, feedback you gave, project context — so it can use them in future sessions without you repeating yourself.
76
-
77
- This is different from MATILDA.md: you don't write it, Matilda does.
78
-
79
- ### What Matilda saves
80
-
81
- Matilda looks for four kinds of things worth remembering:
82
-
83
- | What | Examples |
84
- | ----------------------- | -------------------------------------------------------- |
85
- | **About you** | Your role, background, how you like to work |
86
- | **Your feedback** | Corrections you made, approaches you confirmed |
87
- | **Project context** | Ongoing work, decisions, goals not obvious from the code |
88
- | **External references** | Dashboards, ticket trackers, docs links you mentioned |
89
-
90
- Matilda doesn't save everything — only things that would actually be useful next time.
91
-
92
- ### Where it's stored
93
-
94
- Auto-memory files live at `~/.matilda/projects/<project>/memory/`. All branches and worktrees of the same repository share the same memory folder, so what Matilda learns in one branch is available in others.
95
-
96
- Everything saved is plain markdown — you can open, edit, or delete any file at any time.
97
-
98
- ### Periodic cleanup
99
-
100
- Matilda periodically goes through its saved memories to remove duplicates and clean up outdated entries. This runs automatically in the background once a day after enough sessions have accumulated. You can trigger it manually with `/dream` if you want it to run now.
101
-
102
- While cleanup is running, **✦ dreaming** appears in the corner of the screen. Your session continues normally.
103
-
104
- ### Turning it on or off
105
-
106
- Auto-memory is on by default. To toggle it, open `/memory` and use the switches at the top. You can turn off just the automatic saving, just the periodic cleanup, or both.
107
-
108
- You can also set them in `~/.matilda/settings.json` (applies to all projects) or `.matilda/settings.json` (this project only):
109
-
110
- ```json
111
- {
112
- "memory": {
113
- "enableManagedAutoMemory": true,
114
- "enableManagedAutoDream": true
115
- }
116
- }
117
- ```
118
-
119
- ---
120
-
121
- ## Commands
122
-
123
- ### `/memory`
124
-
125
- Opens the Memory panel. From here you can:
126
-
127
- - Turn auto-memory saving on or off
128
- - Turn periodic cleanup (dream) on or off
129
- - Open your personal MATILDA.md (`~/.matilda/MATILDA.md`)
130
- - Open the project MATILDA.md
131
- - Browse the auto-memory folder
132
-
133
- ### `/init`
134
-
135
- Generates a starter MATILDA.md for your project. Matilda reads your codebase and fills in build commands, test instructions, and conventions it discovers.
136
-
137
- ### `/remember <text>`
138
-
139
- Immediately saves something to auto-memory without waiting for Matilda to pick it up automatically:
140
-
141
- ```
142
- /remember always use snake_case for Python variable names
143
- /remember the staging environment is at staging.example.com
144
- ```
145
-
146
- ### `/forget <text>`
147
-
148
- Removes auto-memory entries that match your description:
149
-
150
- ```
151
- /forget old workaround for the login bug
152
- ```
153
-
154
- ### `/dream`
155
-
156
- Runs the memory cleanup now instead of waiting for the automatic schedule:
157
-
158
- ```
159
- /dream
160
- ```
161
-
162
- ---
163
-
164
- ## Troubleshooting
165
-
166
- ### Matilda isn't following my MATILDA.md
167
-
168
- Open `/memory` to see which files are loaded. If your file isn't listed, Matilda can't see it — make sure it's in the project root or `~/.matilda/`.
169
-
170
- Instructions work better when they're specific:
171
-
172
- - ✓ `Use 2-space indentation for TypeScript files`
173
- - ✗ `Format code nicely`
174
-
175
- If you have multiple MATILDA.md files with conflicting instructions, Matilda may behave inconsistently. Review them and remove any contradictions.
176
-
177
- ### I want to see what Matilda has saved
178
-
179
- Run `/memory` and select **Open auto-memory folder**. All saved memories are readable markdown files you can browse, edit, or delete.
180
-
181
- ### Matilda keeps forgetting things
182
-
183
- If auto-memory is on but Matilda doesn't seem to remember things across sessions, try running `/dream` to force a cleanup pass. Also check `/memory` to confirm both toggles are enabled.
184
-
185
- For things you always want Matilda to remember, add them to MATILDA.md instead — auto-memory is best-effort, MATILDA.md is guaranteed.
@@ -1,249 +0,0 @@
1
- # Sandbox
2
-
3
- This document explains how to run Matilda Code inside a sandbox to reduce risk when tools execute shell commands or modify files.
4
-
5
- ## Prerequisites
6
-
7
- Before using sandboxing, you need to install and set up Matilda Code:
8
-
9
- ```bash
10
- npm install -g @maincode-ai/matilda-code
11
- ```
12
-
13
- To verify the installation
14
-
15
- ```bash
16
- matilda --version
17
- ```
18
-
19
- ## Overview of sandboxing
20
-
21
- Sandboxing isolates potentially dangerous operations (such as shell commands or file modifications) from your host system, providing a security barrier between the CLI and your environment.
22
-
23
- The benefits of sandboxing include:
24
-
25
- - **Security**: Prevent accidental system damage or data loss.
26
- - **Isolation**: Limit file system access to project directory.
27
- - **Consistency**: Ensure reproducible environments across different systems.
28
- - **Safety**: Reduce risk when working with untrusted code or experimental commands.
29
-
30
- > [!note]
31
- >
32
- > **Naming note:** Some sandbox-related environment variables may have used the `GEMINI_*` prefix historically. All new environment variables use the `MATILDA_*` prefix.
33
-
34
- ## Sandboxing methods
35
-
36
- Your ideal method of sandboxing may differ depending on your platform and your preferred container solution.
37
-
38
- ### 1. macOS Seatbelt (macOS only)
39
-
40
- Lightweight, built-in sandboxing using `sandbox-exec`.
41
-
42
- **Default profile**: `permissive-open` - restricts writes outside the project directory, but allows most other operations and outbound network access.
43
-
44
- **Best for**: Fast, no Docker required, strong guardrails for file writes.
45
-
46
- ### 2. Container-based (Docker/Podman)
47
-
48
- Cross-platform sandboxing with complete process isolation.
49
-
50
- By default, Matilda Code uses a published sandbox image (configured in the CLI package) and will pull it as needed.
51
-
52
- The container sandbox mounts your workspace and your `~/.matilda` directory into the container so auth and settings persist between runs.
53
-
54
- **Best for**: Strong isolation on any OS, consistent tooling inside a known image.
55
-
56
- ### Choosing a method
57
-
58
- - **On macOS**:
59
- - Use Seatbelt when you want lightweight sandboxing (recommended for most users).
60
- - Use Docker/Podman when you need a full Linux userland (e.g., tools that require Linux binaries).
61
- - **On Linux/Windows**:
62
- - Use Docker or Podman.
63
-
64
- ## Quickstart
65
-
66
- ```bash
67
- # Enable sandboxing with command flag
68
- matilda -s -p "analyze the code structure"
69
-
70
- # Or enable sandboxing for your shell session (recommended for CI / scripts)
71
- export MATILDA_SANDBOX=true # true auto-picks a provider (see notes below)
72
- matilda -p "run the test suite"
73
-
74
- # Configure in settings.json
75
- {
76
- "tools": {
77
- "sandbox": true
78
- }
79
- }
80
- ```
81
-
82
- > [!tip]
83
- >
84
- > **Provider selection notes:**
85
- >
86
- > - On **macOS**, `MATILDA_SANDBOX=true` typically selects `sandbox-exec` (Seatbelt) if available.
87
- > - On **Linux/Windows**, `MATILDA_SANDBOX=true` requires `docker` or `podman` to be installed.
88
- > - To force a provider, set `MATILDA_SANDBOX=docker|podman|sandbox-exec`.
89
-
90
- ## Configuration
91
-
92
- ### Enable sandboxing (in order of precedence)
93
-
94
- 1. **Environment variable**: `MATILDA_SANDBOX=true|false|docker|podman|sandbox-exec`
95
- 2. **Command flag / argument**: `-s`, `--sandbox`, or `--sandbox=<provider>`
96
- 3. **Settings file**: `tools.sandbox` in your `settings.json` (e.g., `{"tools": {"sandbox": true}}`).
97
-
98
- > [!important]
99
- >
100
- > If `MATILDA_SANDBOX` is set, it **overrides** the CLI flag and `settings.json`.
101
-
102
- ### Configure the sandbox image (Docker/Podman)
103
-
104
- - **CLI flag**: `--sandbox-image <image>`
105
- - **Environment variable**: `MATILDA_SANDBOX_IMAGE=<image>`
106
- - **Settings file**: `tools.sandboxImage` in your `settings.json` (e.g., `{"tools": {"sandboxImage": "ghcr.io/maincode/matilda-code:0.14.1"}}`)
107
-
108
- Priority order (highest to lowest):
109
-
110
- 1. `--sandbox-image`
111
- 2. `MATILDA_SANDBOX_IMAGE`
112
- 3. `tools.sandboxImage`
113
- 4. Built-in default image from the CLI package (for example `ghcr.io/maincode/matilda-code:<version>`)
114
-
115
- `settings.env.MATILDA_SANDBOX_IMAGE` also works as a generic env injection mechanism, but `tools.sandboxImage` is the preferred persistent setting.
116
-
117
- ### macOS Seatbelt profiles
118
-
119
- Built-in profiles (set via `SEATBELT_PROFILE` env var):
120
-
121
- - `permissive-open` (default): Write restrictions, network allowed
122
- - `permissive-closed`: Write restrictions, no network
123
- - `permissive-proxied`: Write restrictions, network via proxy
124
- - `restrictive-open`: Strict restrictions, network allowed
125
- - `restrictive-closed`: Maximum restrictions
126
- - `restrictive-proxied`: Strict restrictions, network via proxy
127
-
128
- > [!tip]
129
- >
130
- > Start with `permissive-open`, then tighten to `restrictive-closed` if your workflow still works.
131
-
132
- ### Custom Seatbelt profiles (macOS)
133
-
134
- To use a custom Seatbelt profile:
135
-
136
- 1. Create a file named `.matilda/sandbox-macos-<profile_name>.sb` in your project.
137
- 2. Set `SEATBELT_PROFILE=<profile_name>`.
138
-
139
- ### Custom Sandbox Flags
140
-
141
- For container-based sandboxing, you can inject custom flags into the `docker` or `podman` command using the `SANDBOX_FLAGS` environment variable. This is useful for advanced configurations, such as disabling security features for specific use cases.
142
-
143
- **Example (Podman)**:
144
-
145
- To disable SELinux labeling for volume mounts, you can set the following:
146
-
147
- ```bash
148
- export SANDBOX_FLAGS="--security-opt label=disable"
149
- ```
150
-
151
- Multiple flags can be provided as a space-separated string:
152
-
153
- ```bash
154
- export SANDBOX_FLAGS="--flag1 --flag2=value"
155
- ```
156
-
157
- ### Network proxying (all sandbox methods)
158
-
159
- If you want to restrict outbound network access to an allowlist, you can run a local proxy alongside the sandbox:
160
-
161
- - Set `MATILDA_SANDBOX_PROXY_COMMAND=<command>`
162
- - The command must start a proxy server that listens on `:::8877`
163
-
164
- This is especially useful with `*-proxied` Seatbelt profiles.
165
-
166
- For a working allowlist-style proxy example, see: [Example Proxy Script](/developers/examples/proxy-script).
167
-
168
- ## Linux UID/GID handling
169
-
170
- On Linux, Matilda Code defaults to enabling UID/GID mapping so the sandbox runs as your user (and reuses the mounted `~/.matilda`). Override with:
171
-
172
- ```bash
173
- export SANDBOX_SET_UID_GID=true # Force host UID/GID
174
- export SANDBOX_SET_UID_GID=false # Disable UID/GID mapping
175
- ```
176
-
177
- ## Troubleshooting
178
-
179
- ### Common issues
180
-
181
- **"Operation not permitted"**
182
-
183
- - Operation requires access outside sandbox.
184
- - On macOS Seatbelt: try a more permissive `SEATBELT_PROFILE`.
185
- - On Docker/Podman: verify the workspace is mounted and your command doesn’t require access outside the project directory.
186
-
187
- **Missing commands**
188
-
189
- - Container sandbox: add them via `.matilda/sandbox.Dockerfile` or `.matilda/sandbox.bashrc`.
190
- - Seatbelt: your host binaries are used, but the sandbox may restrict access to some paths.
191
-
192
- **Java not available in Docker sandbox**
193
-
194
- The official Matilda Code Docker image is intentionally minimal to keep the image small, secure, and fast to pull. Different users require different language runtimes (Java, Python, Node.js, etc.), and bundling all environments into a single image is not practical. Therefore, Java is **not included by default** in the Docker sandbox.
195
-
196
- If your workflow requires Java, you can extend the base image by creating a `.matilda/sandbox.Dockerfile` in your project:
197
-
198
- ```dockerfile
199
- FROM ghcr.io/maincode/matilda-code:latest
200
-
201
- RUN apt-get update && \
202
- apt-get install -y openjdk-17-jre && \
203
- apt-get clean && \
204
- rm -rf /var/lib/apt/lists/*
205
- ```
206
-
207
- Then rebuild the sandbox image:
208
-
209
- ```bash
210
- MATILDA_SANDBOX=docker BUILD_SANDBOX=1 matilda -s
211
- ```
212
-
213
- For more details on customizing the sandbox, see [Customizing the sandbox environment](/developers/tools/sandbox).
214
-
215
- **Network issues**
216
-
217
- - Check sandbox profile allows network.
218
- - Verify proxy configuration.
219
-
220
- ### Debug mode
221
-
222
- ```bash
223
- DEBUG=1 matilda -s -p "debug command"
224
- ```
225
-
226
- **Note:** If you have `DEBUG=true` in a project's `.env` file, it won't affect the CLI due to automatic exclusion. Use `.matilda/.env` files for Matilda Code-specific debug settings.
227
-
228
- ### Inspect sandbox
229
-
230
- ```bash
231
- # Check environment
232
- matilda -s -p "run shell command: env | grep SANDBOX"
233
-
234
- # List mounts
235
- matilda -s -p "run shell command: mount | grep workspace"
236
- ```
237
-
238
- ## Security notes
239
-
240
- - Sandboxing reduces but doesn't eliminate all risks.
241
- - Use the most restrictive profile that allows your work.
242
- - Container overhead is minimal after the first pull/build.
243
- - GUI applications may not work in sandboxes.
244
-
245
- ## Related documentation
246
-
247
- - [Configuration](../configuration/settings): Full configuration options.
248
- - [Commands](../features/commands): Available commands.
249
- - [Troubleshooting](../support/troubleshooting): General troubleshooting.
@@ -1,139 +0,0 @@
1
- # Run Prompts on a Schedule
2
-
3
- > Use `/loop` and the cron scheduling tools to run prompts repeatedly, poll for status, or set one-time reminders within a Matilda Code session.
4
-
5
- Scheduled tasks let Matilda Code re-run a prompt automatically on an interval. Use them to poll a deployment, babysit a PR, check back on a long-running build, or remind yourself to do something later in the session.
6
-
7
- Tasks are session-scoped: they live in the current Matilda Code process and are gone when you exit. Nothing is written to disk.
8
-
9
- > **Tip:** Scheduled tasks are enabled by default. To disable them, set `experimental.cron: false` in your [settings](../configuration/settings.md), or set `MATILDA_CODE_DISABLE_CRON=1` in your environment.
10
-
11
- ## Schedule a recurring prompt with /loop
12
-
13
- The `/loop` [bundled skill](skills.md) is the quickest way to schedule a recurring prompt. Pass an optional interval and a prompt, and Matilda Code sets up a cron job that fires in the background while the session stays open.
14
-
15
- ```text
16
- /loop 5m check if the deployment finished and tell me what happened
17
- ```
18
-
19
- Matilda Code parses the interval, converts it to a cron expression, schedules the job, and confirms the cadence and job ID. It then immediately executes the prompt once — you don't have to wait for the first cron fire.
20
-
21
- ### Interval syntax
22
-
23
- Intervals are optional. You can lead with them, trail with them, or leave them out entirely.
24
-
25
- | Form | Example | Parsed interval |
26
- | :---------------------- | :------------------------------------ | :--------------------------- |
27
- | Leading token | `/loop 30m check the build` | every 30 minutes |
28
- | Trailing `every` clause | `/loop check the build every 2 hours` | every 2 hours |
29
- | No interval | `/loop check the build` | defaults to every 10 minutes |
30
-
31
- Supported units are `s` for seconds, `m` for minutes, `h` for hours, and `d` for days. Seconds are rounded up to the nearest minute since cron has one-minute granularity. Intervals that don't divide evenly into their unit, such as `7m` or `90m`, are rounded to the nearest clean interval and Matilda Code tells you what it picked.
32
-
33
- ### Loop over another command
34
-
35
- The scheduled prompt can itself be a command or skill invocation. This is useful for re-running a workflow you've already packaged.
36
-
37
- ```text
38
- /loop 20m /review-pr 1234
39
- ```
40
-
41
- Each time the job fires, Matilda Code runs `/review-pr 1234` as if you had typed it.
42
-
43
- ### Manage loops
44
-
45
- `/loop` also supports two subcommands for managing existing jobs:
46
-
47
- ```text
48
- /loop list
49
- ```
50
-
51
- Lists all scheduled jobs with their IDs and cron expressions.
52
-
53
- ```text
54
- /loop clear
55
- ```
56
-
57
- Cancels all scheduled jobs at once.
58
-
59
- ## Set a one-time reminder
60
-
61
- For one-shot reminders, describe what you want in natural language instead of using `/loop`. Matilda Code schedules a single-fire task that deletes itself after running.
62
-
63
- ```text
64
- remind me at 3pm to push the release branch
65
- ```
66
-
67
- ```text
68
- in 45 minutes, check whether the integration tests passed
69
- ```
70
-
71
- Matilda Code pins the fire time to a specific minute and hour using a cron expression and confirms when it will fire.
72
-
73
- ## Manage scheduled tasks
74
-
75
- Ask Matilda Code in natural language to list or cancel tasks, or reference the underlying tools directly.
76
-
77
- ```text
78
- what scheduled tasks do I have?
79
- ```
80
-
81
- ```text
82
- cancel the deploy check job
83
- ```
84
-
85
- Under the hood, Matilda Code uses these tools:
86
-
87
- | Tool | Purpose |
88
- | :----------- | :-------------------------------------------------------------------------------------------------------------- |
89
- | `CronCreate` | Schedule a new task. Accepts a 5-field cron expression, the prompt to run, and whether it recurs or fires once. |
90
- | `CronList` | List all scheduled tasks with their IDs, schedules, and prompts. |
91
- | `CronDelete` | Cancel a task by ID. |
92
-
93
- Each scheduled task has an 8-character ID you can pass to `CronDelete`. A session can hold up to 50 scheduled tasks at once.
94
-
95
- ## How scheduled tasks run
96
-
97
- The scheduler checks every second for due tasks and enqueues them when the session is idle. A scheduled prompt fires between your turns, not while Matilda Code is mid-response. If Matilda Code is busy when a task comes due, the prompt waits until the current turn ends.
98
-
99
- All times are interpreted in your local timezone. A cron expression like `0 9 * * *` means 9am wherever you're running Matilda Code, not UTC.
100
-
101
- ### Jitter
102
-
103
- To avoid every session hitting the API at the same wall-clock moment, the scheduler adds a small deterministic offset to fire times:
104
-
105
- - **Recurring tasks** fire up to 10% of their period late, capped at 15 minutes. An hourly job might fire anywhere from `:00` to `:06`.
106
- - **One-shot tasks** scheduled for the top or bottom of the hour (minute `:00` or `:30`) fire up to 90 seconds early.
107
-
108
- The offset is derived from the task ID, so the same task always gets the same offset. If exact timing matters, pick a minute that is not `:00` or `:30`, for example `3 9 * * *` instead of `0 9 * * *`, and the one-shot jitter will not apply.
109
-
110
- ### Three-day expiry
111
-
112
- Recurring tasks automatically expire 3 days after creation. The task fires one final time, then deletes itself. This bounds how long a forgotten loop can run. If you need a recurring task to last longer, cancel and recreate it before it expires.
113
-
114
- One-shot tasks do not expire on a timer — they simply delete themselves after firing once.
115
-
116
- ## Cron expression reference
117
-
118
- `CronCreate` accepts standard 5-field cron expressions: `minute hour day-of-month month day-of-week`. All fields support wildcards (`*`), single values (`5`), steps (`*/15`), ranges (`1-5`), and comma-separated lists (`1,15,30`).
119
-
120
- | Example | Meaning |
121
- | :------------- | :--------------------------- |
122
- | `*/5 * * * *` | Every 5 minutes |
123
- | `0 * * * *` | Every hour on the hour |
124
- | `7 * * * *` | Every hour at 7 minutes past |
125
- | `0 9 * * *` | Every day at 9am local |
126
- | `0 9 * * 1-5` | Weekdays at 9am local |
127
- | `30 14 15 3 *` | March 15 at 2:30pm local |
128
-
129
- Day-of-week uses `0` or `7` for Sunday through `6` for Saturday. When both day-of-month and day-of-week are constrained (neither is `*`), a date matches if either field matches — this follows standard vixie-cron semantics.
130
-
131
- Extended syntax like `L`, `W`, `?`, and name aliases such as `MON` or `JAN` is not supported.
132
-
133
- ## Limitations
134
-
135
- Session-scoped scheduling has inherent constraints:
136
-
137
- - Tasks only fire while Matilda Code is running and idle. Closing the terminal or letting the session exit cancels everything.
138
- - No catch-up for missed fires. If a task's scheduled time passes while Matilda Code is busy on a long-running request, it fires once when Matilda Code becomes idle, not once per missed interval.
139
- - No persistence across restarts. Restarting Matilda Code clears all session-scoped tasks.