create-evda 0.1.2 → 0.1.3

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 CHANGED
@@ -14,7 +14,7 @@ npx create-evda my-evda
14
14
 
15
15
  ## Setup
16
16
 
17
- On a terminal, `create-evda` asks one question at a time: what to call your agent (Iris unless you rename it), who you are, what you want this for, how it should talk to you, and which AI you will use. It shows where that AI's training setting is, links the provider's own page, and does not finish until you type yes. The answers go into "What this EVÐA is" at the top of `AGENTS.md`, in your words. It suggests dictation: Apple's built in dictation, or Wispr Flow with data collection turned off.
17
+ On a terminal, `create-evda` asks one question at a time: what to call your agent (Iris unless you rename it), who you are, what you want this for, how it should talk to you, and which AI you will use. It shows where that AI's training setting is, links the provider's own page, and does not finish until you type yes. The answers go into "What this EVÐA is" at the top of `AGENTS.md`, in your words. It suggests dictation: Apple's built in dictation, or Wispr Flow with data collection turned off. Last, it offers to bring in what an AI you already use knows about you; see below.
18
18
 
19
19
  Unattended, nothing is asked:
20
20
 
@@ -27,7 +27,11 @@ npx create-evda my-evda --yes --agent-name Iris --owner "Dana" --purpose "why wo
27
27
 
28
28
  ## Any AI
29
29
 
30
- `AGENTS.md` is the one source. Codex, Cursor, GitHub Copilot, Windsurf, Zed, opencode and the other tools on agents.md read it directly. For the two that do not, the scaffold writes a one line loader: `CLAUDE.md` for Claude Code and `GEMINI.md` for Gemini CLI, each `@AGENTS.md`. Aider takes `aider --read AGENTS.md`. A chat app with projects (ChatGPT, Claude) cannot read the folder: paste `AGENTS.md` into the project's instructions and add your record files; what you write there stays in the app until you copy it into `record/`.
30
+ `AGENTS.md` is the one source. Codex, Cursor, GitHub Copilot, Windsurf, Zed, opencode and the other tools on agents.md read it directly. For the two that do not, the scaffold writes a one line loader: `CLAUDE.md` for Claude Code and `GEMINI.md` for Gemini CLI, each `@AGENTS.md`. Aider takes `aider --read AGENTS.md`. The Claude desktop app reads it too, once its Filesystem extension is installed and pointed at this folder (Settings, then Extensions, then Filesystem). ChatGPT and Claude in the browser or app, used through a Project, cannot read or write this folder: a Project's instructions field holds text for that conversation only, and pasting `AGENTS.md` into it does not run an EVDA, because nothing you write there reaches `record/`. Bring what a chat app like that already knows about you in once, as an import, instead: see "Bringing in what an AI already knows" below.
31
+
32
+ ## Bringing in what an AI already knows
33
+
34
+ Setup ends by asking whether to bring in what an AI you already talk to knows about you. Say yes and it prints a prompt: paste that into ChatGPT, Claude, or whatever you use, and it writes out what it remembers or has guessed about you, in plain text. Bring the answer to your first session and your agent files it verbatim under `record/imports/YYYY-MM-DD-<source>.md`, with the source and date at the top. It is filed as what that AI said, never as your own words, and every line in it is a claim to check with you over time, not a fact.
31
35
 
32
36
  ## Circles and other people
33
37
 
package/create-evda.mjs CHANGED
@@ -28,7 +28,7 @@ import { doctor } from "./lib/doctor.mjs";
28
28
  import { readPointer, setPointer, pointerPath } from "./lib/locate.mjs";
29
29
  import { FOLDER_MANIFEST } from "./lib/folders.mjs";
30
30
  import { EvdaError } from "./lib/errors.mjs";
31
- import { PLATFORMS, PLATFORM_KEYS, LOADERS, CHAT_APPS, DICTATION, DEFAULT_AGENT_NAME, platformKey, fillOwnerSection, aiLine, interview, trainingSection } from "./lib/setup.mjs";
31
+ import { PLATFORMS, PLATFORM_KEYS, LOADERS, DESKTOP_FILESYSTEM, DICTATION, DEFAULT_AGENT_NAME, platformKey, fillOwnerSection, aiLine, interview, trainingSection } from "./lib/setup.mjs";
32
32
 
33
33
  const HERE = dirname(fileURLToPath(import.meta.url));
34
34
  const TEMPLATES = join(HERE, "templates");
@@ -243,7 +243,7 @@ export async function main(argv, io = null) {
243
243
  log(`Open it with ${agent}:`);
244
244
  for (const k of chosen) for (const line of PLATFORMS[k].open) log(` ${line}`);
245
245
  if (opts.platform && opts.platform !== "other") log(` ${PLATFORMS.other.open[0]}`);
246
- for (const line of CHAT_APPS) log(` ${line}`);
246
+ for (const line of DESKTOP_FILESYSTEM) log(` ${line}`);
247
247
  if (!opts.trainingOff) {
248
248
  log("");
249
249
  log(`Model training is not confirmed off yet, so ${agent} asks about it first. Where to turn it off:`);
package/lib/setup.mjs CHANGED
@@ -69,11 +69,19 @@ export function trainingSection() {
69
69
  }).join("\n");
70
70
  }
71
71
 
72
- // A chat app with project instructions cannot read or write the folder. It can still be used.
73
- export const CHAT_APPS = [
74
- "ChatGPT or Claude in the browser or app: make a Project, paste AGENTS.md into its instructions, and add your record files to it. Anything you write there stays in that app until you copy it into record/.",
72
+ // A chat app's project instructions field cannot read or write this folder: it holds text for
73
+ // that conversation only, and nothing persists to record/. Pasting AGENTS.md into a ChatGPT or
74
+ // Claude Project does not run an EVDA. The Claude desktop app is different once its Filesystem
75
+ // extension is pointed at this folder; it then reads AGENTS.md the way Claude Code does.
76
+ export const DESKTOP_FILESYSTEM = [
77
+ "Claude desktop app: Settings, then Extensions, install \"Filesystem\", add this folder, and it reads AGENTS.md too.",
75
78
  ];
76
79
 
80
+ // The prompt an owner pastes into a chat app (ChatGPT, Claude, or any AI they already talk to) to
81
+ // pull out what it knows or has guessed about them, so it can be brought into their EVDA once as
82
+ // an import. Plain text, nothing structured, because the answer is filed verbatim.
83
+ export const IMPORT_PROMPT = "Write out everything you remember or have inferred about me: facts, preferences, patterns, things I've told you directly, and things you've only guessed. Plain text, as much as you have, and do not summarize it down.";
84
+
77
85
  // The loaders: one line that imports AGENTS.md, for the tools that do not read it on their own.
78
86
  // Codex, Cursor, Copilot, Windsurf, Zed and the others on agents.md read AGENTS.md directly and
79
87
  // need nothing.
@@ -200,5 +208,15 @@ export async function interview(opts, io) {
200
208
  }
201
209
  out("");
202
210
  out(DICTATION);
211
+ out("");
212
+ const bring = (await ask("Bring in what your AI already knows about you? (yes/no) ")).toLowerCase();
213
+ if (bring === "yes" || bring === "y") {
214
+ out("");
215
+ out("Paste this into a new chat with ChatGPT, Claude, or whatever AI you already talk to:");
216
+ out("");
217
+ out(` ${IMPORT_PROMPT}`);
218
+ out("");
219
+ out(`Bring its answer to your first session with ${agent}. ${agent} files it as an import: what that AI said, not your own words, and a claim to check over time rather than a fact.`);
220
+ }
203
221
  return a;
204
222
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-evda",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Make your own EVÐA: a running journal of your life with Iris, as plain files on your machine, for any AI. No runtime dependencies.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -221,6 +221,10 @@ help with that too. There is almost always a way to live well in the situation t
221
221
  - **Their words stay their words.** Quote verbatim into `record/` for the day: every word, including filler like "ok so", hedges and typos intact.
222
222
  Never present your own summary as something they said, and never treat something you wrote earlier
223
223
  as evidence of what they think.
224
+ - **An import is what another AI said about them, not their own words.** When they paste in what
225
+ an AI they use elsewhere already knows or has guessed about them, file it verbatim under
226
+ `record/imports/YYYY-MM-DD-<source>.md`, source and date at the top. Never quote a line from it
227
+ back as something they said; treat each item as a claim to check with them over time, not a fact.
224
228
  - **Report filings in the past tense, naming the path.** Never "I'll file that"; do it, then say where.
225
229
  - **Keep what already exists current.** When something new surfaces about a person, project or place
226
230
  that already has an entry, add a dated section to it in the same session. Never overwrite. Record
@@ -49,6 +49,7 @@ Instruction-only digest of the generated block of AGENTS.md. Read AGENTS.md in f
49
49
  ## Keeping the record
50
50
  - Act first, in the same turn
51
51
  - Their words stay their words
52
+ - An import is what another AI said about them, not their own words
52
53
  - Report filings in the past tense, naming the path
53
54
  - Keep what already exists current
54
55
  - Never cite a date, quote or event that is not in the record