@jossuealcala/madre 1.0.0 → 1.0.2
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/ADDITIONAL-TERMS.md +93 -0
- package/CHANGELOG.en.md +1945 -0
- package/CHANGELOG.md +78 -1
- package/CONTRIBUTING.md +5 -1
- package/LICENSE +661 -202
- package/NOTICE +34 -3
- package/README.en.md +245 -0
- package/README.md +23 -13
- package/TRADEMARKS.en.md +50 -0
- package/TRADEMARKS.md +82 -0
- package/bin/madre.mjs +2 -0
- package/docs/INTERNALS.md +8 -2
- package/docs/REFERENCE.md +17 -7
- package/docs/en/INTERNALS.md +103 -0
- package/docs/en/REFERENCE.md +339 -0
- package/docs/en/SDK.md +306 -0
- package/docs/en/training/README.md +59 -0
- package/docs/madre-banner.png +0 -0
- package/docs/training/README.md +20 -8
- package/docs/training/train.sh +2 -1
- package/package.json +14 -5
- package/public/abduction.js +2 -0
- package/public/app.js +2066 -488
- package/public/attribution.js +71 -0
- package/public/brands.js +3 -1
- package/public/editor.js +2 -0
- package/public/es.js +1706 -1226
- package/public/i18n.js +25 -1
- package/public/index.html +13 -10
- package/public/inquiry.js +2 -0
- package/public/loader.js +2 -0
- package/public/macroverso.js +24 -2
- package/public/nostromo-engine.js +2 -0
- package/public/resay.js +6 -0
- package/public/review-ask.js +2 -0
- package/public/routing.js +23 -1
- package/public/salas-mac.css +539 -28
- package/public/salas-mac.html +30 -22
- package/public/salas-mac.js +1498 -144
- package/public/salas.css +2 -0
- package/public/salas.html +1 -0
- package/public/salas.js +4 -2
- package/public/styles.css +1123 -20
- package/public/syntax.js +2 -0
- package/public/touch.js +2 -0
- package/public/tour-chapters.js +164 -52
- package/public/tour.js +85 -12
- package/public/troubleshooting.js +20 -18
- package/src/adapters/claude.mjs +2 -0
- package/src/adapters/codex.mjs +2 -0
- package/src/adapters/gemini.mjs +3 -1
- package/src/adapters/madre.mjs +3 -1
- package/src/adapters/opencode.mjs +7 -3
- package/src/adapters/process.mjs +2 -0
- package/src/asking.mjs +2 -0
- package/src/auth-probe.mjs +32 -7
- package/src/bridge/devices.mjs +2 -0
- package/src/bridge/handoff.mjs +2 -0
- package/src/bridge/host.mjs +2 -0
- package/src/bridge/network.mjs +2 -0
- package/src/bridge/policy.mjs +3 -1
- package/src/bridge/qr.mjs +2 -0
- package/src/bridge/server.mjs +2 -0
- package/src/capabilities.mjs +2 -0
- package/src/chats.mjs +2 -0
- package/src/checkpoint.mjs +2 -0
- package/src/choices.mjs +2 -0
- package/src/cli-args.mjs +2 -0
- package/src/cold.mjs +2 -0
- package/src/commands.mjs +2 -0
- package/src/config.mjs +2 -0
- package/src/conversation-context.mjs +15 -1
- package/src/credentials.mjs +112 -3
- package/src/dataset.mjs +2 -0
- package/src/directives.mjs +8 -6
- package/src/distiller.mjs +2 -0
- package/src/embeddings.mjs +2 -0
- package/src/enlaces.mjs +6 -4
- package/src/event-store.mjs +2 -0
- package/src/exam.mjs +6 -4
- package/src/extensions.mjs +33 -10
- package/src/eyecat-watch.mjs +2 -0
- package/src/eyecat.mjs +2 -0
- package/src/file-ops.mjs +2 -0
- package/src/files.mjs +32 -0
- package/src/github.mjs +2 -0
- package/src/heartbeat.mjs +57 -0
- package/src/i18n.mjs +15 -1
- package/src/image-studio.mjs +2 -0
- package/src/json-file.mjs +2 -0
- package/src/launch.mjs +2 -0
- package/src/lease.mjs +5 -1
- package/src/lobby-work.mjs +2 -0
- package/src/local-ai.mjs +50 -0
- package/src/looks.mjs +40 -5
- package/src/maturity.mjs +3 -1
- package/src/mcp/connect.mjs +345 -0
- package/src/mcp/github-server.mjs +2 -0
- package/src/mcp/image-server.mjs +2 -0
- package/src/mcp/memory-server.mjs +2 -0
- package/src/mcp/proxy.mjs +153 -0
- package/src/mcp/smtp-server.mjs +2 -0
- package/src/memory-dashboard.mjs +2 -0
- package/src/memory-tools.mjs +2 -0
- package/src/memory.mjs +2 -0
- package/src/models.mjs +83 -3
- package/src/modules/ahp.mjs +2 -0
- package/src/modules/ash-policy.mjs +2 -0
- package/src/modules/ash.mjs +3 -1
- package/src/modules/bishop-plan.mjs +5 -3
- package/src/modules/bishop.mjs +13 -11
- package/src/modules/choices.mjs +2 -0
- package/src/modules/correo.mjs +2 -0
- package/src/modules/enlaces.mjs +2 -0
- package/src/modules/git-pulse.mjs +2 -0
- package/src/modules/github.mjs +2 -0
- package/src/modules/helpers.mjs +2 -0
- package/src/modules/image-studio.mjs +3 -1
- package/src/modules/index.mjs +4 -1
- package/src/modules/intents-calibration.mjs +2 -0
- package/src/modules/intents-desk.mjs +4 -2
- package/src/modules/intents-observe.mjs +2 -0
- package/src/modules/intents-policy.mjs +4 -1
- package/src/modules/intents-try.mjs +2 -0
- package/src/modules/intents.mjs +8 -6
- package/src/modules/mcp-connect.mjs +293 -0
- package/src/modules/ollama.mjs +17 -3
- package/src/modules/playwright.mjs +25 -10
- package/src/modules/ripley.mjs +2 -0
- package/src/modules/runs.mjs +5 -3
- package/src/modules/sdk.mjs +2 -0
- package/src/modules/updates.mjs +2 -0
- package/src/mother.mjs +2 -0
- package/src/ollama.mjs +2 -0
- package/src/outbound.mjs +24 -5
- package/src/override.mjs +2 -0
- package/src/ports.mjs +2 -0
- package/src/prices.mjs +2 -0
- package/src/privacy.mjs +2 -0
- package/src/quota-monitor.mjs +2 -0
- package/src/quota-sources.mjs +2 -0
- package/src/request-guard.mjs +2 -0
- package/src/review-ask.mjs +2 -0
- package/src/room/archivist.mjs +2 -0
- package/src/room/attachments.mjs +2 -0
- package/src/room/budget.mjs +2 -0
- package/src/room/context.mjs +2 -0
- package/src/room/control.mjs +7 -1
- package/src/room/copilot.mjs +76 -0
- package/src/room/economy.mjs +2 -0
- package/src/room/escalation.mjs +3 -0
- package/src/room/ghost.mjs +2 -0
- package/src/room/guard.mjs +2 -0
- package/src/room/prompt.mjs +13 -4
- package/src/room/returns.mjs +82 -0
- package/src/room/runs.mjs +4 -0
- package/src/room/vectors.mjs +2 -0
- package/src/room.mjs +264 -45
- package/src/router.mjs +2 -0
- package/src/runs.mjs +2 -0
- package/src/runtime-detection.mjs +2 -0
- package/src/salas.mjs +2 -0
- package/src/sentinel-errors.mjs +2 -0
- package/src/server-sentinel.mjs +2 -0
- package/src/server.mjs +485 -55
- package/src/setup.mjs +2 -0
- package/src/smtp.mjs +2 -0
- package/src/tour.mjs +26 -9
- package/src/updates.mjs +2 -0
- package/src/usage-sentinel.mjs +2 -0
- package/src/vault.mjs +2 -0
- package/src/verdict.mjs +3 -1
- package/src/whats-new.mjs +12 -10
- package/docs/madre-banner.svg +0 -25
package/NOTICE
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
MADRE
|
|
2
|
-
Copyright 2026 Jossue
|
|
2
|
+
Copyright © 2026 Jossue Alcalá — https://jossuealcala.com
|
|
3
3
|
|
|
4
|
-
This product
|
|
5
|
-
|
|
4
|
+
This product is MADRE, created by Jossue Alcalá.
|
|
5
|
+
|
|
6
|
+
From version 1.0.2 on, MADRE is licensed under the GNU Affero General Public
|
|
7
|
+
License, version 3 only (see LICENSE), with additional terms under its
|
|
8
|
+
Section 7 (see ADDITIONAL-TERMS.md). Versions 1.0.1 and earlier remain
|
|
9
|
+
available under the Apache License 2.0 they were published with.
|
|
10
|
+
|
|
11
|
+
Author attribution (Section 7(b)). Every copy of MADRE and every work based on
|
|
12
|
+
it must keep displaying, in the corner of every project and of Home, the
|
|
13
|
+
attribution «MADRE <version> · © 2026 Jossue Alcalá» linked to
|
|
14
|
+
https://jossuealcala.com — or, under another name, «Built with MADRE by Jossue
|
|
15
|
+
Alcalá» with the same link — and the same attribution in its Appropriate Legal
|
|
16
|
+
Notices. Keep this file, LICENSE and ADDITIONAL-TERMS.md in every distribution,
|
|
17
|
+
with the following line, unchanged:
|
|
18
|
+
|
|
19
|
+
Based on MADRE by Jossue Alcalá — https://madre.run
|
|
20
|
+
|
|
21
|
+
"MADRE", the MADRE logo and madre.run are trademarks of Jossue Alcalá. The
|
|
22
|
+
License grants no rights to use them (Section 7(e)). A modified version must be
|
|
23
|
+
distributed under a different name and logo. See TRADEMARKS.md.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
MADRE es de Jossue Alcalá. Desde la versión 1.0.2 se licencia bajo la GNU AGPL
|
|
28
|
+
v3 únicamente, con términos adicionales según su sección 7 (ADDITIONAL-TERMS.md).
|
|
29
|
+
Toda copia y toda versión basada en MADRE debe seguir mostrando, en la esquina
|
|
30
|
+
de cada proyecto y de Inicio, «MADRE <versión> · © 2026 Jossue Alcalá» con
|
|
31
|
+
enlace a https://jossuealcala.com —o, con otro nombre, «Desarrollado con MADRE
|
|
32
|
+
de Jossue Alcalá» con el mismo enlace— y la misma atribución en sus avisos
|
|
33
|
+
legales. Conserva este archivo, LICENSE, ADDITIONAL-TERMS.md y la línea «Based
|
|
34
|
+
on MADRE by Jossue Alcalá — https://madre.run». El nombre MADRE, su logo y
|
|
35
|
+
madre.run son marcas de Jossue Alcalá: una versión modificada lleva otro nombre.
|
|
36
|
+
Ver TRADEMARKS.md.
|
package/README.en.md
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://madre.run"><img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/madre-banner.png" alt="MADRE · All your AIs in one chat · Codex, Claude Code, Gemini CLI and OpenCode" width="100%"></a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center"><a href="README.md">Español</a> · <b>English</b></p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@jossuealcala/madre"><img alt="npm" src="https://img.shields.io/npm/v/@jossuealcala/madre?style=flat-square&label=npm&color=9bff66&labelColor=050605"></a>
|
|
9
|
+
<a href="https://github.com/jossuealcacao-exe/madre/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/jossuealcacao-exe/madre/ci.yml?style=flat-square&label=CI&color=9bff66&labelColor=050605"></a>
|
|
10
|
+
<img alt="node" src="https://img.shields.io/badge/node-%E2%89%A5%2022.5-9bff66?style=flat-square&labelColor=050605">
|
|
11
|
+
<img alt="dependencies" src="https://img.shields.io/badge/dependencies-0-9bff66?style=flat-square&labelColor=050605">
|
|
12
|
+
<img alt="license" src="https://img.shields.io/badge/license-AGPL--3.0-9bff66?style=flat-square&labelColor=050605">
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<br>
|
|
16
|
+
|
|
17
|
+
# All your AIs in one chat.
|
|
18
|
+
|
|
19
|
+
Codex, Claude Code, Gemini CLI and OpenCode working on your projects,
|
|
20
|
+
in the same conversation, remembering the same things. All your projects in one place,
|
|
21
|
+
and a Coordinator that sees them from above.
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
npx @jossuealcala/madre
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
That's it. No account to create, no cloud to set up, no key to paste.
|
|
28
|
+
MADRE uses the sessions those CLIs already have on your machine.
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<a href="https://github.com/jossuealcacao-exe/madre/blob/main/docs/media/1.0/madre-1-0.mp4"><img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/madre-1-0-video.webp" alt="Watch MADRE 1.0 in 90 seconds" width="100%"></a>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p align="center"><sub>MADRE 1.0 in 90 seconds: real screens on sample projects. Also at <a href="https://madre.run">madre.run</a>.</sub></p>
|
|
35
|
+
|
|
36
|
+
<br>
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
<br>
|
|
41
|
+
|
|
42
|
+
## What's new in 1.0
|
|
43
|
+
|
|
44
|
+
- **Home**: all your projects in one place, open or asleep, with what happened in each one.
|
|
45
|
+
- **The Coordinator**: an agent that reads across your projects, signs connections and carries orders from one to another.
|
|
46
|
+
- **Connections**: one project looks up what another has already learned, only through a connection that you sign or, if you allow it, the Coordinator.
|
|
47
|
+
- **Permissions your way**: from `#0` Incognito to `#4` Full access, with the key you choose.
|
|
48
|
+
- **Settings and Diagnostics**: everything you configure in one window, and the fix when something breaks.
|
|
49
|
+
- **Modules as apps**, several conversations at once and a code editor in the viewer.
|
|
50
|
+
|
|
51
|
+
If you're coming from 0.7.2, your projects, conversations, memory and settings stay. The details are in the [CHANGELOG](CHANGELOG.en.md).
|
|
52
|
+
|
|
53
|
+
<br>
|
|
54
|
+
|
|
55
|
+
## One conversation, not four terminals
|
|
56
|
+
|
|
57
|
+
<p align="center">
|
|
58
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-agentes.webp" alt="All your AIs in one chat: Claude answers after Codex, with the handoff line that says how many messages it received" width="100%">
|
|
59
|
+
</p>
|
|
60
|
+
|
|
61
|
+
You type `@codex` and Codex answers. You type `@claude` and Claude answers, **reading what Codex just said**. You type "@madre, ask the team…" and each one gives its take in turn on the same thing; at the end, @madre sums up where they agree and where they don't, citing each answer.
|
|
62
|
+
|
|
63
|
+
<p align="center">
|
|
64
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/mesa-redonda.gif" alt="A round table in MADRE 1.0: the question, @madre's plan and each agent's answers" width="100%">
|
|
65
|
+
</p>
|
|
66
|
+
|
|
67
|
+
Today that's four windows, four contexts and you copying and pasting between them. MADRE turns it into one thread.
|
|
68
|
+
|
|
69
|
+
## All your projects, in one place
|
|
70
|
+
|
|
71
|
+
<p align="center">
|
|
72
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-inicio.webp" alt="MADRE 1.0 Home: the Coordinator with its recent summary, who is waiting for you, the connections and one card per project" width="100%">
|
|
73
|
+
</p>
|
|
74
|
+
|
|
75
|
+
`npx @jossuealcala/madre` opens **Home**. The first time, it walks you through three steps: connect your agents (once for all your projects), add your folders and open the ones you'll use. Each card says whether an agent is working, whether someone is waiting for you and what was decided while you were away.
|
|
76
|
+
|
|
77
|
+
## A Coordinator that sees all your projects
|
|
78
|
+
|
|
79
|
+
<p align="center">
|
|
80
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-coordinador.webp" alt="The Coordinator answers what was decided in two connected projects, saying which one each fact came from" width="100%">
|
|
81
|
+
</p>
|
|
82
|
+
|
|
83
|
+
The **Coordinator** lives in Home. It reads what your projects have learned —only from the ones you connect— and answers you saying which project each fact came from. If you allow it, it carries tasks from one project to another, up to `#2`; anything that needs more permission arrives as a proposal that you unlock. From any project you ask it with `/bishop`.
|
|
84
|
+
|
|
85
|
+
A **connection** says which kinds of note cross over (decisions, facts, preferences, questions) and until when. Never your files or your conversations, and you can revoke it whenever you want.
|
|
86
|
+
|
|
87
|
+
## A memory that outlives the session
|
|
88
|
+
|
|
89
|
+
<p align="center">
|
|
90
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-memoria.webp" alt="The Memory map: colored memories around a magma core, joined by their links" width="100%">
|
|
91
|
+
</p>
|
|
92
|
+
|
|
93
|
+
Everything that's said gets indexed. When the conversation outgrows the context window, each agent gets back what it needs, cited. Every ten exchanges, the project distills what was said into typed notes: a decision, a fact, a preference, an open question.
|
|
94
|
+
|
|
95
|
+
You ask *"why did we choose Postgres?"* three weeks later and the project answers, even if that decision was made by another agent in another session.
|
|
96
|
+
|
|
97
|
+
With [Ollama](https://ollama.com) running, that memory also **talks**: `@madre` is a fifth agent, local, free, that answers from the whole archive with citations and writes nothing. And you can **see** it: the **Memory map** is a three-dimensional brain you turn with the mouse, where each memory is a star the color of its type.
|
|
98
|
+
|
|
99
|
+
## They read by default. They write when you say so.
|
|
100
|
+
|
|
101
|
+
<p align="center">
|
|
102
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-permisos.webp" alt="The MADRE 1.0 mode menu, from #0 Incognito to #4 Full access" width="100%">
|
|
103
|
+
</p>
|
|
104
|
+
|
|
105
|
+
Every message goes out with a permission mode, and your mode is the ceiling for everything that message starts.
|
|
106
|
+
|
|
107
|
+
| | | |
|
|
108
|
+
|---|---|---|
|
|
109
|
+
| `#1` | **CHAT ONLY** | Read and coordinate. The default. |
|
|
110
|
+
| `#2` | **CREATE** | Add new files. Whatever already existed is restored when it's done. |
|
|
111
|
+
| `#3` | **EDIT** | Edit the project. A restore point before, a list of changes and `UNDO` after. |
|
|
112
|
+
| `#4` | **FULL ACCESS** | Commands, `git push`, deploys. Asks for the key twice. |
|
|
113
|
+
|
|
114
|
+
There's also `#0 INCOGNITO`, for what shouldn't be kept anywhere.
|
|
115
|
+
|
|
116
|
+
Moving up to `#3` or `#4` is deliberate: MADRE asks for your key —by default, the name of the project folder; in Settings › Permissions you can choose a phrase of your own— and the project itself checks it. No agent can grant itself a permission by writing it in its answer.
|
|
117
|
+
|
|
118
|
+
<p align="center">
|
|
119
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-deshacer.webp" alt="Claude changed three files in #3 Edit and the Undo button takes the project back to the restore point" width="100%">
|
|
120
|
+
</p>
|
|
121
|
+
|
|
122
|
+
## Your space, your way
|
|
123
|
+
|
|
124
|
+
<p align="center">
|
|
125
|
+
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-espacio.webp" alt="The conversation on the left and the code editor beside it, in Edit mode" width="100%">
|
|
126
|
+
</p>
|
|
127
|
+
|
|
128
|
+
Each panel opens alongside or in a window you can move. Several conversations work at once, the viewer edits code, your project's servers open inside MADRE and you build the bar with a right click. **Settings** (⌘ ,) brings together everything you configure, with search, and **Diagnostics** gives you the fix when something breaks.
|
|
129
|
+
|
|
130
|
+
<br>
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
<br>
|
|
135
|
+
|
|
136
|
+
## Make it yours
|
|
137
|
+
|
|
138
|
+
MADRE comes with twelve modules —Token saver, Suggested effort, Local AI, GitHub, Continuity and more—, on an app-style board. You write the next one, or you ask an agent to.
|
|
139
|
+
|
|
140
|
+
**A module is one file.** No build, no dependencies, no signing up anywhere. You copy it into a folder, reload and it shows up with its switch, its settings and its card. With one you can add a `/whatever` command the project understands, give the agents a tool they didn't have before, change how MADRE behaves, or connect it to something you already use.
|
|
141
|
+
|
|
142
|
+
**Or you don't write it.** In the text box:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
/module a command that tells me what changed in the repo this week
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
The agent reads the SDK, writes the file, and MADRE shows you a card to review it before installing it. It never installs itself, and no agent can write to the modules folder.
|
|
149
|
+
|
|
150
|
+
**Connecting it to an outside service** is the most requested thing, and the short answer is *almost always yes*: the limit isn't MADRE, it's how that service lets you hand over your own key. It's worth it when you can get the key in under five minutes without being a developer and revoke it yourself — GitHub, Linear, Notion, Jira, Slack, Telegram, Stripe, Shopify, Odoo, any database. Where there's a wall is where the provider requires reviewing your app before letting you through: Gmail read access, Meta, banking.
|
|
151
|
+
|
|
152
|
+
Your module declares which key it needs and MADRE draws the field; it declares where it connects to and the outbound log accounts for it; it declares which of its tools **send** something, and the project takes those away from the agents except at step `#4`. You don't program any of that: you declare it.
|
|
153
|
+
|
|
154
|
+
**[Write a module →](docs/en/SDK.md)** · with two complete examples that work as they are: [the minimal one](docs/sdk/hello-module.mjs) and [an integration](docs/sdk/connector-module.mjs).
|
|
155
|
+
|
|
156
|
+
<br>
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
<br>
|
|
161
|
+
|
|
162
|
+
## What MADRE is not
|
|
163
|
+
|
|
164
|
+
This matters more than any feature.
|
|
165
|
+
|
|
166
|
+
**There is no cloud.** MADRE has no server, no account, no backend. It runs on `127.0.0.1` and dies when you close the terminal.
|
|
167
|
+
|
|
168
|
+
**Your keys, where they're needed and nowhere else.** When you give an agent's key, MADRE writes it to the file where that CLI looks for it, locked to your user, and keeps no copy. An integration has no CLI to give it to, so that one —and only that one— MADRE keeps, in its own vault on your machine, with permissions for your user only, accepted only from this computer. Never in its config, its records or its logs, or anything an agent reads: the card only shows that one is saved and how many characters it has.
|
|
169
|
+
|
|
170
|
+
**Nothing goes out on its own.** What an agent reads travels to *its* provider, with your account and your limits — as if you had run it in your terminal, because that's exactly what MADRE does. What MADRE looks up on its own is declared, along with what turns it off: the daily check for new versions (npm and GitHub), your Claude plan's quota, Gemini embeddings and images if you turn them on, and crash reports, off by default. And once a day, always, a notice that this copy is still in use: a random identifier, the MADRE version, the operating system and the Node version. No name, email, IP or anything from your projects; it's how the author knows how many people use MADRE.
|
|
171
|
+
|
|
172
|
+
**And it lets you read it.** Touch the core of the Memory map and "What is sent" opens: the exact document MADRE writes on your behalf every turn, the exact command it delivers it with, and the log of every call that left this machine. It's not a promise: it's a screen.
|
|
173
|
+
|
|
174
|
+
**Zero dependencies.** Node and nothing else.
|
|
175
|
+
|
|
176
|
+
<br>
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
<br>
|
|
181
|
+
|
|
182
|
+
## Getting started
|
|
183
|
+
|
|
184
|
+
You need **Node 22.5** or later and at least one of these CLIs with a signed-in session: Codex, Claude Code, Gemini CLI or OpenCode.
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
npx @jossuealcala/madre
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
From any folder, it opens **Home** at `http://127.0.0.1:4317/salas`: all your projects in one place, with the Coordinator at the top. The first time, it walks you through three steps: **connect your agents** (install and sign in to each CLI right there, once for all your projects), **add your projects** (you choose the folders; adding them doesn't open them) and **open** the ones you'll use. Each project runs on its own, with its own memory.
|
|
191
|
+
|
|
192
|
+
If you'd rather go straight into a project, as before:
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
cd your-project
|
|
196
|
+
npx @jossuealcala/madre start
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
npx @jossuealcala/madre doctor # what's installed, who's signed in
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Updating.** `npx @jossuealcala/madre` with no version fetches the newest one each time it starts: close it and open it again, or use the new-version notice inside MADRE, which updates it in one click. If you installed it with `npm install -g`, install it again: `npm install -g @jossuealcala/madre@latest`.
|
|
204
|
+
|
|
205
|
+
MADRE speaks **Spanish** and **English**: the first time, it opens in your browser's language, and you can change it any time in Settings › Appearance.
|
|
206
|
+
|
|
207
|
+
<br>
|
|
208
|
+
|
|
209
|
+
**How each thing works, with the exact numbers:** [docs/en/REFERENCE.md](docs/en/REFERENCE.md)
|
|
210
|
+
**How it works inside:** [docs/en/INTERNALS.md](docs/en/INTERNALS.md) · **Write a module:** [docs/en/SDK.md](docs/en/SDK.md)
|
|
211
|
+
|
|
212
|
+
<br>
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
<br>
|
|
217
|
+
|
|
218
|
+
## Status
|
|
219
|
+
|
|
220
|
+
Public beta. The core is tested and under CI on macOS and Linux with Node 22 and 24; the surface keeps changing. The decisions that still hurt are written down, without embellishment, in [*What leaves the machine*](docs/en/REFERENCE.md#what-leaves-the-machine).
|
|
221
|
+
|
|
222
|
+
A version is closed when it's on npm. The details of each one in [CHANGELOG.en.md](CHANGELOG.en.md); what's coming, in the [roadmap](https://github.com/jossuealcacao-exe/madre/blob/main/docs/en/ROADMAP.md).
|
|
223
|
+
|
|
224
|
+
Problems: from any fix in Diagnostics ("Not fixed?") or in [issues](https://github.com/jossuealcacao-exe/madre/issues).
|
|
225
|
+
Security: [SECURITY.md](SECURITY.md) · Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
226
|
+
|
|
227
|
+
MADRE is free and will stay that way. If it saves you time and you want it to keep growing,
|
|
228
|
+
you can [sponsor it](https://github.com/sponsors/jossuealcacao-exe). Nothing in the product
|
|
229
|
+
changes based on what you do with that link.
|
|
230
|
+
|
|
231
|
+
AGPL-3.0 with additional terms · © 2026 [Jossue Alcalá](https://jossuealcala.com/en/)
|
|
232
|
+
|
|
233
|
+
The code is free software under the [GNU AGPL v3](LICENSE) with [additional terms](ADDITIONAL-TERMS.md):
|
|
234
|
+
use it, modify it and fork it, as long as your version stays open under the same license and keeps the
|
|
235
|
+
authorship visible —«MADRE ‹version› · © 2026 Jossue Alcalá» in the corner of every project and of Home,
|
|
236
|
+
linked to jossuealcala.com, or «Built with MADRE by Jossue Alcalá» under another name. The name
|
|
237
|
+
**MADRE**, its logo and madre.run are trademarks of Jossue Alcalá: a modified version goes by another
|
|
238
|
+
name. Up to 1.0.1, MADRE was published under the Apache License 2.0. What's allowed and what isn't:
|
|
239
|
+
[TRADEMARKS.en.md](TRADEMARKS.en.md).
|
|
240
|
+
|
|
241
|
+
<br>
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
NOBODY DELETES MOTHER'S MEMORY.
|
|
245
|
+
```
|
package/README.md
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://madre.run"><img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/madre-banner.
|
|
2
|
+
<a href="https://madre.run"><img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/madre-banner.png" alt="MADRE · Todas tus IAs en un mismo chat · Codex, Claude Code, Gemini CLI y OpenCode" width="100%"></a>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
+
<p align="center"><b>Español</b> · <a href="README.en.md">English</a></p>
|
|
6
|
+
|
|
7
|
+
<p align="center"><sub><b>In English:</b> MADRE puts Codex, Claude Code, Gemini CLI and OpenCode in one local chat on your machine, with one memory they all share. It opens in your browser's language, Spanish or English. <a href="README.en.md"><b>Read the full README in English →</b></a></sub></p>
|
|
8
|
+
|
|
5
9
|
<p align="center">
|
|
6
10
|
<a href="https://www.npmjs.com/package/@jossuealcala/madre"><img alt="npm" src="https://img.shields.io/npm/v/@jossuealcala/madre?style=flat-square&label=npm&color=9bff66&labelColor=050605"></a>
|
|
7
11
|
<a href="https://github.com/jossuealcacao-exe/madre/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/jossuealcacao-exe/madre/ci.yml?style=flat-square&label=CI&color=9bff66&labelColor=050605"></a>
|
|
8
12
|
<img alt="node" src="https://img.shields.io/badge/node-%E2%89%A5%2022.5-9bff66?style=flat-square&labelColor=050605">
|
|
9
13
|
<img alt="dependencies" src="https://img.shields.io/badge/dependencias-0-9bff66?style=flat-square&labelColor=050605">
|
|
10
|
-
<img alt="license" src="https://img.shields.io/badge/licencia-
|
|
14
|
+
<img alt="license" src="https://img.shields.io/badge/licencia-AGPL--3.0-9bff66?style=flat-square&labelColor=050605">
|
|
11
15
|
</p>
|
|
12
16
|
|
|
13
|
-
```
|
|
14
|
-
MU/TH/UR 6000 · INTERFACE 2037 · MADRE IS READY
|
|
15
|
-
```
|
|
16
|
-
|
|
17
17
|
<br>
|
|
18
18
|
|
|
19
19
|
# Todas tus IAs en un mismo chat.
|
|
@@ -45,7 +45,7 @@ MADRE usa las sesiones que esas CLIs ya tienen en tu máquina.
|
|
|
45
45
|
|
|
46
46
|
- **Inicio**: todos tus proyectos en un lugar, abiertos o dormidos, con lo que pasó en cada uno.
|
|
47
47
|
- **El Coordinador**: un agente que lee entre tus proyectos, firma conexiones y lleva órdenes de uno a otro.
|
|
48
|
-
- **Conexiones**: un proyecto consulta lo que otro ya aprendió, solo
|
|
48
|
+
- **Conexiones**: un proyecto consulta lo que otro ya aprendió, solo con una conexión que firmas tú o, si lo permites, el Coordinador.
|
|
49
49
|
- **Permisos a tu manera**: de `#0` Incógnito a `#4` Acceso total, con la llave que tú eliges.
|
|
50
50
|
- **Ajustes y Diagnóstico**: todo lo que configuras en una ventana, y el remedio cuando algo falla.
|
|
51
51
|
- **Módulos como apps**, varias conversaciones a la vez y un editor de código en el visor.
|
|
@@ -74,7 +74,7 @@ Hoy eso son cuatro ventanas, cuatro contextos y tú copiando y pegando entre ell
|
|
|
74
74
|
<img src="https://raw.githubusercontent.com/jossuealcacao-exe/madre/main/docs/media/1.0/ksp-inicio.webp" alt="Inicio de MADRE 1.0: el Coordinador con su resumen reciente, quién te espera, las conexiones y una tarjeta por proyecto" width="100%">
|
|
75
75
|
</p>
|
|
76
76
|
|
|
77
|
-
`madre` abre **Inicio**. La primera vez te acompaña en tres pasos: conectar tus agentes (una vez para todos tus proyectos), agregar tus carpetas y abrir las que vas a usar. Cada tarjeta dice si un agente trabaja, si alguien te espera y qué se decidió mientras no estabas.
|
|
77
|
+
`npx @jossuealcala/madre` abre **Inicio**. La primera vez te acompaña en tres pasos: conectar tus agentes (una vez para todos tus proyectos), agregar tus carpetas y abrir las que vas a usar. Cada tarjeta dice si un agente trabaja, si alguien te espera y qué se decidió mientras no estabas.
|
|
78
78
|
|
|
79
79
|
## Un Coordinador que ve todos tus proyectos
|
|
80
80
|
|
|
@@ -137,7 +137,7 @@ Cada panel se abre al lado o en una ventana que mueves. Varias conversaciones tr
|
|
|
137
137
|
|
|
138
138
|
## Hazla tuya
|
|
139
139
|
|
|
140
|
-
MADRE trae doce módulos —Ahorro de tokens,
|
|
140
|
+
MADRE trae doce módulos —Ahorro de tokens, Esfuerzo sugerido, IA local, GitHub, Continuidad y más—, en un tablero como de apps. El siguiente lo escribes tú, o se lo pides a un agente.
|
|
141
141
|
|
|
142
142
|
**Un módulo es un archivo.** Sin build, sin dependencias, sin registrarse en ningún lado. Lo copias a una carpeta, recargas y aparece con su interruptor, sus ajustes y su ficha. Con uno puedes añadir un comando `/loquesea` que el proyecto entiende, darle a los agentes una herramienta que antes no tenían, cambiar cómo se comporta MADRE, o conectarla con algo que ya usas.
|
|
143
143
|
|
|
@@ -169,7 +169,7 @@ Esto importa más que cualquier función.
|
|
|
169
169
|
|
|
170
170
|
**Tus llaves, donde hacen falta y en ningún otro lado.** Cuando das la llave de un agente, MADRE la escribe en el archivo donde ese CLI la busca, cerrada a tu usuario, y no conserva copia. Una integración no tiene CLI al que dársela, así que esa —y solo esa— la guarda MADRE, en su propia bodega de tu máquina, con permisos de solo tu usuario, aceptada únicamente desde esta computadora. Nunca en su config, ni en su registro, ni en sus logs, ni en lo que lee un agente: la ficha solo muestra que hay una guardada y cuántos caracteres tiene.
|
|
171
171
|
|
|
172
|
-
**Nada sale por su cuenta.** Lo que un agente lee viaja a *su* proveedor, con tu cuenta y tus límites — como si lo hubieras corrido en tu terminal, porque eso es exactamente lo que MADRE hace. Lo que MADRE consulta por su cuenta está declarado, con lo que lo apaga: la consulta diaria de versiones nuevas (npm y GitHub), la cuota de tu plan de Claude, los embeddings e imágenes de Gemini si los activas, y los reportes de fallos, apagados por defecto.
|
|
172
|
+
**Nada sale por su cuenta.** Lo que un agente lee viaja a *su* proveedor, con tu cuenta y tus límites — como si lo hubieras corrido en tu terminal, porque eso es exactamente lo que MADRE hace. Lo que MADRE consulta por su cuenta está declarado, con lo que lo apaga: la consulta diaria de versiones nuevas (npm y GitHub), la cuota de tu plan de Claude, los embeddings e imágenes de Gemini si los activas, y los reportes de fallos, apagados por defecto. Y una vez al día, siempre, un aviso de que esta copia sigue en uso: un identificador al azar, la versión de MADRE, el sistema y la versión de Node. Sin tu nombre, tu correo, tu IP ni nada de tus proyectos; es como el autor sabe cuántas personas usan MADRE.
|
|
173
173
|
|
|
174
174
|
**Y te deja leerlo.** Toca el núcleo del Mapa de memoria y se abre «Lo que se envía»: el documento exacto que MADRE escribe en tu nombre cada turno, el comando exacto con el que lo entrega, y el registro de cada llamada que salió de esta máquina. No es una promesa: es una pantalla.
|
|
175
175
|
|
|
@@ -189,7 +189,7 @@ Necesitas **Node 22.5** o superior y al menos una de estas CLIs con sesión inic
|
|
|
189
189
|
npx @jossuealcala/madre
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
Desde cualquier carpeta, abre **Inicio** en `http://127.0.0.1:4317/salas`: todos tus proyectos en un lugar, con el Coordinador arriba. La primera vez te acompaña en tres pasos: **conectar tus agentes** (instalar
|
|
192
|
+
Desde cualquier carpeta, abre **Inicio** en `http://127.0.0.1:4317/salas`: todos tus proyectos en un lugar, con el Coordinador arriba. La primera vez te acompaña en tres pasos: **conectar tus agentes** (instalar cada CLI e iniciar sesión ahí mismo, una vez para todos tus proyectos), **agregar tus proyectos** (eliges las carpetas; agregarlas no las abre) y **abrir** los que vas a usar. Cada proyecto corre por su cuenta, con su propia memoria.
|
|
193
193
|
|
|
194
194
|
Si prefieres entrar directo a un proyecto, como antes:
|
|
195
195
|
|
|
@@ -202,7 +202,9 @@ npx @jossuealcala/madre start
|
|
|
202
202
|
npx @jossuealcala/madre doctor # qué hay instalado, quién tiene sesión
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
-
MADRE
|
|
205
|
+
**Actualizar.** `npx @jossuealcala/madre` sin versión baja la más reciente cada vez que arranca: ciérrala y vuelve a abrirla, o usa el aviso de versión nueva dentro de MADRE, que la actualiza con un clic. Si la instalaste con `npm install -g`, vuelve a instalarla: `npm install -g @jossuealcala/madre@latest`.
|
|
206
|
+
|
|
207
|
+
MADRE habla **español** e **inglés**: la primera vez se abre en el idioma de tu navegador, y en Ajustes › Apariencia lo cambias cuando quieras.
|
|
206
208
|
|
|
207
209
|
<br>
|
|
208
210
|
|
|
@@ -228,7 +230,15 @@ MADRE es gratis y seguirá siéndolo. Si te ahorra tiempo y quieres que siga cre
|
|
|
228
230
|
puedes [apadrinarla](https://github.com/sponsors/jossuealcacao-exe). Nada del producto
|
|
229
231
|
cambia según lo que hagas con ese enlace.
|
|
230
232
|
|
|
231
|
-
|
|
233
|
+
AGPL-3.0 con términos adicionales · © 2026 [Jossue Alcalá](https://jossuealcala.com)
|
|
234
|
+
|
|
235
|
+
El código es software libre bajo la [GNU AGPL v3](LICENSE) con [términos adicionales](ADDITIONAL-TERMS.md):
|
|
236
|
+
úsalo, modifícalo y haz forks, siempre que tu versión siga abierta con la misma licencia y conserve
|
|
237
|
+
visible la autoría —«MADRE ‹versión› · © 2026 Jossue Alcalá» en la esquina de cada proyecto y de Inicio,
|
|
238
|
+
con enlace a jossuealcala.com, o «Desarrollado con MADRE de Jossue Alcalá» si lleva otro nombre—. El
|
|
239
|
+
nombre **MADRE**, su logo y madre.run son marcas de Jossue Alcalá: una versión modificada lleva otro
|
|
240
|
+
nombre. Hasta la 1.0.1, MADRE se publicó con licencia Apache 2.0. Qué se puede y qué no:
|
|
241
|
+
[TRADEMARKS.md](TRADEMARKS.md).
|
|
232
242
|
|
|
233
243
|
<br>
|
|
234
244
|
|
package/TRADEMARKS.en.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# MADRE trademark policy
|
|
2
|
+
|
|
3
|
+
[Español](TRADEMARKS.md) · **English**
|
|
4
|
+
|
|
5
|
+
MADRE's code is free software under the [GNU AGPL v3](LICENSE), with
|
|
6
|
+
[additional terms](ADDITIONAL-TERMS.md) under its Section 7: you can use it, study it, modify it,
|
|
7
|
+
fork it and distribute your forks, commercially too, as long as your version stays open under the
|
|
8
|
+
same license and keeps the authorship visible. **The name is not included.** "MADRE", its logo
|
|
9
|
+
and madre.run are trademarks of Jossue Alcalá, and the License grants no rights to use them
|
|
10
|
+
(Section 7(e)). This page says what is allowed and what isn't. Versions 1.0.1 and earlier remain
|
|
11
|
+
under the Apache License 2.0 they were published with.
|
|
12
|
+
|
|
13
|
+
## What every fork must always do
|
|
14
|
+
|
|
15
|
+
- **Keep the authorship visible.** In the corner of every project and of Home,
|
|
16
|
+
«MADRE <version> · © 2026 Jossue Alcalá» linked to https://jossuealcala.com or, under another
|
|
17
|
+
name, «Built with MADRE by Jossue Alcalá» with the same link; and the same attribution in its
|
|
18
|
+
legal notices. The additional terms require it (Section 7(b)).
|
|
19
|
+
- **Say where it comes from.** Keep [`NOTICE`](NOTICE), [`LICENSE`](LICENSE) and
|
|
20
|
+
[`ADDITIONAL-TERMS.md`](ADDITIONAL-TERMS.md), with the line
|
|
21
|
+
`Based on MADRE by Jossue Alcalá — https://madre.run`.
|
|
22
|
+
- **Stay open.** Your version is licensed under the GNU AGPL v3 with these terms too, and if you
|
|
23
|
+
offer it over a network, you offer its source code as well (Section 13).
|
|
24
|
+
- **Mark that you changed it** and do not present it as MADRE or as made by Jossue Alcalá
|
|
25
|
+
(Sections 5(a) and 7(c)).
|
|
26
|
+
|
|
27
|
+
We also ask that the phrase "Based on MADRE" appears wherever your project says who made it:
|
|
28
|
+
the README, the "About" screen or the footer.
|
|
29
|
+
|
|
30
|
+
## What you can do without asking
|
|
31
|
+
|
|
32
|
+
- Use MADRE as is, under its name, for yourself or your team.
|
|
33
|
+
- Redistribute MADRE **unmodified** under its name.
|
|
34
|
+
- Say in words that your project is "based on MADRE", "made for MADRE" or "compatible with
|
|
35
|
+
MADRE", without implying that it is official.
|
|
36
|
+
- Write modules for MADRE and call them "X module for MADRE".
|
|
37
|
+
- Talk about MADRE in articles, videos, courses and reviews.
|
|
38
|
+
|
|
39
|
+
## What needs a different name
|
|
40
|
+
|
|
41
|
+
- A **modified** version that you distribute: it carries its own name and logo that can't be
|
|
42
|
+
confused with MADRE (not "MADRE Pro", "MADRE+", "NeoMADRE" or anything similar).
|
|
43
|
+
- A service, app or package that presents itself as MADRE or as its official version.
|
|
44
|
+
- Domains, npm packages, accounts or repositories whose name suggests they belong to MADRE.
|
|
45
|
+
- The MADRE logo on anything that is not unmodified MADRE.
|
|
46
|
+
|
|
47
|
+
## If in doubt
|
|
48
|
+
|
|
49
|
+
Write to Jossue Alcalá at [jossuealcala.com](https://jossuealcala.com) before publishing. This
|
|
50
|
+
policy may change; the version in effect is the one in this repository.
|
package/TRADEMARKS.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Marca MADRE · MADRE trademark policy
|
|
2
|
+
|
|
3
|
+
**Español** · [English below](#english)
|
|
4
|
+
|
|
5
|
+
El código de MADRE es software libre bajo la [GNU AGPL v3](LICENSE), con
|
|
6
|
+
[términos adicionales](ADDITIONAL-TERMS.md) según su sección 7: puedes usarlo, estudiarlo,
|
|
7
|
+
modificarlo, hacer forks y distribuirlos, también con fines comerciales, siempre que tu versión
|
|
8
|
+
siga abierta bajo la misma licencia y mantenga visible la autoría. **El nombre no viene
|
|
9
|
+
incluido.** «MADRE», su logo y madre.run son marcas de Jossue Alcalá, y la licencia no da
|
|
10
|
+
derechos para usarlas (sección 7(e)). Esta página dice qué sí y qué no. Las versiones 1.0.1 y
|
|
11
|
+
anteriores siguen bajo la licencia Apache 2.0 con la que se publicaron.
|
|
12
|
+
|
|
13
|
+
## Lo que siempre debe hacer un fork
|
|
14
|
+
|
|
15
|
+
- **Mantener visible la autoría.** En la esquina de cada proyecto y de Inicio,
|
|
16
|
+
«MADRE <versión> · © 2026 Jossue Alcalá» con enlace a https://jossuealcala.com, o, con otro
|
|
17
|
+
nombre, «Desarrollado con MADRE de Jossue Alcalá» con el mismo enlace; y la misma atribución en
|
|
18
|
+
sus avisos legales. Lo exigen los términos adicionales (sección 7(b)).
|
|
19
|
+
- **Decir de dónde viene.** Conserva [`NOTICE`](NOTICE), [`LICENSE`](LICENSE) y
|
|
20
|
+
[`ADDITIONAL-TERMS.md`](ADDITIONAL-TERMS.md), con la línea
|
|
21
|
+
`Based on MADRE by Jossue Alcalá — https://madre.run`.
|
|
22
|
+
- **Seguir abierto.** Tu versión se licencia también bajo la GNU AGPL v3 con estos términos, y si
|
|
23
|
+
la ofreces por red, ofreces también su código fuente (sección 13).
|
|
24
|
+
- **Indicar que lo cambiaste** y no presentarla como MADRE ni como hecha por Jossue Alcalá
|
|
25
|
+
(secciones 5(a) y 7(c)).
|
|
26
|
+
|
|
27
|
+
Te pedimos además que la frase «Basado en MADRE» aparezca donde tu proyecto diga quién lo hizo:
|
|
28
|
+
el README, la pantalla «Acerca de» o el pie de página.
|
|
29
|
+
|
|
30
|
+
## Lo que sí puedes hacer sin pedir permiso
|
|
31
|
+
|
|
32
|
+
- Usar MADRE tal cual, con su nombre, para ti o tu equipo.
|
|
33
|
+
- Redistribuir MADRE **sin modificar** con su nombre.
|
|
34
|
+
- Decir con palabras que tu proyecto está «basado en MADRE», «hecho para MADRE» o «compatible con
|
|
35
|
+
MADRE», sin hacer creer que es oficial.
|
|
36
|
+
- Escribir módulos para MADRE y llamarlos «módulo X para MADRE».
|
|
37
|
+
- Hablar de MADRE en artículos, videos, cursos y reseñas.
|
|
38
|
+
|
|
39
|
+
## Lo que necesita otro nombre
|
|
40
|
+
|
|
41
|
+
- Una versión **modificada** que distribuyas: lleva un nombre y un logo propios que no se
|
|
42
|
+
confundan con MADRE (no «MADRE Pro», «MADRE+», «NeoMADRE» ni similares).
|
|
43
|
+
- Un servicio, una app o un paquete que se presente como MADRE o como su versión oficial.
|
|
44
|
+
- Dominios, paquetes de npm, cuentas o repositorios cuyo nombre haga creer que son de MADRE.
|
|
45
|
+
- El logo de MADRE en cualquier cosa que no sea MADRE sin modificar.
|
|
46
|
+
|
|
47
|
+
## Si tienes duda
|
|
48
|
+
|
|
49
|
+
Escribe a Jossue Alcalá en [jossuealcala.com](https://jossuealcala.com) antes de publicar. Esta
|
|
50
|
+
política puede cambiar; la versión vigente es la de este repositorio.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## English
|
|
55
|
+
|
|
56
|
+
MADRE's code is free software under the [GNU AGPL v3](LICENSE), with
|
|
57
|
+
[additional terms](ADDITIONAL-TERMS.md) under its Section 7: use it, study it, modify it, fork it
|
|
58
|
+
and redistribute it, commercially too, as long as your version stays open under the same license
|
|
59
|
+
and keeps the authorship visible. **The name is not included.** "MADRE", its logo and madre.run
|
|
60
|
+
are trademarks of Jossue Alcalá, and the License grants no rights to use them (Section 7(e)).
|
|
61
|
+
Versions 1.0.1 and earlier remain under the Apache License 2.0 they were published with.
|
|
62
|
+
|
|
63
|
+
**Every fork must:** keep showing, in the corner of every project and of Home,
|
|
64
|
+
«MADRE <version> · © 2026 Jossue Alcalá» linked to https://jossuealcala.com (or, under another
|
|
65
|
+
name, «Built with MADRE by Jossue Alcalá» with the same link), and the same attribution in its
|
|
66
|
+
legal notices (Section 7(b)); keep [`NOTICE`](NOTICE), [`LICENSE`](LICENSE) and
|
|
67
|
+
[`ADDITIONAL-TERMS.md`](ADDITIONAL-TERMS.md), with the line
|
|
68
|
+
`Based on MADRE by Jossue Alcalá — https://madre.run`; stay under the GNU AGPL v3 with these
|
|
69
|
+
terms and, if offered over a network, offer its source code (Section 13); and be marked as
|
|
70
|
+
changed, never presented as MADRE or as made by Jossue Alcalá (Sections 5(a) and 7(c)). We also
|
|
71
|
+
ask that "Based on MADRE" appears wherever your project says who made it.
|
|
72
|
+
|
|
73
|
+
**You may, without asking:** use MADRE as is, under its name; redistribute it unmodified under
|
|
74
|
+
its name; say your project is "based on MADRE", "made for MADRE" or "compatible with MADRE" without
|
|
75
|
+
implying it is official; name a module "X for MADRE"; write and talk about MADRE.
|
|
76
|
+
|
|
77
|
+
**Needs a different name:** any modified version you distribute (its own name and logo, nothing
|
|
78
|
+
confusable such as "MADRE Pro" or "MADRE+"); anything presented as MADRE or its official
|
|
79
|
+
version; domains, npm packages, accounts or repositories that look like MADRE's; the logo on
|
|
80
|
+
anything that is not unmodified MADRE.
|
|
81
|
+
|
|
82
|
+
In doubt, contact Jossue Alcalá at [jossuealcala.com](https://jossuealcala.com) before publishing.
|
package/bin/madre.mjs
CHANGED
package/docs/INTERNALS.md
CHANGED
|
@@ -82,15 +82,21 @@ Los alcances de imagen de Claude, Gemini y OpenCode se cumplen con **Image Studi
|
|
|
82
82
|
|
|
83
83
|
Un turno en `#2` toma la misma fotografía que CONTROL, sin asiento: varios turnos `#2` pueden correr a la vez. Al terminar, `diff` contra la fotografía: los archivos añadidos se conservan y se registran como `artifacts.created` con su ruta en el proyecto; los modificados, renombrados o borrados se restauran desde la fotografía y se anuncian en `create.reverted`. Las zonas prohibidas se restauran igual que en CONTROL. Cada CLI recibe sus herramientas de escritura sobre el proyecto: Claude Code niega `Write` si `Edit` no está permitido en la misma ruta y OpenCode deja sin herramienta de escritura si `edit` está denegado (ambos verificados con el CLI real), así que en `#2` van juntas y la garantía de "solo añadir" es la restauración posterior, no la regla previa. Gemini recibe solo `write_file`. El `scratchDir` bajo `.pulse/out/` sigue existiendo para lo que no tiene sitio y para Image Studio.
|
|
84
84
|
|
|
85
|
-
En un plan, el modo de cada paso es el mínimo entre lo que pidió el orquestador (`@agente #n
|
|
85
|
+
En un plan, el modo de cada paso es el mínimo entre lo que pidió el orquestador (`@agente #n:`; sin número, `#1`, o `#2` si hay lease), el techo del plan (el modo del mensaje humano) y el `MAX MODE` del agente. `#4` nunca llega a un delegado por el techo: solo con la llave de ese agente. Bajo techo `#3`, un paso `#2` recibe un lease de proyecto emitido a nombre del orquestador y un paso `#3` toma CONTROL con su propio checkpoint, uno a la vez. Bajo techo `#1`, un paso `#2` pasa por la escalación al humano. Un paso `#3` o `#4` que supera el techo pide la llave al humano para ese agente; concederla para el plan no eleva el techo de los demás.
|
|
86
86
|
|
|
87
87
|
## CONTROL por dentro
|
|
88
88
|
|
|
89
89
|
Antes del turno, MADRE fotografía el proyecto como un commit real bajo `refs/madre/checkpoints/` con un índice temporal (en un proyecto sin git, en un repositorio sombra bajo el directorio temporal del sistema, con el proyecto como árbol de trabajo): incluye archivos sin seguimiento, respeta `.gitignore`, no toca tu rama, tu índice ni tu stash, y funciona en repositorios sin commits. Mientras dura el turno, `.env*`, `.pulse/`, `.madre/` y `.claude/settings.local.json` quedan en solo lectura a nivel de sistema de archivos y recuperan sus permisos al terminar. Después, `git diff` contra el checkpoint da la lista de cambios; cualquier escritura en una zona prohibida que hubiera pasado se revierte desde el checkpoint y se nombra. `UNDO` restaura el checkpoint completo.
|
|
90
90
|
|
|
91
|
+
## Comandos que vuelven y el copiloto
|
|
92
|
+
|
|
93
|
+
Un ```pulse-run guarda con qué modo corrió el turno que lo pidió. Cuando cada línea que puede correr tiene respuesta —terminó, o abrió un puerto y sirve—, `src/room/returns.mjs` arma lo que el agente lee: por qué pidió, qué estaba contestando, el final de lo que había dicho y la salida de cada línea (cabeza y cola, unos 10 000 caracteres entre todas), y la sala abre un turno del humano marcado `auto: 'runs'` con ese bloque, al modo del turno original y nunca por encima de `#3` (de `#2` si una línea se presionó desde el teléfono). Si el agente sigue contestando o hay un plan corriendo, espera a que la sala quede libre; `STOP ALL` la retiene hasta que el humano la devuelve desde su tarjeta. Una petición se devuelve una vez. En la ventana compartida, la salida de un comando pesa como mucho ~1 200 caracteres: cinco salidas largas ya no empujan fuera la petición del humano.
|
|
94
|
+
|
|
95
|
+
El copiloto es una ventana del servidor (`/api/copilot`), en memoria como los pases: la llave de `#3` la abre por un tiempo y `STOP ALL` o un reinicio la cierran. Cada conversación la consulta al aceptar un mensaje: uno en `#3` marcado `copilot` no gasta pase y alcanza a cualquier agente cuya CLI escriba. Su turno lleva el bloque `copilot` (`src/room/copilot.mjs`); al asentarse, lo que borró se restaura desde el punto de restauración (`deletesReverted`). Sus peticiones de comandos se corren solas cuando el turno suelta el proyecto, solo las líneas de la lista segura, y la devolución sigue siendo del copiloto mientras la ventana dure. Ocho rondas solas seguidas y se detiene con una alerta.
|
|
96
|
+
|
|
91
97
|
## Recuperación operativa
|
|
92
98
|
|
|
93
|
-
Si MADRE se detiene a mitad de un turno, al arrancar detecta los `agent.started` sin cierre y registra un `message.failed` recuperado para cada uno. Al cerrar con Ctrl+C o `SIGTERM`, interrumpe los procesos de agente en curso, registra esos turnos como fallidos, entrega los eventos pendientes a las páginas abiertas y termina. Los planes se ejecutan en secuencia y los delegados no delegan,
|
|
99
|
+
Si MADRE se detiene a mitad de un turno, al arrancar detecta los `agent.started` sin cierre y registra un `message.failed` recuperado para cada uno. Al cerrar con Ctrl+C o `SIGTERM`, interrumpe los procesos de agente en curso, registra esos turnos como fallidos, entrega los eventos pendientes a las páginas abiertas y termina. Los planes se ejecutan en secuencia y los delegados no delegan. El orquestador revisa las respuestas y puede abrir otro tramo, hasta tres por petición; `STOPALL` corta cualquier cosa en curso.
|
|
94
100
|
|
|
95
101
|
## Empaquetado y pruebas
|
|
96
102
|
|