dreamcontext 0.17.1 → 0.18.0
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.
- package/README.md +321 -565
- package/agents/sleep-product.md +21 -2
- package/agents/sleep-state.md +24 -0
- package/agents/sleep-tasks.md +16 -0
- package/dist/agents/sleep-product.md +21 -2
- package/dist/agents/sleep-state.md +24 -0
- package/dist/agents/sleep-tasks.md +16 -0
- package/dist/dashboard/announcements/dashboard-highlights-0-17-0-18.excalidraw.md +1531 -0
- package/dist/dashboard/announcements/goal-skill-v2.excalidraw.md +1490 -0
- package/dist/dashboard/announcements/task-manager.excalidraw.md +1217 -0
- package/dist/dashboard/announcements/visual-announcements.excalidraw.md +1373 -0
- package/dist/dashboard/announcements.json +38 -0
- package/dist/dashboard/assets/{BrainCanvas3D-DyF_3yYD.js → BrainCanvas3D-D9G3dOLf.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-Do8VMBA0.js → _baseUniq-Cyshlz4Y.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-DmbXDb2R.js → ar-SA-G6X2FPQ2-qj-2Cbgo.js} +1 -1
- package/dist/dashboard/assets/{arc-CwtUBQfU.js → arc-0OnX5WDs.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-O9bOog_f.js → architectureDiagram-Q4EWVU46-Cx3c0nUi.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-c9Zk10vG.js → az-AZ-76LH7QW2-CBuoh6M3.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-uMTg84lX.js → bg-BG-XCXSNQG7-X5QYyZWx.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-BTENXCSO.js → blockDiagram-DXYQGD6D-BwESAg1j.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-DUFKHcua.js → bn-BD-2XOGV67Q-DlodQLNR.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-DMXPWRiQ.js → c4Diagram-AHTNJAMY-CopL0lbP.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-BuYX1q89.js → ca-ES-6MX7JW3Y-DfqF6Yhy.js} +1 -1
- package/dist/dashboard/assets/channel-BLisRbYb.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-DgefvnWS.js → chunk-4BX2VUAB-CRwifLK3.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-BnFO5G1t.js → chunk-4TB4RGXK-uxJYY_64.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-COm2TYEM.js → chunk-55IACEB6-DhYIp7Oc.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-CtsGCwZp.js → chunk-EDXVE4YY-CCxfcirt.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-cfSvx35j.js → chunk-FMBD7UC4-D7OC8QFC.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-DAhDKteL.js → chunk-OYMX7WX6-CwHgaUQo.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-B5h4qML3.js → chunk-QZHKN3VN-7Idpf6YJ.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-CGp_NiRg.js → chunk-YZCP3GAM-D4Lh0fgr.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-CgqeQiHi.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-CgqeQiHi.js +1 -0
- package/dist/dashboard/assets/clone-CQXNMCV5.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-Dk7CMFA4.js → cose-bilkent-S5V4N54A-BYcMtJTF.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-zfUTiS_d.js → cs-CZ-2BRQDIVT-rnrpKdSJ.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-CU14f8NA.js → da-DK-5WZEPLOC-D5OGAvk7.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-BiMVxC4Q.js → dagre-KV5264BT-V0f1_b4R.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-CDOHAJGo.js → de-DE-XR44H4JA-CDyb8YfL.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-DfJEsVTA.js → diagram-5BDNPKRD-BmpizoaS.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-CztLHIcY.js → diagram-G4DWMVQ6-ClQg-LTu.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-DqoQLlWK.js → diagram-MMDJMWI5-BkXcDMIV.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-DvyvQBCc.js → diagram-TYMM5635-BbFiiCM2.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-ChUphbcv.js → el-GR-BZB4AONW-Y1YnKZL0.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-D_uSs2_2.js → erDiagram-SMLLAGMA-Dzdv7_l5.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-BNalBEhb.js → es-ES-U4NZUMDT-D0T536hs.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-BMiQyA2y.js → eu-ES-A7QVB2H4-Bfrya0et.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-Bd6ZnTSo.js → fa-IR-HGAKTJCU-pYE_hG-L.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-BWAfJadC.js → fi-FI-Z5N7JZ37-D3C-fNyk.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-Bmsp6kyU.js → flowDiagram-DWJPFMVM-CFhyjwKY.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-CspbYzOW.js → fr-FR-RHASNOE6-CgwnG5JW.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-wEdysXo_.js → ganttDiagram-T4ZO3ILL-BRKRiSzf.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-BEiGpPBj.js → gitGraphDiagram-UUTBAWPF-CTqCK49d.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CV76vsWr.js → gl-ES-HMX3MZ6V-DjJTqTm3.js} +1 -1
- package/dist/dashboard/assets/{graph-CZFIeNHZ.js → graph-D429kSbY.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-Y1VoXJ_H.js → he-IL-6SHJWFNN-C84FlH6r.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-Crh5S49o.js → hi-IN-IWLTKZ5I-Blhkfum2.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-D4I3gCbp.js → hu-HU-A5ZG7DT2-DLC1JfN-.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-Chvzkuvi.js → id-ID-SAP4L64H-C3pB_IWB.js} +1 -1
- package/dist/dashboard/assets/image-FgR93jdt.js +1 -0
- package/dist/dashboard/assets/index-2m8ueOUn.js +1 -0
- package/dist/dashboard/assets/index-CWwjuihq.css +32 -0
- package/dist/dashboard/assets/{index-C7Bo5AQH.js → index-CbOXCDms.js} +1 -1
- package/dist/dashboard/assets/index-SJ64pf-4.js +551 -0
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-BzfuDHl4.js → infoDiagram-42DDH7IO-CIzDShDw.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-BVoNJ9VS.js → ishikawaDiagram-UXIWVN3A-CuasYzdX.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-BH_gN5es.js → it-IT-JPQ66NNP-DGGEoNPu.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-DU_WmLVa.js → ja-JP-DBVTYXUO-CEqP9aps.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-DbwICa_a.js → journeyDiagram-VCZTEJTY-DHiq2OTQ.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-KYU9qowM.js → kaa-6HZHGXH3-GOFmTAXq.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-bjhyiUq5.js → kab-KAB-ZGHBKWFO-B865Wwzu.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-D9XucLs4.js → kanban-definition-6JOO6SKY-BhlTKFbL.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CYTx_dAZ.js → kk-KZ-P5N5QNE5-CNfuE6b6.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-DqsuY4Lf.js → km-KH-HSX4SM5Z-CsmgRWxu.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-BZe7NywF.js → ko-KR-MTYHY66A-B_02RgEz.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-F5d6HFWt.js → ku-TR-6OUDTVRD-JfQA5u05.js} +1 -1
- package/dist/dashboard/assets/{layout-CotqU0S9.js → layout-DvrQSvOI.js} +1 -1
- package/dist/dashboard/assets/{linear-Dqv87Scf.js → linear-6r0qttLs.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-BCCuaPbS.js → lt-LT-XHIRWOB4-DWFUXEdf.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-NLGi-vJ6.js → lv-LV-5QDEKY6T-C5yAd0n_.js} +1 -1
- package/dist/dashboard/assets/{min-BbJdnc3h.js → min-D_EP9dBf.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-Dk4QySu7.js → mindmap-definition-QFDTVHPH-Col3ao9B.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-BnGDIgVN.js → mr-IN-CRQNXWMA-Dwjz0Xdm.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-CspgYE9_.js → my-MM-5M5IBNSE-EXJDNyjA.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-BeRPw3hu.js → nb-NO-T6EIAALU-BWm2bgLd.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-C-G-bljM.js → nl-NL-IS3SIHDZ-f8nP-yp-.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-Ct7VZY8D.js → nn-NO-6E72VCQL-B0c_gCNR.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-Cv5-C4Qq.js → oc-FR-POXYY2M6-C40PSwAh.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-DAgkIThL.js → pa-IN-N4M65BXN-DDcgXFkB.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-vidRYabK.js → percentages-BXMCSKIN-MHBQP8nI.js} +7 -7
- package/dist/dashboard/assets/{pica-Cy-Xl-mi.js → pica-C5CFA09W.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-BnP4-zwd.js → pieDiagram-DEJITSTG-DFHmB0fL.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-BuJQ3HD-.js → pl-PL-T2D74RX3-yFTBt0Xu.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-BbAqsvD6.js → pt-BR-5N22H2LF-ilAW3Fdv.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-DzFJedU3.js → pt-PT-UZXXM6DQ-CXHFN95K.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-BXN88cHy.js → quadrantDiagram-34T5L4WZ-CR732_oP.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-D34hL42a.js → requirementDiagram-MS252O5E-mKoVG52Z.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-BV2-sOiv.js → ro-RO-JPDTUUEW-BKlWpyF4.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-BCL4N9Ej.js → ru-RU-B4JR7IUQ-BGoxlhJm.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-0mFeok-3.js → sankeyDiagram-XADWPNL6-DXipts7M.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-C-5nW5j6.js → sequenceDiagram-FGHM5R23-DFQhU8q7.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-CNhaw4jx.js → si-LK-N5RQ5JYF-yDbJWFTH.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-mHCphOXu.js → sk-SK-C5VTKIMK-DglyhbNB.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC--lzgHthQ.js → sl-SI-NN7IZMDC-DPfq0s4I.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-C50iDFqe.js → stateDiagram-FHFEXIEX-Dm50jiEh.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-CoSm11sD.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-DNsjL37s.js → subset-shared.chunk-OHz6M6ct.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-BaV3r-bl.js → subset-worker.chunk-BzwrOBtO.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-ckw8jfGN.js → sv-SE-XGPEYMSR-BLHNwr4k.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-CSeNmVhS.js → ta-IN-2NMHFXQM-Dw-6hUpN.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-Cvn1sg_3.js → th-TH-HPSO5L25-DPkcM_k9.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-DRYfuqHT.js → timeline-definition-GMOUNBTQ-BKFNQ_7e.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-CyhY22TB.js → tr-TR-DEFEU3FU-rBVsY5RS.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-BvvAEO6U.js → uk-UA-QMV73CPH-CV6_yTZs.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-Crril7Cj.js → vennDiagram-DHZGUBPP-BZb_r5tY.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-c7AwSUZ8.js → vi-VN-M7AON7JQ-CJMgSsLz.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-Da5AhSWU.js → wardley-RL74JXVD-DgqjmWyN.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-C4GeB_Df.js → wardleyDiagram-NUSXRM2D-BDpniS9m.js} +1 -1
- package/dist/dashboard/assets/webviewWindow-Bwv2421L.js +1 -0
- package/dist/dashboard/assets/window-BObcHN8e.js +1 -0
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-BPCFKXqR.js → xychartDiagram-5P7HB3ND-CCyPcx2A.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-BvNiZwKU.js → zh-CN-LNUGB5OW-9LJLF_AC.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-CCFtoCWb.js → zh-HK-E62DVLB3-IefAiePp.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-bYBr-stu.js → zh-TW-RAJ6MFWO-CHeY9rNZ.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +4099 -1538
- package/dist/skill-packs/agents/goal-implementer.md +42 -1
- package/dist/skill-packs/agents/goal-plan-reviewer.md +7 -0
- package/dist/skill-packs/agents/goal-planner.md +34 -0
- package/dist/skill-packs/catalog.json +31 -21
- package/dist/skill-packs/excalidraw/SKILL.md +244 -13
- package/dist/skill-packs/excalidraw/examples/Chart Kit.excalidraw.md +15740 -0
- package/dist/skill-packs/excalidraw/examples/Wireframe Kit.excalidraw.md +16860 -0
- package/dist/skill-packs/excalidraw/examples/atomic_check.js +99 -0
- package/dist/skill-packs/excalidraw/examples/chart.spec.json +122 -0
- package/dist/skill-packs/excalidraw/examples/chart_board.js +173 -0
- package/dist/skill-packs/excalidraw/examples/hello.spec.json +79 -9
- package/dist/skill-packs/excalidraw/examples/visual_board.js +82 -0
- package/dist/skill-packs/excalidraw/examples/wireframe_board.js +161 -0
- package/dist/skill-packs/excalidraw/scripts/build_excalidraw.js +292 -27
- package/dist/skill-packs/excalidraw/scripts/lib/charts.js +771 -0
- package/dist/skill-packs/excalidraw/scripts/lib/style.js +369 -35
- package/dist/skill-packs/excalidraw/scripts/lib/wireframe.js +406 -0
- package/dist/skill-packs/goal-skill/SKILL.md +369 -100
- package/dist/skill-packs/goal-skill/assets/goal-skill-demo.cjs +51 -0
- package/dist/skill-packs/goal-skill/assets/goal-skill-viewer.cjs +181 -0
- package/package.json +2 -1
- package/skill/references/integrations.md +54 -0
- package/skill/references/knowledge-and-recall.md +3 -1
- package/skill/references/sleep.md +4 -4
- package/skill-packs/agents/goal-implementer.md +42 -1
- package/skill-packs/agents/goal-plan-reviewer.md +7 -0
- package/skill-packs/agents/goal-planner.md +34 -0
- package/skill-packs/catalog.json +31 -21
- package/skill-packs/excalidraw/SKILL.md +244 -13
- package/skill-packs/excalidraw/examples/Chart Kit.excalidraw.md +15740 -0
- package/skill-packs/excalidraw/examples/Wireframe Kit.excalidraw.md +16860 -0
- package/skill-packs/excalidraw/examples/atomic_check.js +99 -0
- package/skill-packs/excalidraw/examples/chart.spec.json +122 -0
- package/skill-packs/excalidraw/examples/chart_board.js +173 -0
- package/skill-packs/excalidraw/examples/hello.spec.json +79 -9
- package/skill-packs/excalidraw/examples/visual_board.js +82 -0
- package/skill-packs/excalidraw/examples/wireframe_board.js +161 -0
- package/skill-packs/excalidraw/scripts/build_excalidraw.js +292 -27
- package/skill-packs/excalidraw/scripts/lib/charts.js +771 -0
- package/skill-packs/excalidraw/scripts/lib/style.js +369 -35
- package/skill-packs/excalidraw/scripts/lib/wireframe.js +406 -0
- package/skill-packs/goal-skill/SKILL.md +369 -100
- package/skill-packs/goal-skill/assets/goal-skill-demo.cjs +51 -0
- package/skill-packs/goal-skill/assets/goal-skill-viewer.cjs +181 -0
- package/skill-task-manager/SKILL.md +93 -0
- package/dist/dashboard/assets/channel-2YfRjala.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DB_UnN1h.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DB_UnN1h.js +0 -1
- package/dist/dashboard/assets/clone-DaDvB3N6.js +0 -1
- package/dist/dashboard/assets/index-BIfrbaFS.js +0 -516
- package/dist/dashboard/assets/index-BdZ3tppu.css +0 -32
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-eW9-s0Sm.js +0 -1
- package/dist/dashboard/assets/webviewWindow-BbG9Cr7f.js +0 -1
- package/dist/dashboard/assets/window-DmNpeJAL.js +0 -1
package/README.md
CHANGED
|
@@ -1,74 +1,63 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="dashboard/public/
|
|
2
|
+
<img src="dashboard/public/logo.png" alt="dreamcontext" width="128" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<h1 align="center">dream<span>context</span></h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
|
|
9
|
-
It remembers every decision you made, knows how your project is structured,<br/>
|
|
10
|
-
and is learning to act on that knowledge so that every session starts ready instead of blind.<br/>
|
|
11
|
-
Built for founders and builders, technical or not, who are tired of watching their agent<br/>
|
|
12
|
-
re-discover context it already had.
|
|
8
|
+
<strong>Run your whole project through your agents.</strong>
|
|
13
9
|
</p>
|
|
14
10
|
|
|
15
11
|
<p align="center">
|
|
16
|
-
<
|
|
17
|
-
|
|
12
|
+
<em>You, your team, and your agents — all seeing the same big picture.</em>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
dreamcontext is the layer where your project actually lives — structured knowledge,<br/>
|
|
17
|
+
product features and PRDs, tasks and roadmap, live metrics — in files both humans<br/>
|
|
18
|
+
and agents read, and agents keep true.
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<sub>Works with <strong>Claude Code</strong> today. Built agent-agnostic.</sub>
|
|
18
23
|
</p>
|
|
19
24
|
|
|
20
25
|
<p align="center">
|
|
21
26
|
<a href="#why">Why</a> ·
|
|
22
|
-
<a href="#
|
|
27
|
+
<a href="#it-starts-with-memory">It Starts with Memory</a> ·
|
|
23
28
|
<a href="#quick-start">Quick Start</a> ·
|
|
24
|
-
<a href="#
|
|
25
|
-
<a href="#staying-up-to-date">Updating</a> ·
|
|
26
|
-
<a href="#sleepy--search--ask-your-brain">Sleepy</a> ·
|
|
29
|
+
<a href="#the-cli">CLI</a> ·
|
|
27
30
|
<a href="#dashboard">Dashboard</a> ·
|
|
28
|
-
<a href="#desktop-app">
|
|
29
|
-
<a href="#
|
|
30
|
-
<a href="#
|
|
31
|
-
<a href="#
|
|
32
|
-
<a href="#
|
|
33
|
-
<a href="#brain-cloud-sync">Brain Sync</a> ·
|
|
34
|
-
<a href="#linked-repos">Linked Repos</a> ·
|
|
35
|
-
<a href="#commands">Commands</a> ·
|
|
36
|
-
<a href="DEEP-DIVE.md">Deep Dive</a>
|
|
31
|
+
<a href="#desktop-app">Mac App</a> ·
|
|
32
|
+
<a href="#built-for-teams">Teams</a> ·
|
|
33
|
+
<a href="#skills">Skills</a> ·
|
|
34
|
+
<a href="#cli-reference">Reference</a> ·
|
|
35
|
+
<a href="#why-its-built-this-way">Deep Dive</a>
|
|
37
36
|
</p>
|
|
38
37
|
|
|
39
38
|
<p align="center">
|
|
40
|
-
<img src="public/image/
|
|
39
|
+
<img src="public/image/diagram-loop.png" alt="The loop — Work with your agents, agents Gather more through connectors, Sleep consolidates everything into human-readable files, Sync carries the picture to your team — all feeding one shared big picture" width="880" />
|
|
41
40
|
</p>
|
|
42
41
|
|
|
43
42
|
<p align="center">
|
|
44
|
-
<sub>The
|
|
43
|
+
<sub>The loop: you <strong>work</strong> with agents · agents <strong>gather</strong> more through connectors · <strong>sleep</strong> consolidates it into the single source of truth · <strong>sync</strong> carries it to your team. Repeat.</sub>
|
|
45
44
|
</p>
|
|
46
45
|
|
|
47
46
|
> **Under active development.** APIs and commands may change before v1.0.
|
|
48
47
|
|
|
49
48
|
---
|
|
50
49
|
|
|
51
|
-
## Sleepy — search & ask your brain
|
|
52
|
-
|
|
53
|
-
**Sleepy** is the front door to your project's brain — the first thing you see in the dashboard. It turns the structured context dreamcontext maintains into something you can interrogate directly:
|
|
54
|
-
|
|
55
|
-
- **Search** — type a query and get instantly-ranked hits across your knowledge, features, tasks, core and memory. Each hit shows the most relevant chunk and jumps straight to the source.
|
|
56
|
-
- **Ask** — pose a question in plain language and Sleepy answers from your own brain, with the source documents cited inline.
|
|
57
|
-
- **Chat** — go deeper with a real, multi-turn conversation: Sleepy runs a **Claude Code** session *inside your vault*, streamed live, so it can read across the whole project to answer follow-ups. It's **read-only by design** — planning permission mode plus disallowed action tools and a guard prompt mean it can never write, edit, or run commands — and you pick the depth: **normal** for fast answers, **intelligent** for harder questions.
|
|
58
|
-
|
|
59
|
-
Search and the extractive Ask run on the same field-weighted **BM25** recall engine as `dreamcontext memory recall` — entirely **local, instant, and zero-token**; nothing is sent to an external model and the answer is grounded in your own files. Chat is the one surface that calls a model, and even then it only ever **reads** your project. The idle view shows your context "in orbit" — knowledge, features, tasks, core and memory circling the dream gem — so you can focus a single type or just start typing.
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
50
|
## Why
|
|
64
51
|
|
|
65
|
-
|
|
52
|
+
Every project has the same two problems — and they are secretly one problem.
|
|
53
|
+
|
|
54
|
+
**Your agent forgets.** Every session starts from scratch: it greps for a decision it already made yesterday, reads a few files, searches again, and burns thousands of tokens re-discovering context it already had. By the time it says "Ok, I understand the codebase," you haven't started working yet. And an agent without the full picture doesn't just waste tokens — it makes real mistakes: fetching whole collections instead of filtering at the query level, optimizing for making the test pass instead of making the system correct.
|
|
66
55
|
|
|
67
|
-
|
|
56
|
+
**Your team's docs rot.** The PRD is three sprints old. The metric in the deck was pasted in last May. The architecture doc describes the system you *used* to have. Everyone knows the docs are stale, so nobody trusts them — and nobody updates what nobody reads.
|
|
68
57
|
|
|
69
|
-
|
|
58
|
+
Same root cause: **context that nobody maintains.** dreamcontext fixes both at once by making the maintenance the agents' job. The agent gets structured, pre-loaded context before its first message. You and your team get readable files you can open, audit, and correct. **One picture everyone — human or agent — can act on.**
|
|
70
59
|
|
|
71
|
-
|
|
60
|
+
These two are just the headline. Metrics scattered across five dashboards, roadmaps that turn into unreachable abstractions, platforms that make you work their way, knowledge that leaves when a teammate does, embedded AI you can't audit — the full problem catalog, with what each one became, is in the **[deep dive →](https://github.com/meanllbrl/dreamcontext/wiki/The-Problem-In-Depth)**.
|
|
72
61
|
|
|
73
62
|
<table>
|
|
74
63
|
<tr>
|
|
@@ -83,14 +72,25 @@ And every session starts from scratch. Your agent greps for a decision it alread
|
|
|
83
72
|
</tr>
|
|
84
73
|
</table>
|
|
85
74
|
|
|
86
|
-
|
|
75
|
+
## It Starts with Memory
|
|
76
|
+
|
|
77
|
+
An agent can only run your project if it *remembers* your project. Everything in dreamcontext stands on one mechanism, modeled on how a real brain works:
|
|
78
|
+
|
|
79
|
+
<p align="center">
|
|
80
|
+
<img src="public/image/diagram-memory.png" alt="The memory mechanism: Capture (hooks and bookmarks record decisions while you work) → Sleep (agents fan out, distill sessions into human-readable knowledge) → Start ready (the next session opens with the full picture pre-loaded) — every session sharpens the next" width="880" />
|
|
81
|
+
</p>
|
|
87
82
|
|
|
88
|
-
|
|
83
|
+
- **Capture** — while you work, hooks and bookmarks record what matters — decisions, constraints, discoveries — with zero effort from you. Seven hooks do it automatically: Stop records what happened, SessionStart injects everything before the first message, SubagentStart briefs sub-agents, PreToolUse blocks blind exploration when curated context exists, UserPromptSubmit surfaces sleep debt and relevant memories on every message, PostToolUse auto-formats and type-checks edited files, PreCompact saves state before context compaction. Bookmarks tag the important moments with salience levels; critical ones trigger immediate consolidation advisories.
|
|
84
|
+
- **Sleep** — a brain doesn't file raw experience; it consolidates during sleep. So does dreamcontext: when enough has happened, agents fan out in parallel — reading bookmarks first, distilling transcripts for high-signal content, extracting recurring patterns, promoting learnings, cleaning stale entries — and fold it all back into human-readable files. The single source of truth, refreshed.
|
|
85
|
+
- **Start ready** — the next session opens with the full picture already loaded: identity, decisions, active work, the knowledge index. Zero tool calls. Anything deeper is one recall away — instant, local, zero tokens.
|
|
89
86
|
|
|
90
|
-
|
|
87
|
+
**Remember → learn → start ready.** Every surface below — knowledge, PRDs, roadmap, insights, team sync — is this mechanism wearing a different face.
|
|
91
88
|
|
|
92
89
|
<p align="center">
|
|
93
|
-
<img src="public/image/diagram-
|
|
90
|
+
<img src="public/image/diagram-sleep.png" alt="Sleep consolidation: accumulated debt triggers sleep start, which fans out to three parallel specialists — sleep-tasks, sleep-state, sleep-product — whose reports converge into one updated summary, then sleep done resets the debt" width="660" />
|
|
91
|
+
</p>
|
|
92
|
+
<p align="center">
|
|
93
|
+
<sub><strong>Sleep consolidation</strong> — when debt crosses a threshold, three specialists fold what changed back into the brain in parallel, then the meter resets.</sub>
|
|
94
94
|
</p>
|
|
95
95
|
|
|
96
96
|
<details>
|
|
@@ -143,19 +143,23 @@ flowchart LR
|
|
|
143
143
|
|
|
144
144
|
</details>
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
> Why memory works this way — the neuroscience behind bookmarks and sleep, and every design tradeoff — is in the **[deep dive →](https://github.com/meanllbrl/dreamcontext/wiki)**
|
|
147
|
+
|
|
148
|
+
## One Engine, Many Faces
|
|
149
|
+
|
|
150
|
+
The same memory mechanism powers every surface of the project. Files are structured by purpose — everything is local markdown and JSON: readable, editable, git-tracked, owned by you.
|
|
151
151
|
|
|
152
152
|
<p align="center">
|
|
153
|
-
<img src="public/image/diagram-
|
|
154
|
-
</p>
|
|
155
|
-
<p align="center">
|
|
156
|
-
<sub><strong>Sleep consolidation</strong> — when debt crosses a threshold, three specialists fold what changed back into the brain in parallel, then the meter resets.</sub>
|
|
153
|
+
<img src="public/image/diagram-surfaces.png" alt="One engine, many faces: the _dream_context/ memory engine at the center, surrounded by Knowledge, Features & PRDs, Tasks & Roadmap, Lab insights, Council, and Team sync" width="880" />
|
|
157
154
|
</p>
|
|
158
155
|
|
|
156
|
+
- **Knowledge** — curated, tagged, wikilinked docs; always current, never a dump. Open the folder in Obsidian and it's a knowledge graph.
|
|
157
|
+
- **Features & PRDs** — living product specs with freshness tracking, tied to real tasks and releases.
|
|
158
|
+
- **Tasks & Roadmap** — a full task lifecycle (kanban, sprints, custom fields) plus PO-authored [objectives](#roadmap-objectives--the-okr-board) with dependency-aware forecast and slip detection.
|
|
159
|
+
- **[Lab insights](#lab-insights)** — live metrics from your analytics, Stripe, or any API — curated, cached in the brain, visible to every session.
|
|
160
|
+
- **[Council](#council)** — multi-persona debates for the hard calls, synthesized into cited verdicts.
|
|
161
|
+
- **[Team sync](#built-for-teams)** — the whole picture reaches your team: git-backed brain sync, ClickUp / GitHub task backends, cross-project federation.
|
|
162
|
+
|
|
159
163
|
## Quick Start
|
|
160
164
|
|
|
161
165
|
```bash
|
|
@@ -239,6 +243,8 @@ your-project/
|
|
|
239
243
|
│ │ └── SKILL.md # Interactive brain refactor (drives the curator-* agents)
|
|
240
244
|
│ ├── skills/dreamcontext-deep-research/
|
|
241
245
|
│ │ └── SKILL.md # Iterative corpus synthesis (fans out dreamcontext-explore searchers)
|
|
246
|
+
│ ├── skills/task-manager/
|
|
247
|
+
│ │ └── SKILL.md # Task-scoped curate session (drives the dashboard Task Manager pane)
|
|
242
248
|
│ ├── agents/
|
|
243
249
|
│ │ ├── initializer-scout.md # bootstrap: intake → ingestion manifest
|
|
244
250
|
│ │ ├── initializer-ingestor.md # bootstrap: fan-out write into the hierarchy
|
|
@@ -252,7 +258,7 @@ your-project/
|
|
|
252
258
|
│ │ ├── sleep-product.md # these three in parallel
|
|
253
259
|
│ │ ├── sleep-federation.md # disabled (read-only federation; copy-sync parked on roadmap)
|
|
254
260
|
│ │ └── sleep-migration.md # conditional: when a migration is pending
|
|
255
|
-
│ └── settings.json # 7 hooks (see
|
|
261
|
+
│ └── settings.json # 7 hooks (see CLI Reference → System)
|
|
256
262
|
```
|
|
257
263
|
|
|
258
264
|
### Opening the context directory in Obsidian
|
|
@@ -269,483 +275,350 @@ dreamcontext install-instructions --platforms claude
|
|
|
269
275
|
|
|
270
276
|
This writes managed fenced blocks into `CLAUDE.md` at the project root, preserving existing non-managed content.
|
|
271
277
|
|
|
272
|
-
##
|
|
273
|
-
|
|
274
|
-
The core `dreamcontext` skill (installed by `install-skill`) teaches your agent the context system itself. On top of that, dreamcontext ships **curated skill packs and standalone skills** that give your agent domain expertise — loaded on demand, only when the work calls for it, so they cost nothing the rest of the time.
|
|
278
|
+
## The CLI
|
|
275
279
|
|
|
276
|
-
|
|
280
|
+
The `dreamcontext` binary is the backbone of everything — the dashboard, the desktop app, the hooks, and the agents all drive the same CLI. **Humans and agents share the same verbs**, which is exactly why the picture stays shared: there is no agent-only API and no human-only UI, just one command surface over plain files.
|
|
277
281
|
|
|
278
|
-
|
|
279
|
-
- **`curator`** — interactive brain **refactor**: the periodic re-organization the conservative sleep cycle won't do. It can MOVE, MERGE, SPLIT, RENAME, RE-TYPE, and RETIRE content to conform the whole brain to current conventions — deduping near-duplicate knowledge (`dreamcontext knowledge merge`), enforcing single-source-of-truth, and normalizing tags (audit → confirm plan → execute → verify).
|
|
280
|
-
- **`dreamcontext-deep-research`** — the heavy, iterative counterpart to the fast `dreamcontext-explore` searcher, for **large / multi-project / federated** brains. When one explore pass comes back thin, the main agent fans out parallel `dreamcontext-explore` searchers across the whole curated corpus **and connected peer vaults**, loops to close gaps, **adversarially verifies** the load-bearing claims, and synthesizes a **cited** report — not raw hits (`/dreamcontext-deep-research`). Read-only; it researches *your brain* the way the generic deep-research skill researches the open web.
|
|
282
|
+
The design rule is **CLI for structure, native edits for content.** Making an agent edit a structured file (frontmatter, LIFO logs, JSON schemas) costs five operations — read, understand the format, reason where the edit goes, edit, verify. The CLI collapses that to one call:
|
|
281
283
|
|
|
282
284
|
```bash
|
|
283
|
-
|
|
284
|
-
dreamcontext
|
|
285
|
+
dreamcontext tasks log auth-refactor "JWT rotation done, refresh tokens left"
|
|
286
|
+
dreamcontext memory remember "Chose BM25 over mem0 — simpler, zero deps"
|
|
287
|
+
dreamcontext memory recall "how did we decide on the sleep fan-out"
|
|
288
|
+
dreamcontext knowledge create payment-flow
|
|
289
|
+
dreamcontext sleep status
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Rewriting a paragraph of prose is still the agent's native Read/Edit — the agent is good at content, wasteful at structure.
|
|
285
293
|
|
|
286
|
-
|
|
287
|
-
dreamcontext install-skill --packs engineering design
|
|
294
|
+
A few properties worth knowing:
|
|
288
295
|
|
|
289
|
-
|
|
290
|
-
|
|
296
|
+
- **Interactive mode.** Run `dreamcontext` with no arguments for a visual menu over every command, with multiline inputs, that stays open until you close it.
|
|
297
|
+
- **Non-interactive by default.** Every command takes flags, so agents, git hooks, and cron can drive it headless — task sync, for example, talks to ClickUp/GitHub REST directly (no MCP) precisely so it works where no agent is running.
|
|
298
|
+
- **Self-checking.** `dreamcontext doctor` validates the whole structure; `dreamcontext snapshot --tokens` shows exactly what a session pre-loads and what it costs.
|
|
299
|
+
- **Owned output.** Everything the CLI writes is markdown and JSON in your repo — diffable, reviewable, greppable.
|
|
291
300
|
|
|
292
|
-
#
|
|
293
|
-
|
|
294
|
-
|
|
301
|
+
The complete command surface is in the [CLI Reference](#cli-reference) below; commands that belong to a specific capability (teams, Council, Lab) appear in their sections.
|
|
302
|
+
|
|
303
|
+
## Dashboard
|
|
295
304
|
|
|
296
|
-
|
|
297
|
-
dreamcontext
|
|
305
|
+
```bash
|
|
306
|
+
dreamcontext dashboard # Open at localhost:4173
|
|
307
|
+
dreamcontext dashboard --port 8080 # Custom port
|
|
308
|
+
dreamcontext dashboard --no-open # Start without opening browser
|
|
298
309
|
```
|
|
299
310
|
|
|
300
|
-
|
|
311
|
+
A local web UI over the same files the CLI writes — React 19 on a zero-dependency Node HTTP server, shipped in the npm package. No accounts, no external services, no separate database.
|
|
301
312
|
|
|
302
|
-
|
|
303
|
-
|------|---------------|--------|
|
|
304
|
-
| **engineering** _(always-on)_ | Coding standards, security, testing, architecture | backend-principles, web-app-frontend, firebase-cloud-functions, firebase-firestore |
|
|
305
|
-
| **design** _(always-on)_ | Design systems, typography, color, accessibility | frontend-principles, design-web, design-mobile, onboarding-design |
|
|
306
|
-
| **growth** | Retention, distribution, monetization, analytics | performance-marketing, lean-analytics-experiments, lean-analytics-metrics |
|
|
307
|
-
| **brand-voice** | Brand enforcement, discovery, guideline generation | discover-brand, guideline-generation |
|
|
308
|
-
| **council** | Multi-persona debate for hard decisions | `council-persona`, `council-synthesizer` agents |
|
|
309
|
-
| **multi-review** | Multi-agent code review (router + niche specialists) | `review-router` + security / cloud-functions / frontend / edge-cases agents |
|
|
310
|
-
| **goal-skill** | Sub-agent-orchestrated execution: plan → review → implement → validate | `goal-planner`, `goal-plan-reviewer`, `goal-implementer`, `goal-validator` agents |
|
|
313
|
+
**Search & ask.** The front door is a search bar over your whole picture: instantly-ranked hits across knowledge, features, tasks, core, and memory, each jumping straight to its source — plus a plain-language **Ask** that answers from your own files with sources cited inline. Both run on the same local BM25 engine as `memory recall`: instant, zero tokens, nothing leaves your machine. A **Chat** mode goes deeper by running a read-only Claude Code session inside your vault (planning permission mode, action tools disallowed — it can never write or run commands), streamed live, with a normal/intelligent depth toggle.
|
|
311
314
|
|
|
312
|
-
**
|
|
315
|
+
**Tasks.** A drag-and-drop Kanban with saved views (each with its own persisted filter, sort, and grouping), two-pane include/exclude filters, a sprint-aware Versions popover with Current / Backlog / Completed buckets and inline set-current / mark-complete actions, per-card property badges (due date, RICE score, multi-assignee avatars), and an At-Risk alert for past-due or blocked work. The same tasks render along the time axis as a **Timeline (Gantt)**, a **Calendar**, an **Activity heatmap**, an **Eisenhower matrix**, and a **RICE** prioritization view. A Notion-style detail panel edits everything inline — status, dates, custom fields, changelog entries.
|
|
313
316
|
|
|
314
|
-
|
|
315
|
-
|-------|----------------|
|
|
316
|
-
| **business-idea-discovery** | Market selection, trend validation, competitor intel, pain-point mining, MVP scoping |
|
|
317
|
-
| **business-idea-validation** | Demand testing via landing page + waitlist, quick validation loops |
|
|
318
|
-
| **meta-marketing** | Meta / Facebook / Instagram ad campaigns end to end |
|
|
319
|
-
| **system-prompts** | Prompt engineering, cognitive architecture, agent design |
|
|
320
|
-
| **excalidraw** | Lay out images, labels, shapes, arrows, frames, and lanes on an Obsidian Excalidraw board from a small JSON spec — renders deterministically at near-zero token cost |
|
|
321
|
-
| **video-watching** | Turn a video into a time-mapped transcript with on-screen visuals described inline (whisper.cpp + ffmpeg), then reason about it |
|
|
317
|
+
**Memory surfaces.** A split-pane **Core editor** with live preview; a **Knowledge manager** with search and pin/unpin; a **Feature PRD viewer**; SQL ER-diagram previews for data structures; a **Brain graph** that renders the whole corpus as an interactive network (explicit and inferred links, node drawer, layout filters); **Council Hall** for browsing debates (overview, per-persona transcripts, persona × round matrix); a **Roadmap page** with a draggable forecast timeline where dependents slide and redden live when an objective slips; and a **Version manager** for planning, releasing, renaming, and deleting versions safely.
|
|
322
318
|
|
|
323
|
-
|
|
319
|
+
**Agent surfaces.** Every task can open its own **Task Manager** Claude session, pinned inside the task view, which *maintains* the document (revise, split, reconcile criteria) rather than building it — with **anchored doc comments**: select any span of the rendered task, drop a 💬, and send the batch to the session as one message; anchors are quotes, not offsets, so they survive live rewrites, and a git-style session diff shows what moved. **Delegate to Claude** hands a task card to a real coding session straight from the board. A **living agent dock** tracks every session with screen-true status — a session that stops to ask you something shakes, chimes, and jumps the queue as "Needs you."
|
|
324
320
|
|
|
325
|
-
|
|
321
|
+
**Ops.** A **Sleep tracker** (debt gauge, session history, every manual dashboard change); **change tracking** that records your edits to `.sleep.json` so agents consolidate them at the next sleep; and **Settings** for cloud-task tokens (gitignored, masked, never echoed), preview-then-provision custom fields, task-format overrides, and linked repos.
|
|
326
322
|
|
|
327
|
-
|
|
323
|
+
Light and dark mode with system detection; violet brand anchored by the dream-gem mark.
|
|
328
324
|
|
|
329
|
-
|
|
330
|
-
dreamcontext upgrade # Upgrade the CLI to the latest published version
|
|
331
|
-
dreamcontext upgrade --check # Just print "current: X latest: Y" and exit
|
|
332
|
-
dreamcontext update # Refresh this project's skill/agent/hook files to match the CLI
|
|
333
|
-
```
|
|
325
|
+
## Desktop App
|
|
334
326
|
|
|
335
|
-
|
|
327
|
+
> **macOS beta.** A native **Tauri 2** app that wraps the same dashboard server — one window for *every* project instead of a localhost tab per repo. Ships via the desktop release and the macOS one-line installer, not the npm package.
|
|
336
328
|
|
|
337
329
|
```bash
|
|
338
|
-
|
|
330
|
+
dreamcontext app install # Install to ~/Applications (no admin, no quarantine prompt)
|
|
331
|
+
dreamcontext app update # Update the installed app to the latest release
|
|
332
|
+
dreamcontext app status # Show installed app version and state
|
|
339
333
|
```
|
|
340
334
|
|
|
341
|
-
**
|
|
335
|
+
**One window over all your projects.** The launcher lists every registered [vault](#federation) and opens each project in its own window — multi-vault is multi-window over one shared Node server, each window pinned to its vault. Per-project status dots (green up-to-date / yellow needs-update / red folder-gone) let you update from the UI.
|
|
342
336
|
|
|
343
|
-
|
|
337
|
+
**Onboarding without a terminal.** A quiz-style wizard creates a new project (native folder picker), initializes an existing folder, or clones one from GitHub — sign in, search your repos, clone as a cancelable background job with live progress — then scaffolds `_dream_context/`, runs `setup`, and best-effort installs the global CLI. Deterministic and LLM-free; the success screen hands you a prompt to paste into your agent for the rich enrichment pass.
|
|
344
338
|
|
|
345
|
-
|
|
346
|
-
dreamcontext dashboard # Open at localhost:4173
|
|
347
|
-
dreamcontext dashboard --port 8080 # Custom port
|
|
348
|
-
dreamcontext dashboard --no-open # Start without opening browser
|
|
349
|
-
```
|
|
339
|
+
**A real agent terminal, in-app** _(beta)_. Drive Claude Code sessions inside any vault from a split-pane, multi-session terminal — per-pane tabs, ⌘D drag-to-split, ⌘T/⌘W, minimize-to-corner dock; sessions live in a detached DOM so the PTY never remounts. Drop an image to inject it into the vault; jump anywhere with the **⌘K command palette** (live BM25 recall + intelligent toggle). The dock is **screen-true** — status is read from the visible terminal buffer, not byte-flow, so a session waiting on you surfaces as "Needs you" (shake, chime, queue-jump) instead of flapping between ready and working.
|
|
350
340
|
|
|
351
|
-
A
|
|
341
|
+
**Sleepy — notch quick-capture** _(beta, off by default)_. A global-hotkey companion that drops a transparent notch panel over whatever you're doing, with an animated mascot whose mood follows your sleep debt. Pick a vault, type a thought, choose a mode: **Learn** (save to project memory, then enrich), **Ask** (one-shot Q&A, nothing saved), or **Sleep** (trigger a full consolidation for that vault from the notch). Enable in dashboard Settings → Sleepy.
|
|
352
342
|
|
|
353
|
-
|
|
343
|
+
**Federation, drawn.** The launcher renders your projects as an interactive board where you wire a **reads** relationship by clicking source → target — a violet wire means one project reads another's canonical memory live during recall (a reference, never a copy), gated by the target being Readable. An always-on Connections list spells out who reads whom in plain language.
|
|
354
344
|
|
|
355
|
-
|
|
356
|
-
<img src="public/image/landing-spotlight.png" alt="Feature spotlight — pick a faculty to see its live diagram" width="840" />
|
|
357
|
-
</p>
|
|
358
|
-
<p align="center">
|
|
359
|
-
<img src="public/image/landing-architecture.png" alt="Memory, organized like a mind — the layered brain-region map" width="840" />
|
|
360
|
-
</p>
|
|
345
|
+
**Cloud sync without git knowledge.** GitHub device-flow login (PAT fallback), a Settings toggle for whole-project sync, a team-updates badge when teammates push, one-click **"Resolve with AI"** for deferred prose merges — and if the project has no `origin`, the panel creates a private repo (or connects an existing one) and does the first push for you.
|
|
361
346
|
|
|
362
|
-
|
|
363
|
-
<tr>
|
|
364
|
-
<td width="50%">
|
|
347
|
+
**Always current, no notarization wait.** Delivery is CLI/curl-driven, so Gatekeeper's notarization check never fires (ad-hoc signing satisfies Apple Silicon). The app prefers your globally-installed, auto-upgrading CLI over its bundled copy, so ~95% of changes ride the normal CLI upgrade with no app rebuild. Downloaded artifacts require a matching `.sha256` or the install refuses.
|
|
365
348
|
|
|
366
|
-
|
|
349
|
+
> A working local beta — not yet Apple-signed/notarized, so first launch may need a right-click → Open. Windows/Linux are nice-to-have for later.
|
|
367
350
|
|
|
368
|
-
|
|
369
|
-
<td width="50%">
|
|
351
|
+
## Built for Teams
|
|
370
352
|
|
|
371
|
-
|
|
353
|
+
The loop's last stage: the picture reaches everyone. Four pieces, each doing one job — one brain shared by a team, tasks living where your team already works, one brain reading its siblings, and one brain governing bare code repos.
|
|
372
354
|
|
|
373
|
-
|
|
374
|
-
</tr>
|
|
375
|
-
<tr>
|
|
376
|
-
<td width="50%">
|
|
355
|
+
### Brain Cloud Sync
|
|
377
356
|
|
|
378
|
-
**
|
|
357
|
+
Lets a whole team work on the *same* brain. When you turn it on, dreamcontext syncs the **whole project** — your code, `.claude/`, and the brain under `_dream_context/` — to the project's own GitHub repo, so tasks, knowledge, and features are pushed, pulled, merged, and reviewed the way you already collaborate on code. Local-first the entire time: the brain stays plain markdown and JSON on disk; git is only the transport, not a new database.
|
|
379
358
|
|
|
380
|
-
|
|
381
|
-
|
|
359
|
+
```bash
|
|
360
|
+
dreamcontext brain enable # Turn cloud sync on — whole project → its GitHub origin (needs an origin)
|
|
361
|
+
dreamcontext brain status # Mode (full-repo | in-tree), remote, and current sync state
|
|
362
|
+
dreamcontext brain sync # Manual fetch → merge → commit → push, outside a sleep cycle
|
|
363
|
+
dreamcontext brain disable # Turn it off (the brain stays committed locally, never pushed)
|
|
364
|
+
```
|
|
382
365
|
|
|
383
|
-
|
|
366
|
+
- **Sync rides sleep.** Every `sleep done` runs fetch → merge → commit → push against `origin`, so teammates' consolidated context reaches you with no extra step. A sync failure never fails the sleep.
|
|
367
|
+
- **Deterministic files merge themselves; prose defers to an agent; code goes to you.** JSON and task status/changelog merge by rule (changelogs union, the furthest status wins). When two people edit the same *prose* section, the conflict goes to a semantic **merge agent** (the `/dream-sync` skill) that reads base/ours/theirs and writes the real merge. A real **code** conflict is left for your editor with native git markers — never mangled by an agent.
|
|
368
|
+
- **Two modes.** `full-repo` (cloud sync on) syncs the whole project on the current branch; **`in-tree`** (the safe default) commits the brain locally on sleep and **never auto-pushes**.
|
|
369
|
+
- **Nothing secret or machine-local is ever pushed.** A **scrub gate** blocks secrets and absolute local paths before every commit and push; the machine-local excludes are force-written into `.gitignore` before every stage; the auth token rides `GIT_ASKPASS` with a `0600` temp file — never the remote URL, the environment, or a process argument. Per-machine indexes, caches, and embeddings are gitignored and rebuilt locally.
|
|
370
|
+
- **Personal attribution, no per-person forks.** Attribution rides `person:<slug>` tags and changelog authors, not per-person file copies.
|
|
384
371
|
|
|
385
|
-
|
|
386
|
-
</tr>
|
|
387
|
-
<tr>
|
|
388
|
-
<td width="50%">
|
|
372
|
+
The [desktop app](#desktop-app) wraps the whole flow terminal-free — login, toggle, team-updates badge, AI conflict resolution, and origin creation.
|
|
389
373
|
|
|
390
|
-
|
|
374
|
+
### Remote Task Backends — ClickUp or GitHub Issues
|
|
391
375
|
|
|
392
|
-
|
|
393
|
-
|
|
376
|
+
Tasks default to local markdown files. Optionally they live in a **ClickUp** list or **GitHub Issues** instead — same CLI verbs, same dashboard, same recall and snapshot behavior, backed by a gitignored local mirror.
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
# ClickUp
|
|
380
|
+
dreamcontext config task-backend clickup # switch backend (gitignores mirror/sync files, installs git triggers)
|
|
381
|
+
dreamcontext config clickup-list <teamId> <spaceId> <listId>
|
|
382
|
+
dreamcontext config clickup-token [--user <name>] # stored in a gitignored secrets file (0600), never in .config.json
|
|
394
383
|
|
|
395
|
-
|
|
384
|
+
# GitHub Issues
|
|
385
|
+
dreamcontext config task-backend github # switch backend (same gitignored mirror + git triggers)
|
|
386
|
+
dreamcontext config github-repo <owner> <repo> # target repo (the switch flow also auto-discovers repos your token can see)
|
|
387
|
+
echo "$GITHUB_TOKEN" | dreamcontext config github-token # stored in the gitignored secrets file (0600), never in .config.json
|
|
396
388
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
389
|
+
# Either backend — same verbs:
|
|
390
|
+
dreamcontext tasks sync [push|pull|both] # manual two-way sync
|
|
391
|
+
dreamcontext tasks sync pull --reconcile # heal assignees + version that sit BELOW the watermark
|
|
392
|
+
dreamcontext tasks sync --refresh-meta # force-refresh cached statuses/members/fields (skip the hourly throttle)
|
|
393
|
+
dreamcontext tasks sync-hooks install # best-effort post-commit/pre-push triggers (can never fail git)
|
|
394
|
+
```
|
|
400
395
|
|
|
401
|
-
|
|
396
|
+
- Both backends talk to the provider's REST API directly (no MCP) — so sync works headless in git hooks, post-sleep consolidation, and cron.
|
|
397
|
+
- **GitHub** maps each task to an issue: the issue body holds the task, changelog entries become comments, `todo` / `in_progress` / `in_review` ride `dc:*` labels, and priority / urgency / tags / version ride reserved-prefix labels. Only `completed` closes the issue; a delete soft-closes as `not_planned`.
|
|
398
|
+
- **Local task images render on GitHub**: a locally-embedded image is uploaded to a dedicated `dreamcontext-assets` branch — content-sniffed by magic bytes, size-gated, content-addressed for dedupe — and linked by its hosted URL on the wire, while the local task keeps its canonical path.
|
|
399
|
+
- Sync is watermark-based on server time: one field-level `PUT` per task under the rate limit, changelog entries union-merge as comments, prose merges 3-way against the last synced base.
|
|
400
|
+
- **Conflicts are never silently lost**: when the remote wins, the local copy is preserved under `state/.conflicts/` and surfaced in the sync report and dashboard. Offline edits queue in `state/.tasks-queue.json` and replay idempotently.
|
|
401
|
+
- **Assignees resolve to real members**: tag a task `person:<slug>` (or `--person <name>`) and the name resolves against the live roster — fuzzy, diacritic-folded; ambiguous names abort, unmatched names warn. Assignments are never silently dropped or reassigned to the token owner. Tags and assignee changes push as per-item deltas.
|
|
402
|
+
- **Custom fields round-trip**: the recommended RICE/meta fields plus anything you declare in `overrides/task.md` are provisioned and synced — `select` as a ClickUp drop-down / GitHub label, the rest as native fields / body blocks. `tasks provision` reuses existing remote fields by name.
|
|
403
|
+
- **One list per project.** Two projects sharing one ClickUp list pull each other's tasks in as their own; `dreamcontext doctor` warns when two registered projects point at the same container. Set the list's statuses in the ClickUp UI **before** first sync.
|
|
404
|
+
- **Docs**: illustrated guide → [docs/clickup.md](docs/clickup.md); technical reference → [docs/remote-task-setup.md](docs/remote-task-setup.md).
|
|
402
405
|
|
|
403
|
-
|
|
406
|
+
### Federation
|
|
404
407
|
|
|
405
|
-
|
|
408
|
+
Most people end up with more than one dreamcontext project. **Federation** lets those projects discover each other and recall across each other **live** — each vault stays the single source of truth for its own knowledge and sees its peers' canonical knowledge by reference at query time. All opt-in, all local, no server in the middle, and **nothing is ever copied between vaults**.
|
|
406
409
|
|
|
407
410
|
```bash
|
|
408
|
-
dreamcontext
|
|
409
|
-
dreamcontext
|
|
410
|
-
dreamcontext
|
|
411
|
+
dreamcontext vaults add <name> <path> # Register a project directory as a vault
|
|
412
|
+
dreamcontext vaults discover ~/projects --register # Find + register every _dream_context/ project (idempotent)
|
|
413
|
+
dreamcontext vaults list / remove <name> # Inspect / unregister
|
|
414
|
+
|
|
415
|
+
dreamcontext config shareable on # Allow this vault to be recalled by peers
|
|
416
|
+
dreamcontext connect <vault> --direction out --topics api,auth # Connect to read a peer (out = read)
|
|
417
|
+
dreamcontext connections / disconnect <vault> # Inspect / remove connections
|
|
418
|
+
dreamcontext federation peers # Compact summary of readable peers
|
|
419
|
+
dreamcontext federation status # Connections + any leftover federated copies
|
|
420
|
+
dreamcontext federation purge --all # Remove leftover copies from the old sync path
|
|
421
|
+
|
|
422
|
+
dreamcontext memory recall "<query>" --vault other-project # Also search a named vault (repeatable)
|
|
423
|
+
dreamcontext memory recall "<query>" --connected # Span this vault + its out/both connections
|
|
424
|
+
dreamcontext memory recall "<query>" --all-vaults # Span this vault + every shareable vault
|
|
411
425
|
```
|
|
412
426
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
- **In-app Agent terminal & command palette _(beta)_.** Drive a real Claude Code session inside any vault from a split-pane, multi-session terminal surface — per-pane tab bars, ⌘D drag-to-split, ⌘T/⌘W, and a minimize-to-corner dock; sessions live in a detached DOM so the PTY never remounts. Drop an image to inject it straight into the vault, and jump anywhere with a **⌘K command palette** (live BM25 recall + intelligent toggle). A first-run prerequisite installer reports and one-click-installs the Claude CLI / node-pty.
|
|
417
|
-
- **Sleepy — notch quick-capture _(beta)_.** Off by default — enable it in dashboard Settings → Sleepy. A global-hotkey companion that drops a transparent notch panel over whatever you're doing, with an animated mascot whose mood follows your sleep debt. Pick a vault, type a thought, and choose a mode:
|
|
418
|
-
- **Learn** — saves the note to project memory, then enriches it.
|
|
419
|
-
- **Ask** — one-shot Q&A about the project; nothing is saved.
|
|
420
|
-
- **Sleep** — triggers a full consolidation cycle for that vault from the notch.
|
|
421
|
-
- **Continuous updates without Apple notarization.** The whole delivery path is CLI/curl-driven, so Gatekeeper's notarization check never fires (ad-hoc signing satisfies Apple Silicon). The app prefers your globally-installed, auto-upgrading CLI over its bundled copy, so ~95% of changes ride the normal CLI upgrade with no app rebuild. Downloaded artifacts require a matching `.sha256` or the install refuses.
|
|
427
|
+
**Connections are live read edges.** Connect to a peer and your recall (and the per-prompt recall hook) surfaces that peer's canonical docs *as they are in the source* — always current, no stale duplicate left behind. A peer is readable when your connection is `out`/`both`, it isn't stale, **and** it has opted in with `config shareable on`. A transitive-leak guard keeps a third vault from seeing what merely passed through this one.
|
|
428
|
+
|
|
429
|
+
> **Copy-based sync is parked on the roadmap.** Earlier builds pushed lossy digests into peers at sleep; copies went stale and bred duplicates, so those verbs are now inert no-ops (`federation purge` clears leftovers). A redesigned opt-in offline-mirror mode may return — its one genuine advantage is surviving a peer going offline, which live read can't.
|
|
422
430
|
|
|
423
|
-
|
|
431
|
+
### Linked Repos
|
|
432
|
+
|
|
433
|
+
One brain can **govern the bare code repos it points at** — products or services in their *own* GitHub repos, with no `_dream_context/` of their own, cloned to different paths on each teammate's machine (or not cloned at all). The brain becomes a control tower over a family of repos, decoupled from where any of them physically lives.
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
dreamcontext link add app-b ../app-b # Govern a repo — URL derived from its git origin (no clone/push happens)
|
|
437
|
+
dreamcontext links # List them: ✓ present (local path) / ✗ missing here (--json)
|
|
438
|
+
dreamcontext link clone app-c # Fetch a missing one to this machine — one-way, trust-gated clone
|
|
439
|
+
dreamcontext link rm app-b # Stop governing it (the machine-local path mapping is kept)
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Linking is a **pointer, not a pipe** — it records a **shared** `{name, gitRemoteUrl}` in `.config.json` (travels with the team) and a **machine-local** `url → path` mapping in `~/.dreamcontext/linked-repos.json` (never leaves your machine). Each session's snapshot shows a Linked-repos glance — present repos hand their resolved path to the agent so it can read and edit the governed code; missing ones show a one-line `link clone` hint. Manageable from **Settings → Cloud sync → Linked repos**. GitHub-only for now, and the clone path is hardened so a team-writable URL can never turn into code execution.
|
|
424
443
|
|
|
425
444
|
## Council
|
|
426
445
|
|
|
427
|
-
**Multi-persona debates for hard decisions.** When a question is too load-bearing for a single model pass — architecture calls, hiring reviews, risk-heavy migrations, brand critiques — a council
|
|
446
|
+
**Multi-persona debates for hard decisions.** When a question is too load-bearing for a single model pass — architecture calls, hiring reviews, risk-heavy migrations, brand critiques — a council convenes N personas through N rounds of structured deliberation and synthesizes a verdict that cites the contributing voices.
|
|
428
447
|
|
|
429
|
-
Each persona gets its own sub-agent with a scoped prompt, model choice, and aspects it advocates for. Between rounds, personas see a cross-context panel summarizing what everyone else said, so responses sharpen rather than repeat. A synthesizer
|
|
448
|
+
Each persona gets its own sub-agent with a scoped prompt, model choice, and aspects it advocates for. Between rounds, personas see a cross-context panel summarizing what everyone else said, so responses sharpen rather than repeat. A synthesizer writes the final report.
|
|
430
449
|
|
|
431
450
|
```bash
|
|
432
|
-
|
|
433
|
-
dreamcontext council create "Should we migrate from Postgres to Firestore?" \
|
|
434
|
-
--rounds 2
|
|
435
|
-
|
|
436
|
-
# Add personas (each gets a sub-agent and persona file)
|
|
451
|
+
dreamcontext council create "Should we migrate from Postgres to Firestore?" --rounds 2
|
|
437
452
|
dreamcontext council agent create migration-risk-auditor --model sonnet \
|
|
438
453
|
--aspects operational-risk,rollback-readiness,team-readiness
|
|
439
|
-
dreamcontext council agent create dx-champion --model opus
|
|
440
|
-
--aspects developer-experience,feature-velocity
|
|
441
|
-
dreamcontext council agent create user-advocate --model haiku \
|
|
442
|
-
--aspects end-user-impact,reliability-perception
|
|
443
|
-
|
|
444
|
-
# Drive rounds (the CLI orchestrates sub-agent dispatch; reports append as they return)
|
|
445
|
-
dreamcontext council round start 1
|
|
446
|
-
dreamcontext council round end 1 # Injects cross-context for R2+
|
|
447
|
-
dreamcontext council round start 2
|
|
448
|
-
dreamcontext council round end 2
|
|
449
|
-
|
|
450
|
-
# Synthesize the final report
|
|
451
|
-
dreamcontext council synthesize
|
|
452
|
-
dreamcontext council complete
|
|
453
|
-
|
|
454
|
-
# Optionally promote the verdict into knowledge
|
|
455
|
-
dreamcontext council promote --to knowledge/migration-decision
|
|
456
|
-
```
|
|
454
|
+
dreamcontext council agent create dx-champion --model opus --aspects developer-experience,feature-velocity
|
|
457
455
|
|
|
458
|
-
|
|
456
|
+
dreamcontext council round start 1 && dreamcontext council round end 1 # …repeat per round
|
|
457
|
+
dreamcontext council synthesize && dreamcontext council complete
|
|
458
|
+
dreamcontext council promote --to knowledge/migration-decision # Verdict → knowledge
|
|
459
|
+
```
|
|
459
460
|
|
|
460
|
-
|
|
461
|
+
Each debate stores its full state under `_dream_context/council/<id>/` (debate, round log, final report, per-persona folders with reports and research). The dashboard's **Council Hall** renders it all as a searchable grid and detail view. Ships as the `council` skill pack with the `council-persona` / `council-synthesizer` sub-agents; `council list / show / report / research` subcommands cover inspection.
|
|
461
462
|
|
|
462
463
|
## Memory Recall
|
|
463
464
|
|
|
464
|
-
Recall and remember across your project's curated context. BM25 ranking over knowledge files, feature PRDs, task files, `2.memory.md` sections, and `CHANGELOG.json` entries — deterministic, instant, no setup.
|
|
465
|
+
Recall and remember across your project's curated context. BM25 ranking over knowledge files, feature PRDs, task files, `2.memory.md` sections, and `CHANGELOG.json` entries — deterministic, instant, no setup: no daemon, no API keys, the corpus is rebuilt in memory on every call (under 100ms on a 40-doc corpus).
|
|
465
466
|
|
|
466
467
|
<p align="center">
|
|
467
468
|
<img src="public/image/diagram-recall.png" alt="Memory recall pipeline: your prompt → BM25F keyword match (field-weighted, stemming, synonyms) → Haiku recall (smallest cloud agent, 0-3 docs, BM25 fallback) → SessionStart snapshot (warm + cold knowledge, features, index, pinned)" width="860" />
|
|
468
469
|
</p>
|
|
469
470
|
|
|
470
471
|
```bash
|
|
471
|
-
|
|
472
|
-
dreamcontext memory recall "
|
|
473
|
-
|
|
474
|
-
# Filter by corpus type (knowledge | feature | task | memory | changelog)
|
|
475
|
-
dreamcontext memory recall "auth flow" --types knowledge,feature
|
|
476
|
-
dreamcontext memory recall "deprecated" --types changelog
|
|
477
|
-
|
|
478
|
-
# Machine-readable output for scripts
|
|
479
|
-
dreamcontext memory recall "rice prioritization" --json --top 3
|
|
480
|
-
|
|
481
|
-
# Quick-capture a decision or note — writes a CHANGELOG entry (type=note, scope=quick)
|
|
482
|
-
dreamcontext memory remember "Chose BM25 over mem0 after 3-reviewer review"
|
|
483
|
-
|
|
484
|
-
# Inspect the corpus
|
|
485
|
-
dreamcontext memory status
|
|
472
|
+
dreamcontext memory recall "how did we decide on the sleep fan-out" # top-5 hits with snippets
|
|
473
|
+
dreamcontext memory recall "auth flow" --types knowledge,feature # filter by corpus type
|
|
474
|
+
dreamcontext memory remember "Chose BM25 over mem0 after 3-reviewer review" # quick-capture → CHANGELOG entry
|
|
486
475
|
```
|
|
487
476
|
|
|
488
|
-
**Why not a vector DB or mem0.** dreamcontext content is already curated atomic facts
|
|
477
|
+
**Why not a vector DB or mem0.** dreamcontext content is already curated atomic facts. The LLM-extraction step a mem0-style stack provides solves a problem this system already solved; BM25 over the live corpus gives ~80% of the value at 1% of the complexity. (The full reasoning → [deep dive](https://github.com/meanllbrl/dreamcontext/wiki).)
|
|
489
478
|
|
|
490
|
-
**Hybrid recall _(experimental, opt-in)_.** For the remaining ~20% — paraphrased
|
|
479
|
+
**Hybrid recall _(experimental, opt-in)_.** For the remaining ~20% — paraphrased and cross-lingual queries (a Turkish question whose answer lives in an English doc) — an optional **local embedding layer** fuses on top of BM25. Fully offline after a one-time model download (`multilingual-e5-small`, ~113 MB), incremental content-hash cache (gitignored), confidence-gated fusion so exact-term queries stay byte-identical to BM25. On the benchmark: Turkish recall@1 2×, English paraphrase recall@1 +17 pts, zero regressed categories. Off by default:
|
|
491
480
|
|
|
492
481
|
```bash
|
|
493
482
|
dreamcontext recall hybrid # switch recall mode to BM25 + dense fusion
|
|
494
|
-
dreamcontext embed refresh # prewarm / refresh the embedding index
|
|
483
|
+
dreamcontext embed refresh # prewarm / refresh the embedding index
|
|
495
484
|
dreamcontext embed status # cache size, model, vector count
|
|
485
|
+
dreamcontext embed dedup --title "..." --stdin # semantic near-duplicate check for a candidate doc
|
|
496
486
|
```
|
|
497
487
|
|
|
498
|
-
Freshness is automatic
|
|
488
|
+
Freshness is automatic (lazy per-query refresh + an eager re-check at `sleep done`); if the model isn't installed, hybrid silently falls back to plain BM25. The same index powers a **near-duplicate gate during sleep**: before a specialist creates a doc, `embed dedup` scores the candidate against the corpus and advises **MERGE / REVIEW / CREATE** — advisory only, and a no-op on vaults with no embedding cache.
|
|
499
489
|
|
|
500
|
-
Hook injection is
|
|
501
|
-
|
|
502
|
-
**Recent CHANGELOG in the snapshot is tiered**: top 3 entries detailed (summary + ~300 char body), next 10 titles-only under an "Older" subheading. Everything older still lives in `CHANGELOG.json` and is reachable through `memory recall --types changelog`.
|
|
490
|
+
**Hook injection is ON by default**: top hits are auto-surfaced to the agent on every non-trivial prompt via the UserPromptSubmit hook (`DREAMCONTEXT_MEMORY_HOOK=0` to opt out). The snapshot's recent-CHANGELOG block is tiered — top 3 detailed, next 10 titles-only — and everything older stays reachable via `memory recall --types changelog`.
|
|
503
491
|
|
|
504
492
|
## Lab (Insights)
|
|
505
493
|
|
|
506
|
-
The numbers that tell you whether the project is working — weekly active users, conversion, revenue, error rate — live in external systems
|
|
507
|
-
|
|
508
|
-
An insight declares what to fetch (a generic **HTTP** adapter or a custom **script**), how to render it (`number` / `line` / `pie` / `raw`), a refresh **TTL**, and optional **tweaks** such as a time range. One command refreshes the cached snapshots:
|
|
494
|
+
The numbers that tell you whether the project is working — weekly active users, conversion, revenue, error rate — live in external systems. Getting them into the shared picture used to mean pasting a figure into a note, stale the moment you typed it. **Lab** closes the loop: define a named **insight** — a *curated* metric, never a raw dump — backed by any HTTP JSON API or a local script, and dreamcontext fetches it, rolls it up, caches it **in the brain**, and surfaces it to every session.
|
|
509
495
|
|
|
510
496
|
```bash
|
|
511
497
|
dreamcontext lab create weekly-active-users --title "Weekly Active Users" \
|
|
512
|
-
--render line --adapter http --group growth
|
|
513
|
-
dreamcontext lab credentials set analytics_token
|
|
514
|
-
dreamcontext lab sync --all
|
|
515
|
-
dreamcontext lab show weekly-active-users --json
|
|
498
|
+
--render line --adapter http --group growth --ttl 1440
|
|
499
|
+
dreamcontext lab credentials set analytics_token # gitignored, 0600, never printed (list shows names only)
|
|
500
|
+
dreamcontext lab sync --all # refresh every insight (skips fresh unless --force)
|
|
501
|
+
dreamcontext lab show weekly-active-users --json # cached series only — never re-fetches
|
|
502
|
+
dreamcontext lab tweak weekly-active-users range 90d # adjust a declared tweak, e.g. the time range
|
|
503
|
+
dreamcontext lab bind weekly-active-users increase-retention-20 # feed an objective's Key Result
|
|
516
504
|
```
|
|
517
505
|
|
|
518
|
-
- **Insights, not raw dumps.** A hard cap of **62 points per series** is structural
|
|
519
|
-
- **Every session sees the latest value.** Cached snapshots
|
|
520
|
-
- **Measured roadmap progress.** Bind an insight to
|
|
521
|
-
- **
|
|
522
|
-
- **
|
|
523
|
-
- **No silent half-sync.** When a fetch fails the prior cached series is kept intact, the error is surfaced loudly, and the sync exits non-zero. **Sleep does not run lab sync** (credential exposure, latency, non-determinism) — a bound insight feeds a Key Result through its own `lab sync` instead.
|
|
524
|
-
|
|
525
|
-
The dashboard turns this into a **Lab page**: insights grouped by category, a **number / line / pie / raw** render per insight (hand-rolled SVG, no chart library), per-insight and **sync-all** refresh with live success/error feedback, and inline **tweak editing** to change an insight's range and watch it re-fetch and coarsen granularity. An insight bound to an objective shows a "feeds <objective>" provenance chip.
|
|
526
|
-
|
|
527
|
-
## Federation
|
|
506
|
+
- **Insights, not raw dumps.** A hard cap of **62 points per series** is structural: over ~180 days rolls up monthly, 45–180 days weekly, under 45 daily. Lab delivers curated metrics to agents and dashboards; it is not a BI tool.
|
|
507
|
+
- **Every session sees the latest value.** Cached snapshots ride the SessionStart snapshot and are recallable by meaning — `memory recall "weekly active users" --types insight` — without knowing the slug.
|
|
508
|
+
- **Measured roadmap progress.** Bind an insight to an objective's Key Result and `lab sync` writes `metric.current`, so the [forecast cascade](#roadmap-objectives--the-okr-board) reflects *measured* progress instead of asserted numbers. An objective has exactly one feeder; binding a new insight unbinds the previous one, loudly.
|
|
509
|
+
- **A source is either** the generic **HTTP** adapter (any JSON API — endpoint, headers, and body may reference `{{tweak:…}}` and `{{cred:…}}` placeholders, with a JSON-path `extract`) **or a custom `.mjs` script** under `lab/scripts/` — which runs locally with your credentials, so Lab prints a loud change notice before a modified script runs again.
|
|
510
|
+
- **No silent half-sync.** A failed fetch keeps the prior cached series intact, surfaces the error loudly, and exits non-zero. **Sleep never runs lab sync** (credential exposure, latency, non-determinism).
|
|
528
511
|
|
|
529
|
-
|
|
512
|
+
The dashboard's **Lab page** groups insights by category with number / line / pie / raw renders (hand-rolled SVG), per-insight and sync-all refresh, inline tweak editing, and a "feeds <objective>" provenance chip on bound insights.
|
|
530
513
|
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
```bash
|
|
534
|
-
dreamcontext vaults add <name> <path> # Register a project directory as a vault
|
|
535
|
-
dreamcontext vaults discover [root] # Find every _dream_context/ project under a tree
|
|
536
|
-
dreamcontext vaults discover ~/projects --register # …and register the new ones (idempotent)
|
|
537
|
-
dreamcontext vaults list # List all registered vaults
|
|
538
|
-
dreamcontext vaults remove <name> # Unregister a vault
|
|
539
|
-
```
|
|
514
|
+
## Skills
|
|
540
515
|
|
|
541
|
-
|
|
516
|
+
The core `dreamcontext` skill (installed by `install-skill`) teaches your agent the context system itself. On top of that, dreamcontext ships **curated skill packs and standalone skills** that give your agent domain expertise — loaded on demand, only when the work calls for it, so they cost nothing the rest of the time.
|
|
542
517
|
|
|
543
|
-
|
|
544
|
-
dreamcontext config shareable on # Allow this vault to be recalled by peers
|
|
545
|
-
dreamcontext memory recall "<query>" --vault other-project # Also search a named vault (repeatable)
|
|
546
|
-
dreamcontext memory recall "<query>" --connected # Span this vault + its out/both connections
|
|
547
|
-
dreamcontext memory recall "<query>" --all-vaults # Span this vault + every shareable vault
|
|
548
|
-
```
|
|
518
|
+
Four more skills install with the core (no pack needed) and run only when the moment calls for them:
|
|
549
519
|
|
|
550
|
-
|
|
520
|
+
- **`initializer`** — interactive brain **bootstrap**. It recognizes a missing or sparse `_dream_context/` (or that you're migrating notes from another folder, or loading a large docs export into an existing brain) and ingests whatever you have — a docs folder, an Obsidian/Notion export, ADRs, an old wiki, or just the codebase — into the proper knowledge / feature / task hierarchy (scout → confirm → ingest → verify).
|
|
521
|
+
- **`curator`** — interactive brain **refactor**: the periodic re-organization the conservative sleep cycle won't do. It can MOVE, MERGE, SPLIT, RENAME, RE-TYPE, and RETIRE content to conform the whole brain to current conventions — deduping near-duplicate knowledge, enforcing single-source-of-truth, and normalizing tags (audit → confirm plan → execute → verify).
|
|
522
|
+
- **`dreamcontext-deep-research`** — the heavy, iterative counterpart to the fast `dreamcontext-explore` searcher, for **large / multi-project / federated** brains: fans out parallel searchers across the whole curated corpus **and connected peer vaults**, loops to close gaps, **adversarially verifies** load-bearing claims, and synthesizes a **cited** report — not raw hits. Read-only.
|
|
523
|
+
- **`task-manager`** — a **task-scoped** session that *maintains* one task document rather than implementing it: revise, summarize, split, reconcile status and criteria with what is actually true. Loaded automatically by the dashboard's Task Manager pane.
|
|
551
524
|
|
|
552
525
|
```bash
|
|
553
|
-
dreamcontext
|
|
554
|
-
dreamcontext
|
|
555
|
-
dreamcontext
|
|
556
|
-
dreamcontext
|
|
557
|
-
dreamcontext federation status # Connections + any leftover federated copies
|
|
558
|
-
dreamcontext federation purge --all # Remove leftover federated:true copies from the old sync path
|
|
526
|
+
dreamcontext install-skill --packs # Browse and install interactively (terminal checkbox UI)
|
|
527
|
+
dreamcontext install-skill --packs engineering design # Install specific packs directly
|
|
528
|
+
dreamcontext install-skill --skill firebase-firestore # Install a single sub-skill or standalone skill
|
|
529
|
+
dreamcontext install-skill --list # See everything available
|
|
559
530
|
```
|
|
560
531
|
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
> **Note — copy-based sync is parked on the roadmap.** Earlier builds pushed a lossy, truncated *digest* into peers at sleep (`federation sync`) and ingested it as `federated: true` copies (`federation drain`). That broke single-source-of-truth: copies went stale the moment the source changed and re-edits bred duplicates. Those verbs are now **inert no-ops** and the `sleep-federation` specialist is no longer dispatched. If a vault still holds old copies, clear them with `federation purge`. A redesigned opt-in offline-mirror mode may return later — its one genuine advantage is surviving a peer going offline, which live read can't.
|
|
564
|
-
|
|
565
|
-
## Brain Cloud Sync
|
|
566
|
-
|
|
567
|
-
Federation lets separate projects read each other. **Brain Cloud Sync** is the other half of team collaboration: it lets a whole team work on the *same* brain. When you turn it on, dreamcontext syncs the **whole project** — your code, `.claude/`, and the brain nested under `_dream_context/` — to the project's own GitHub repo, so tasks, knowledge, and features are pushed, pulled, merged, and reviewed the way you already collaborate on code. It stays local-first the entire time: the brain is still plain markdown and JSON on disk, and git is only the sync transport, not a new database.
|
|
532
|
+
**Skill packs** (a base skill + on-demand sub-skills or sub-agents):
|
|
568
533
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
534
|
+
| Pack | What it covers | Inside |
|
|
535
|
+
|------|---------------|--------|
|
|
536
|
+
| **engineering** _(always-on)_ | Coding standards, security, testing, architecture | backend-principles, web-app-frontend, firebase-cloud-functions, firebase-firestore |
|
|
537
|
+
| **design** _(always-on)_ | Design systems, typography, color, accessibility | frontend-principles, design-web, design-mobile, onboarding-design |
|
|
538
|
+
| **growth** | Retention, distribution, monetization, analytics | performance-marketing, lean-analytics-experiments, lean-analytics-metrics |
|
|
539
|
+
| **brand-voice** | Brand enforcement, discovery, guideline generation | discover-brand, guideline-generation |
|
|
540
|
+
| **council** | Multi-persona debate for hard decisions | `council-persona`, `council-synthesizer` agents |
|
|
541
|
+
| **multi-review** | Multi-agent code review (router + niche specialists) | `review-router` + security / cloud-functions / frontend / edge-cases agents |
|
|
542
|
+
| **goal-skill** | Sub-agent-orchestrated execution: plan → review → implement → validate | `goal-planner`, `goal-plan-reviewer`, `goal-implementer`, `goal-validator` agents |
|
|
575
543
|
|
|
576
|
-
|
|
577
|
-
- **Deterministic files merge themselves; prose defers to an agent; code goes to you.** JSON (changelog, releases, config) and task status/changelog merge automatically (task changelogs union, the furthest status wins). When two people edit the same *prose* section of a knowledge or feature file, the conflict is handed to a semantic **merge agent** — the `/dream-sync` skill — which reads base/ours/theirs and writes the real merge, then hands back to commit and push. A real **code** conflict is left for your editor with native git markers — never mangled by a merge agent.
|
|
578
|
-
- **Two modes.** `full-repo` (cloud sync on) syncs the whole project to its own `origin` on the current branch; **`in-tree`** (the safe default, cloud sync off) commits the brain inside the code repo but **never auto-pushes**. The scrub gate applies to both. Because `.claude/` and `_dream_context/` already live in the code repo, they travel together — no separate brain repo, no symlink layer.
|
|
579
|
-
- **Nothing secret or machine-local is ever pushed.** A **scrub gate** runs before every commit and push and blocks secrets and absolute local paths, and the project-root `.gitignore` is force-written with the machine-local brain excludes before every whole-project stage. The auth token is never written into the remote URL — git network calls use `GIT_ASKPASS` with a `0600` temp file, so the token never lands in `.git/config`, the environment, or a process argument. Per-machine indexes, caches, and embeddings are gitignored and rebuilt locally, so derived state never causes merge noise.
|
|
580
|
-
- **Personal attribution, no per-person forks.** Attribution rides the existing multi-people awareness (`person:<slug>` tags, changelog authors) rather than per-person file forks.
|
|
544
|
+
**Standalone skills** (install individually with `--skill <name>`):
|
|
581
545
|
|
|
582
|
-
|
|
546
|
+
| Skill | What it covers |
|
|
547
|
+
|-------|----------------|
|
|
548
|
+
| **business-idea-discovery** | Market selection, trend validation, competitor intel, pain-point mining, MVP scoping |
|
|
549
|
+
| **business-idea-validation** | Demand testing via landing page + waitlist, quick validation loops |
|
|
550
|
+
| **meta-marketing** | Meta / Facebook / Instagram ad campaigns end to end |
|
|
551
|
+
| **system-prompts** | Prompt engineering, cognitive architecture, agent design |
|
|
552
|
+
| **excalidraw** | ~44 deterministic builders — charts, wireframes, real-proportion device mockups — that turn data into valid Obsidian Excalidraw boards at near-zero token cost, with a 3-check render audit |
|
|
553
|
+
| **video-watching** | Turn a video into a time-mapped transcript with on-screen visuals described inline, then reason about it |
|
|
583
554
|
|
|
584
|
-
|
|
555
|
+
_Always-on_ packs apply their base principles to every relevant task; the rest load only when the work matches. Packs install to `.claude/skills/{pack}/` (+ agents in `.claude/agents/`); cross-pack dependencies warn at install time.
|
|
585
556
|
|
|
586
|
-
|
|
557
|
+
## Staying Up to Date
|
|
587
558
|
|
|
588
|
-
|
|
559
|
+
Two distinct things update: the **CLI** (the `dreamcontext` binary) and your **project's installed files** (the skill, agents, and hooks in `.claude/`).
|
|
589
560
|
|
|
590
561
|
```bash
|
|
591
|
-
dreamcontext
|
|
592
|
-
dreamcontext
|
|
593
|
-
dreamcontext
|
|
594
|
-
dreamcontext link rm app-b # Stop governing it (the machine-local path mapping is kept)
|
|
562
|
+
dreamcontext upgrade # Upgrade the CLI to the latest published version
|
|
563
|
+
dreamcontext upgrade --check # Just print "current: X latest: Y" and exit
|
|
564
|
+
dreamcontext update # Refresh this project's skill/agent/hook files to match the CLI
|
|
595
565
|
```
|
|
596
566
|
|
|
597
|
-
|
|
567
|
+
Or re-run the one-command installer — it detects an existing `_dream_context/` and updates in place. **In-session update nudge**: when a newer version ships, your agent sees a one-line notice at the top of its loaded context — checked at most once every 24 hours, never in the context-loading hot path, silent if npm is unreachable (`DREAMCONTEXT_VERSION_CHECK=0` to opt out).
|
|
568
|
+
|
|
569
|
+
## CLI Reference
|
|
598
570
|
|
|
599
|
-
|
|
571
|
+
The command groups below are the ones not already covered in their feature sections above ([Teams](#built-for-teams) holds brain / federation / link / task-backend commands; [Council](#council), [Memory Recall](#memory-recall), and [Lab](#lab-insights) hold theirs).
|
|
600
572
|
|
|
601
|
-
### Core
|
|
573
|
+
### Core (changelog & releases)
|
|
602
574
|
|
|
603
575
|
```bash
|
|
604
576
|
dreamcontext core changelog add # Add changelog entry
|
|
605
577
|
dreamcontext core releases add # Create release with auto-discovery
|
|
606
578
|
dreamcontext core releases add --yes # Non-interactive, include all unreleased items
|
|
607
579
|
dreamcontext core releases add --ver v0.2.0 --summary "..." --status planning # Planning version
|
|
608
|
-
dreamcontext core releases list
|
|
609
|
-
dreamcontext core releases show <version> # Show release details
|
|
580
|
+
dreamcontext core releases list / show <version>
|
|
610
581
|
```
|
|
611
582
|
|
|
612
|
-
Release creation auto-discovers unreleased tasks, features, and changelog entries
|
|
583
|
+
Release creation auto-discovers unreleased tasks, features, and changelog entries and back-populates `released_version` on included features. Use `--status planning` for a version placeholder; the dashboard's version manager provides the planning → released transition.
|
|
613
584
|
|
|
614
585
|
### Tasks
|
|
615
586
|
|
|
616
587
|
```bash
|
|
617
|
-
dreamcontext tasks list
|
|
618
|
-
dreamcontext tasks
|
|
619
|
-
|
|
620
|
-
dreamcontext tasks
|
|
621
|
-
dreamcontext tasks
|
|
622
|
-
dreamcontext tasks
|
|
623
|
-
dreamcontext tasks
|
|
624
|
-
dreamcontext tasks
|
|
625
|
-
dreamcontext tasks
|
|
626
|
-
dreamcontext tasks
|
|
627
|
-
dreamcontext tasks
|
|
628
|
-
dreamcontext tasks complete <name> # Mark completed
|
|
588
|
+
dreamcontext tasks list [--all] [--status in_progress] [--objective <slug>]
|
|
589
|
+
dreamcontext tasks create <name> [--priority high] [--status in_progress] [--tags "api,auth"] \
|
|
590
|
+
[--urgency high] [--version v0.2.0] [--start 2026-06-25] [--due 2026-07-01] [--objectives a,b] [--field key=value]
|
|
591
|
+
dreamcontext tasks start <name> <date|clear> # set/clear the planned start
|
|
592
|
+
dreamcontext tasks due <name> <date|clear> # set/clear the due/end
|
|
593
|
+
dreamcontext tasks version <name> [version|clear] # print / set / clear the sprint a task rides
|
|
594
|
+
dreamcontext tasks field <name> <key> [value|clear] # user-declared custom fields
|
|
595
|
+
dreamcontext tasks tag <name> <tags…> [--remove]
|
|
596
|
+
dreamcontext tasks log <name> <content> # Log progress (newest first)
|
|
597
|
+
dreamcontext tasks insert <name> <section> <content>
|
|
598
|
+
dreamcontext tasks complete <name>
|
|
629
599
|
```
|
|
630
600
|
|
|
631
|
-
All flags
|
|
601
|
+
All flags are optional (medium priority/urgency, todo status by default), so every command works non-interactively for agent use.
|
|
632
602
|
|
|
633
|
-
- **
|
|
634
|
-
- **
|
|
635
|
-
- **
|
|
603
|
+
- **Date ranges**: start must be on or before due; setting any date removes the `backlog` tag, and the first move to `in_progress` auto-stamps `start_date` if unset. Dates render in Timeline/Calendar and sync natively to both remote backends.
|
|
604
|
+
- **Version folding**: `tasks version` folds against `RELEASES.json`, so a lowercased round-trip or a typed `s5` resolves to the canonical spelling instead of minting a near-duplicate version string.
|
|
605
|
+
- **Custom fields**: declare them in `_dream_context/overrides/task.md` (`text` / `number` / `select` / `date`); values validate against the schema and sync to both backends. Absent the override file, tasks behave exactly as the defaults.
|
|
636
606
|
|
|
637
607
|
### Roadmap (objectives — the OKR board)
|
|
638
608
|
|
|
639
|
-
A product-owner-authored board of **objectives** (outcomes like "increase retention 20%"
|
|
609
|
+
A product-owner-authored board of **objectives** (outcomes like "increase retention 20%") — not a derived shadow of tasks. Objectives live one file each in `core/objectives/<slug>.md`; tasks link many-to-many via `objectives:` frontmatter; a computed assist layer does the math: progress rollups, a **full-DAG dependency forecast cascade** (a slip upstream moves every transitive dependent), and **target vs forecast** slip detection. Active objectives ride every session snapshot and are recallable (`memory recall --types objective`), so agents always know what the project is driving toward.
|
|
640
610
|
|
|
641
611
|
```bash
|
|
642
|
-
dreamcontext roadmap
|
|
643
|
-
dreamcontext roadmap --json # the typed RoadmapModel (queryable, no writes)
|
|
612
|
+
dreamcontext roadmap [--json] # text board + regenerate knowledge/roadmap/board.md
|
|
644
613
|
dreamcontext roadmap objective create increase-retention-20 --title "Increase retention by 20%" --target 2026-09-30
|
|
645
614
|
dreamcontext roadmap objective depend launch-mobile increase-retention-20 # write-time circular-dep guard
|
|
646
615
|
dreamcontext roadmap objective show increase-retention-20 # members + "if this slips, so do: …"
|
|
647
616
|
dreamcontext tasks create "Retention email drip" --objectives increase-retention-20
|
|
648
617
|
```
|
|
649
618
|
|
|
650
|
-
- 🟢 done · 🔵 active · 🟡 review · ⚪ not started — rolled up from
|
|
651
|
-
-
|
|
652
|
-
-
|
|
653
|
-
- During sleep consolidation, agents propose `objectives:` links for unlabeled tasks (never overwriting a non-empty list) and the board is regenerated automatically.
|
|
654
|
-
|
|
655
|
-
The dashboard turns this board into a live, editable **Roadmap page**. A **forecast timeline** lays objectives on a month-gridded axis — gradient status bars span each computed forecast window, dotted diamonds mark the PO's target, and red hatching flags a target overshoot; bezier connectors trace dependencies and redden when a slip cascades through them. **Drag a bar** to reschedule and every dependent's forecast bar slides and reddens live (only the dragged objective's dates persist); **drag from a node** to link a dependency, hover-✕ to unlink. A **Board view** groups objectives into status columns, and a slide-over **detail panel** edits everything inline — title, status (with clear-override), committed start/target via a date-range picker, Impact × Effort, and dependencies — persisting each change immediately. Backed by `GET /api/roadmap`, `PATCH /api/objectives/:slug`, and `POST`/`DELETE /api/objectives/:slug/dependencies` (cycle-guarded).
|
|
656
|
-
|
|
657
|
-
#### Remote Task Backends — ClickUp or GitHub Issues
|
|
658
|
-
|
|
659
|
-
Tasks default to local markdown files. Optionally they can live in a remote
|
|
660
|
-
backend instead — a **ClickUp** list or **GitHub Issues** — with the same CLI
|
|
661
|
-
verbs, the same dashboard, the same recall/snapshot behavior, backed by a
|
|
662
|
-
gitignored local mirror:
|
|
663
|
-
|
|
664
|
-
```bash
|
|
665
|
-
# ClickUp
|
|
666
|
-
dreamcontext config task-backend clickup # switch backend (gitignores mirror/sync files, installs git triggers)
|
|
667
|
-
dreamcontext config clickup-list <teamId> <spaceId> <listId>
|
|
668
|
-
dreamcontext config clickup-token [--user <name>] # stored in a gitignored secrets file (0600), never in .config.json
|
|
669
|
-
|
|
670
|
-
# GitHub Issues
|
|
671
|
-
dreamcontext config task-backend github # switch backend (same gitignored mirror + git triggers)
|
|
672
|
-
dreamcontext config github-repo <owner> <repo> # target repo (the switch flow also auto-discovers repos your token can see)
|
|
673
|
-
echo "$GITHUB_TOKEN" | dreamcontext config github-token # stored in the gitignored secrets file (0600), never in .config.json
|
|
674
|
-
|
|
675
|
-
# Either backend — same verbs:
|
|
676
|
-
dreamcontext tasks sync [push|pull|both] # manual two-way sync
|
|
677
|
-
dreamcontext tasks sync-hooks install # best-effort post-commit/pre-push triggers (can never fail git)
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
- Both backends talk to the provider's REST API directly (no MCP) — so sync
|
|
681
|
-
works headless in git hooks, post-sleep consolidation, and cron.
|
|
682
|
-
- **GitHub** maps each task to an issue: the issue body holds the task and
|
|
683
|
-
changelog entries become comments; `todo` / `in_progress` / `in_review` ride
|
|
684
|
-
`dc:*` labels and priority / urgency / tags / version ride reserved-prefix
|
|
685
|
-
labels. Only `completed` closes the issue, and a delete soft-closes it as
|
|
686
|
-
`not_planned` (the REST API can't hard-delete). It reuses the same pluggable
|
|
687
|
-
adapter and sync engine as ClickUp ([issue #11](https://github.com/meanllbrl/dreamcontext/issues/11)).
|
|
688
|
-
- **Local task images render on GitHub**: an image embedded by a local path
|
|
689
|
-
(e.g. an agent-drop screenshot) is uploaded to a dedicated
|
|
690
|
-
`dreamcontext-assets` branch — content-sniffed by magic bytes (never a trusted
|
|
691
|
-
extension), size-gated, and content-addressed so re-pushes dedupe — then linked
|
|
692
|
-
by its hosted URL on the wire, while the local task keeps its canonical path so
|
|
693
|
-
the reference never churns on pull.
|
|
694
|
-
- Sync is watermark-based on ClickUp **server time**: one field-level `PUT`
|
|
695
|
-
per task under the ~100 req/min rate limit, changelog entries become
|
|
696
|
-
comments (union-merged), prose merges 3-way against the last synced base.
|
|
697
|
-
- Conflicts are never silently lost: when ClickUp wins, the local copy is
|
|
698
|
-
preserved under `state/.conflicts/` and surfaced in the sync report and
|
|
699
|
-
dashboard.
|
|
700
|
-
- Offline edits queue in `state/.tasks-queue.json` and replay idempotently.
|
|
701
|
-
- Tokens resolve env (`CLICKUP_TOKEN`, or a per-person `tokenEnv`) → secrets
|
|
702
|
-
file; `config show` only ever prints a masked token.
|
|
703
|
-
- **Assignees resolve to real members**: each sync caches the list's members;
|
|
704
|
-
`dreamcontext tasks members` shows them with their slugs. Tag a task
|
|
705
|
-
`person:<slug>` (or pass `--person <name>`) and on a cloud backend the name is
|
|
706
|
-
resolved against the live roster — an exact or fuzzy match (display name /
|
|
707
|
-
first name, diacritic-folded) canonicalizes to the member's slug, an
|
|
708
|
-
**ambiguous** name aborts so you can be more specific, and an unmatched name is
|
|
709
|
-
recorded but **warns** it won't sync until that person is a member. Assignments
|
|
710
|
-
are never silently dropped or reassigned to the token owner. The full
|
|
711
|
-
`assignees[]` set round-trips bidirectionally; `config clickup-member` stays
|
|
712
|
-
available as an explicit override.
|
|
713
|
-
- **Tags edit anywhere**: `dreamcontext tasks tag <name> <tags…> [--remove]`
|
|
714
|
-
edits tags on existing tasks; changed tags push through ClickUp's per-tag
|
|
715
|
-
endpoints (its PUT carries none), and assignee handovers/removals push as
|
|
716
|
-
add/rem deltas.
|
|
717
|
-
- **Date ranges**: `tasks create --start … --due …` / `tasks start <name> <date|clear>`
|
|
718
|
-
/ `tasks due <name> <date|clear>` — planned start + due/end, validated start≤due,
|
|
719
|
-
synced natively to ClickUp's start/due fields and to a `<!-- dc:dates -->` block
|
|
720
|
-
in the GitHub issue body.
|
|
721
|
-
- **Custom-field bridge**: the recommended RICE/meta fields (Urgency / Summary /
|
|
722
|
-
Reach / Impact / Confidence / Effort / Score / Feature / Version) plus any
|
|
723
|
-
fields you declare in `overrides/task.md` are provisioned and round-tripped
|
|
724
|
-
automatically — `select` fields as a ClickUp drop-down / GitHub label, others as
|
|
725
|
-
a native ClickUp field / GitHub body block. `tasks provision` reuses existing
|
|
726
|
-
remote fields by name instead of duplicating them.
|
|
727
|
-
- **Docs**: illustrated user guide → [docs/clickup.md](docs/clickup.md);
|
|
728
|
-
technical reference → [docs/remote-task-setup.md](docs/remote-task-setup.md).
|
|
729
|
-
|
|
730
|
-
### Lab (insights)
|
|
731
|
-
|
|
732
|
-
```bash
|
|
733
|
-
dreamcontext lab list [--json] # List insights with latest value + staleness
|
|
734
|
-
dreamcontext lab show <slug> [--json] # Show one insight's cached series (never re-fetches)
|
|
735
|
-
dreamcontext lab sync [slug] [--all] [--force] # Refresh cached snapshots (skips fresh unless --force)
|
|
736
|
-
dreamcontext lab create <slug> --title "..." --render number|line|pie|raw --adapter http|script [--group <g>] [--ttl <min>]
|
|
737
|
-
dreamcontext lab tweak <slug> <key> <value> # Adjust a declared tweak (e.g. a time range)
|
|
738
|
-
dreamcontext lab bind <slug> <objective> [--value latest|series:<n>] [--clear] # Feed an objective's Key Result
|
|
739
|
-
dreamcontext lab credentials set <key> # Store a source credential (hidden prompt or --value)
|
|
740
|
-
dreamcontext lab credentials list # List credential names only — values are never printed
|
|
741
|
-
```
|
|
742
|
-
|
|
743
|
-
- Insights are **curated metrics, not raw data** — a structural cap of 62 points per series rolls a year of daily data up to monthly buckets. Granularity derives from the resolved range: over 180 days is monthly, 45–180 days weekly, 45 or fewer daily.
|
|
744
|
-
- A source is either the generic **HTTP** adapter (any JSON API — endpoint, method, headers, and body may reference `{{tweak:…}}` and `{{cred:…}}` placeholders, with a JSON-path `extract`) or a **custom `.mjs` script** under `lab/scripts/`. Ready-made PostHog / Sheets adapters are not shipped; the generic HTTP adapter and scripts cover the same ground.
|
|
745
|
-
- `lab sync` caches to the brain, writes a bound objective's `metric.current` when the insight declares a binding, keeps the prior series on failure, and exits non-zero if any insight failed. **Sleep never runs lab sync.**
|
|
746
|
-
- Credentials live in a gitignored `lab/credentials.json` (mode `0600`) written only through `lab credentials set`; `doctor` warns when a manifest names a credential you haven't set and fails if the file exists but isn't gitignored.
|
|
747
|
-
|
|
748
|
-
See the [Lab (Insights)](#lab-insights) section above for the full workflow.
|
|
619
|
+
- 🟢 done · 🔵 active · 🟡 review · ⚪ not started — rolled up from real member-task statuses; a manual `--status` override (the PO's call) wins. 🔴 **SLIPPING** = computed forecast lands after the PO's target date.
|
|
620
|
+
- An objective with no dated member tasks is unforecastable (null) and never constrains its dependents; circular dependencies are rejected at write time. During sleep, agents propose `objectives:` links for unlabeled tasks (never overwriting a non-empty list).
|
|
621
|
+
- The dashboard's [Roadmap page](#dashboard) makes the board live and editable — draggable forecast bars, dependency wiring, inline detail editing.
|
|
749
622
|
|
|
750
623
|
### Features
|
|
751
624
|
|
|
@@ -755,220 +628,103 @@ dreamcontext features insert <name> <section> <content>
|
|
|
755
628
|
dreamcontext features doctor # Audit PRD freshness (stale / orphaned / dangling refs)
|
|
756
629
|
```
|
|
757
630
|
|
|
758
|
-
Feature PRDs track freshness the same way knowledge does
|
|
631
|
+
Feature PRDs track freshness the same way knowledge does: `features doctor` reports which PRDs went stale, which have no linked task or release, and which reference things that no longer exist.
|
|
759
632
|
|
|
760
633
|
### Knowledge
|
|
761
634
|
|
|
762
635
|
```bash
|
|
763
636
|
dreamcontext knowledge create <name> # Create a knowledge doc
|
|
764
|
-
dreamcontext knowledge index
|
|
765
|
-
dreamcontext knowledge index --tag api # Filter by tag
|
|
637
|
+
dreamcontext knowledge index [--tag api] # List all with descriptions + tags
|
|
766
638
|
dreamcontext knowledge tags # List standard tags
|
|
767
639
|
dreamcontext knowledge touch <slug> # Record access (staleness tracking)
|
|
768
640
|
|
|
769
641
|
dreamcontext taxonomy vocab # Canonical faceted tag vocabulary
|
|
770
|
-
dreamcontext taxonomy audit
|
|
771
|
-
dreamcontext taxonomy audit --fix # Bulk-normalize alias/normalizable tags → canonical (--dry-run to preview)
|
|
642
|
+
dreamcontext taxonomy audit [--fix] # Surface / bulk-normalize non-canonical tags (--dry-run to preview)
|
|
772
643
|
```
|
|
773
644
|
|
|
774
|
-
Set `pinned: true` in frontmatter to auto-load a
|
|
645
|
+
Set `pinned: true` in frontmatter to auto-load a file in every snapshot. Files not accessed in 30+ days flag as stale; recently accessed ones ride a "warm knowledge" tier with first-paragraph previews.
|
|
775
646
|
|
|
776
647
|
### Memory
|
|
777
648
|
|
|
778
649
|
```bash
|
|
779
|
-
dreamcontext memory recall <query...>
|
|
780
|
-
dreamcontext memory recall <query...> --
|
|
781
|
-
dreamcontext memory
|
|
782
|
-
dreamcontext memory
|
|
783
|
-
dreamcontext memory recall <query...> --connected # Span this vault + its connected peers
|
|
784
|
-
dreamcontext memory recall <query...> --all-vaults # Span every shareable registered vault
|
|
785
|
-
dreamcontext memory recall <query...> --json # Machine-readable
|
|
786
|
-
dreamcontext memory recall <query...> --plain # No ANSI colors
|
|
787
|
-
dreamcontext memory remember "<text>" # Writes a CHANGELOG entry (type=note, scope=quick by default)
|
|
788
|
-
dreamcontext memory remember "<text>" --type fix --scope api --summary "..." --references commit:abc,task:auth-refactor
|
|
789
|
-
dreamcontext memory update <slug> --description "..." --tags a,b --append "..."
|
|
790
|
-
dreamcontext memory update <slug> --pin # or --unpin
|
|
650
|
+
dreamcontext memory recall <query...> [--top 10] [--types knowledge,task,changelog] [--json] [--plain]
|
|
651
|
+
dreamcontext memory recall <query...> [--vault other] [--connected] [--all-vaults] # federation-aware
|
|
652
|
+
dreamcontext memory remember "<text>" [--type fix] [--scope api] [--summary "..."] [--references commit:abc,task:auth]
|
|
653
|
+
dreamcontext memory update <slug> [--description "..."] [--tags a,b] [--append "..."] [--pin|--unpin]
|
|
791
654
|
dreamcontext memory delete <slug> --force
|
|
792
|
-
dreamcontext memory list
|
|
793
|
-
dreamcontext memory
|
|
794
|
-
dreamcontext memory status # Corpus stats by type
|
|
795
|
-
```
|
|
796
|
-
|
|
797
|
-
`memory remember` writes a CHANGELOG entry instead of appending to a LIFO section in `2.memory.md` (the LIFO section was removed in 2026-05-23 — `2.memory.md` now holds Decisions + Known Issues only). The new CHANGELOG schema supports optional `summary` (≤200 char soft cap), `references[]` (prefixed: `commit:|file:|knowledge:|feature:|task:|url:`), and `supersedes` (entry-id pointer).
|
|
798
|
-
|
|
799
|
-
Recall has no setup step — no init, no daemon, no API keys. The corpus is rebuilt in memory on every call (under 100ms on a 40-doc corpus). UserPromptSubmit hook injection of top hits is **ON by default**; set `DREAMCONTEXT_MEMORY_HOOK=0` to opt out.
|
|
800
|
-
|
|
801
|
-
### Bookmarks
|
|
802
|
-
|
|
803
|
-
Tag important moments during active work. Inspired by the brain's awake sharp-wave ripples that bookmark memories for consolidation during sleep.
|
|
804
|
-
|
|
805
|
-
```bash
|
|
806
|
-
dreamcontext bookmark add "<message>" -s 2 # Bookmark with salience (1-3)
|
|
807
|
-
dreamcontext bookmark list # Show all bookmarks
|
|
808
|
-
dreamcontext bookmark clear # Clear all bookmarks
|
|
809
|
-
```
|
|
810
|
-
|
|
811
|
-
Salience levels: 1 = notable, 2 = significant, 3 = critical. Critical bookmarks trigger immediate consolidation advisories regardless of debt level.
|
|
812
|
-
|
|
813
|
-
### Triggers
|
|
814
|
-
|
|
815
|
-
Contextual reminders that fire when matching tasks are active. The brain's prospective memory: "remind me about X when working on Y."
|
|
816
|
-
|
|
817
|
-
```bash
|
|
818
|
-
dreamcontext trigger add "<when>" "<remind>" # Create a trigger
|
|
819
|
-
dreamcontext trigger list # Show active triggers
|
|
820
|
-
dreamcontext trigger remove <id> # Remove a trigger
|
|
821
|
-
```
|
|
822
|
-
|
|
823
|
-
Triggers match against active task names, tags, and bookmark text. Auto-expire after a configurable number of fires (default 3).
|
|
824
|
-
|
|
825
|
-
### Sleep
|
|
826
|
-
|
|
827
|
-
Sleep debt is tracked automatically via hooks. The UserPromptSubmit hook reminds about debt on every user message, so the agent cannot dismiss the reminder. Consolidation rhythm advisory fires after 3+ sessions since last sleep, even at low debt.
|
|
828
|
-
|
|
829
|
-
```bash
|
|
830
|
-
dreamcontext sleep status # Debt level, sessions, last sleep
|
|
831
|
-
dreamcontext sleep history # Consolidation log
|
|
832
|
-
dreamcontext sleep add <score> <desc> # Add debt manually
|
|
833
|
-
dreamcontext sleep start # Mark consolidation epoch
|
|
834
|
-
dreamcontext sleep done <summary> # Complete consolidation, reset
|
|
835
|
-
dreamcontext sleep debt # Raw number (for scripts)
|
|
655
|
+
dreamcontext memory list [--types feature,task]
|
|
656
|
+
dreamcontext memory status # Corpus stats by type
|
|
836
657
|
```
|
|
837
658
|
|
|
838
|
-
|
|
659
|
+
`memory remember` writes a CHANGELOG entry (with optional `summary`, prefixed `references[]`, and `supersedes`) — `2.memory.md` holds Decisions + Known Issues only.
|
|
839
660
|
|
|
840
|
-
|
|
841
|
-
dreamcontext transcript distill <session_id> # Structural filter of session transcript
|
|
842
|
-
```
|
|
843
|
-
|
|
844
|
-
Extracts high-signal content from raw JSONL transcripts: user messages, agent decisions, code changes, errors, bookmarks. Discards noise (Read results, Glob output, tool metadata). Pure Node.js, no AI. Used by the RemSleep specialists for selective deep analysis of important sessions.
|
|
845
|
-
|
|
846
|
-
### Council
|
|
661
|
+
### Bookmarks & Triggers
|
|
847
662
|
|
|
848
663
|
```bash
|
|
849
|
-
dreamcontext
|
|
850
|
-
dreamcontext
|
|
851
|
-
dreamcontext council show <id> # Show a debate's current state
|
|
852
|
-
dreamcontext council agent create <slug> --model <m> --aspects a,b,c
|
|
853
|
-
dreamcontext council round start <n> # Dispatch round n to all personas
|
|
854
|
-
dreamcontext council round end <n> # Close round n, inject cross-context for n+1
|
|
855
|
-
dreamcontext council round round-context <n> # Preview what personas will see at round n
|
|
856
|
-
dreamcontext council report append <slug> <n> <path> # Append a persona report from file
|
|
857
|
-
dreamcontext council report summaries <n> # Summaries of all reports in round n
|
|
858
|
-
dreamcontext council research add <slug> <topic> <path> # Persist a persona's research note
|
|
859
|
-
dreamcontext council research list <slug>
|
|
860
|
-
dreamcontext council synthesize # Produce the final synthesized report
|
|
861
|
-
dreamcontext council complete # Mark the debate complete
|
|
862
|
-
dreamcontext council promote --to <knowledge-slug> # Promote verdict to knowledge
|
|
863
|
-
```
|
|
864
|
-
|
|
865
|
-
See the [Council](#council) section above for the full workflow.
|
|
664
|
+
dreamcontext bookmark add "<message>" -s 2 # Bookmark with salience 1-3 (3 = critical)
|
|
665
|
+
dreamcontext bookmark list / clear
|
|
866
666
|
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
```bash
|
|
870
|
-
dreamcontext vaults add <name> <path> # Register a project as a vault
|
|
871
|
-
dreamcontext vaults discover [root] # Find every _dream_context/ project under a tree
|
|
872
|
-
dreamcontext vaults discover [root] --register # …and register the new ones
|
|
873
|
-
dreamcontext vaults list # List registered vaults
|
|
874
|
-
dreamcontext vaults remove <name> # Unregister a vault
|
|
875
|
-
dreamcontext config shareable <on|off> # Allow/deny this vault being recalled by peers
|
|
876
|
-
dreamcontext connect <vault> [--direction out|in|both] [--topics a,b] # Connect to read a peer (out = read)
|
|
877
|
-
dreamcontext connections # Inspect federation connections
|
|
878
|
-
dreamcontext disconnect <vault> # Remove a connection
|
|
879
|
-
dreamcontext federation peers # Compact summary of readable peers
|
|
880
|
-
dreamcontext federation status # Connections + any leftover federated copies
|
|
881
|
-
dreamcontext federation purge --all # Remove leftover federated:true copies (old sync path)
|
|
882
|
-
# federation sync / drain are inert no-ops — copy-based sync is parked on the roadmap
|
|
667
|
+
dreamcontext trigger add "<when>" "<remind>" # Prospective memory: "remind about X when working on Y"
|
|
668
|
+
dreamcontext trigger list / remove <id>
|
|
883
669
|
```
|
|
884
670
|
|
|
885
|
-
|
|
671
|
+
Bookmarks are the brain's awake sharp-wave ripples: tag important moments during work; critical ones trigger immediate consolidation advisories. Triggers match active task names, tags, and bookmark text, and auto-expire after a configurable number of fires (default 3).
|
|
886
672
|
|
|
887
|
-
###
|
|
673
|
+
### Sleep & Transcript
|
|
888
674
|
|
|
889
675
|
```bash
|
|
890
|
-
dreamcontext
|
|
891
|
-
dreamcontext
|
|
892
|
-
dreamcontext
|
|
893
|
-
dreamcontext
|
|
894
|
-
```
|
|
895
|
-
|
|
896
|
-
- `full-repo` mode (cloud sync on) syncs the whole project to its own `origin` with full post-`sleep done` auto-sync; **`in-tree`** (the safe default, cloud sync off) commits the brain in the code repo on sleep and never auto-pushes.
|
|
897
|
-
- Every `sleep done` runs fetch → merge → commit → push; a scrub gate blocks secrets and absolute paths before every push, and the token is supplied via `GIT_ASKPASS` (never in the remote URL). Prose conflicts defer to the `/dream-sync` merge agent; JSON and task status merge automatically; real code conflicts go to your editor.
|
|
898
|
-
- Device-flow GitHub login and a Settings "Cloud sync" toggle are available from the desktop Launcher.
|
|
676
|
+
dreamcontext sleep status / history / debt # Debt level, consolidation log, raw number for scripts
|
|
677
|
+
dreamcontext sleep add <score> <desc> # Add debt manually
|
|
678
|
+
dreamcontext sleep start # Mark consolidation epoch
|
|
679
|
+
dreamcontext sleep done <summary> # Complete consolidation, reset
|
|
899
680
|
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
### Linked Repos
|
|
903
|
-
|
|
904
|
-
```bash
|
|
905
|
-
dreamcontext link add <name> <path> # Govern a bare code repo (URL from its origin, or --url); no clone/push happens
|
|
906
|
-
dreamcontext links # List governed repos: ✓ present / ✗ missing on this machine (--json)
|
|
907
|
-
dreamcontext link clone <name> # Clone a missing repo here — one-way, trust-gated (--dir, --yes)
|
|
908
|
-
dreamcontext link rm <name> # Drop it from the shared config (local path mapping kept; alias: unlink)
|
|
681
|
+
dreamcontext transcript distill <session_id> # Structural filter of a session transcript (pure Node, no AI)
|
|
909
682
|
```
|
|
910
683
|
|
|
911
|
-
|
|
912
|
-
- The session-start snapshot surfaces present/missing and hands resolved paths to the agent; also manageable from **Settings → Cloud sync → Linked repos**.
|
|
913
|
-
|
|
914
|
-
See the [Linked Repos](#linked-repos) section above.
|
|
915
|
-
|
|
916
|
-
### Desktop App (macOS)
|
|
917
|
-
|
|
918
|
-
```bash
|
|
919
|
-
dreamcontext app install # Install the desktop app to ~/Applications
|
|
920
|
-
dreamcontext app update # Update the installed app
|
|
921
|
-
dreamcontext app status # Show installed app version and state
|
|
922
|
-
```
|
|
923
|
-
|
|
924
|
-
### Dashboard
|
|
925
|
-
|
|
926
|
-
```bash
|
|
927
|
-
dreamcontext dashboard # Start the web dashboard
|
|
928
|
-
```
|
|
684
|
+
Sleep debt is tracked automatically via hooks; the UserPromptSubmit hook reminds on every user message, so the agent cannot dismiss it. `transcript distill` extracts high-signal content (user messages, decisions, code changes, errors, bookmarks) for the RemSleep specialists' selective deep analysis.
|
|
929
685
|
|
|
930
686
|
### System
|
|
931
687
|
|
|
932
688
|
```bash
|
|
933
|
-
dreamcontext hook session-start
|
|
934
|
-
|
|
935
|
-
dreamcontext
|
|
936
|
-
dreamcontext hook pre-tool-use # PreToolUse hook: block default Explorer
|
|
937
|
-
dreamcontext hook user-prompt-submit # UserPromptSubmit hook: sleep debt reminder
|
|
938
|
-
dreamcontext hook post-tool-use # PostToolUse hook: auto-format + tsc check
|
|
939
|
-
dreamcontext hook pre-compact # PreCompact hook: save state before compaction
|
|
940
|
-
dreamcontext snapshot # Snapshot only (no hook processing)
|
|
941
|
-
dreamcontext snapshot --tokens # Estimated token count
|
|
689
|
+
dreamcontext hook session-start | stop | subagent-start | pre-tool-use \
|
|
690
|
+
| user-prompt-submit | post-tool-use | pre-compact # The seven hooks
|
|
691
|
+
dreamcontext snapshot [--tokens] # The compiled context snapshot (+ estimated token count)
|
|
942
692
|
dreamcontext doctor # Validate structure
|
|
943
|
-
dreamcontext
|
|
944
|
-
dreamcontext
|
|
945
|
-
dreamcontext
|
|
946
|
-
dreamcontext
|
|
947
|
-
dreamcontext install-skill --platforms claude # Explicit platform selection
|
|
948
|
-
dreamcontext install-skill --packs # Interactive skill pack browser
|
|
949
|
-
dreamcontext install-skill --packs engineering design # Install specific packs
|
|
950
|
-
dreamcontext install-skill --skill <name> # Install a single sub-skill
|
|
951
|
-
dreamcontext install-skill --list # Show available skill packs
|
|
952
|
-
dreamcontext install-instructions --platforms claude # Write managed root instruction blocks
|
|
953
|
-
dreamcontext install-claude-md # Legacy alias: CLAUDE.md only
|
|
693
|
+
dreamcontext setup [--platforms claude --defaults] # One-shot project setup
|
|
694
|
+
dreamcontext install-skill [--platforms claude] [--packs …] [--skill <name>] [--list]
|
|
695
|
+
dreamcontext install-instructions --platforms claude # Managed root instruction blocks only
|
|
696
|
+
dreamcontext upgrade [--check] / update # CLI upgrade / refresh installed project files
|
|
954
697
|
```
|
|
955
698
|
|
|
956
699
|
## Design Principles
|
|
957
700
|
|
|
701
|
+
- **One picture, two readers** -- every file is written for humans and loaded by agents
|
|
958
702
|
- **Structure over volume** -- organized context beats more context
|
|
959
703
|
- **Pre-loaded, not searched** -- memory injected before the first message
|
|
960
704
|
- **Consolidation built in** -- sleep cycles keep context sharp, not bloated
|
|
961
|
-
- **Agent-native** -- designed for how LLMs consume context
|
|
962
705
|
- **Owned by you** -- plain markdown and JSON in your repo
|
|
963
706
|
|
|
964
707
|
## Works With
|
|
965
708
|
|
|
966
|
-
- **Claude Code
|
|
967
|
-
- **
|
|
968
|
-
- **
|
|
969
|
-
|
|
709
|
+
- **Claude Code** — full support: the skill, seven hooks, and the core sub-agent families (initializer, curator, explore, deep-research, the RemSleep specialists), plus optional pack sub-agents.
|
|
710
|
+
- **Web Dashboard & Desktop App** — ship with the package / desktop release ([Dashboard](#dashboard), [Desktop App](#desktop-app)).
|
|
711
|
+
- **Obsidian** — `_dream_context/` opens as a vault with curated graph settings scaffolded at init.
|
|
712
|
+
|
|
713
|
+
More agents coming soon — the brain is platform-neutral; only the thin hook/skill layer is per-platform.
|
|
714
|
+
|
|
715
|
+
## Why It's Built This Way
|
|
716
|
+
|
|
717
|
+
<p align="center">
|
|
718
|
+
<img src="public/image/banner-deepdive.png" alt="Why it's built this way: why files not a database, why agents sleep, why BM25 not a vector store — the reasoning lives in the deep-dive wiki" width="840" />
|
|
719
|
+
</p>
|
|
720
|
+
|
|
721
|
+
The README tells you what dreamcontext does. The deep dive tells you **why** — the philosophy, the neuroscience, and every design tradeoff, argued honestly:
|
|
722
|
+
|
|
723
|
+
- **Why files, not a database** — what plain markdown buys you (auditability, git, ownership) that no store can.
|
|
724
|
+
- **Why agents sleep** — the two-stage memory model borrowed from hippocampal research, and why consolidation beats logging.
|
|
725
|
+
- **Why BM25, not a vector store** — when curated context makes embeddings the wrong default, and where the hybrid layer earns its keep.
|
|
970
726
|
|
|
971
|
-
|
|
727
|
+
**[Read the full story →](https://github.com/meanllbrl/dreamcontext/wiki)**
|
|
972
728
|
|
|
973
729
|
## License
|
|
974
730
|
|