{"_id":"@djabolum/doppelganger","name":"@djabolum/doppelganger","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.2":{"name":"@djabolum/doppelganger","version":"0.1.2","description":"A local-first continuity toolkit for user-approved context, handoffs, receipts, and bounded offline contract validation.","license":"Apache-2.0","author":{"name":"Djabolum"},"repository":{"type":"git","url":"git+https://github.com/Djabolum/Doppelganger.git"},"homepage":"https://github.com/Djabolum/Doppelganger#readme","bugs":{"url":"https://github.com/Djabolum/Doppelganger/issues"},"keywords":["ai","cli","context","continuity","handoff","local-first","offline","receipts"],"type":"commonjs","bin":{"doppel":"dist/packages/cli/index.js"},"scripts":{"build":"tsc -p tsconfig.json","prepack":"npm run build","test":"npm run build && node --test tests","contract:doctor":"node scripts/quark-contract-doctor.js","export:quark-contract-fixture":"node scripts/export-quark-contract-fixture.js","dev":"ts-node packages/cli/index.ts","doppel":"node dist/packages/cli/index.js"},"devDependencies":{"@types/node":"^20.14.0","typescript":"^5.5.4"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"gitHead":"bff31151abb85d8c0e4bf8947ad16d012b771bc6","_id":"@djabolum/doppelganger@0.1.2","_nodeVersion":"20.20.1","_npmVersion":"11.16.0","dist":{"integrity":"sha512-n/nWFA26Q/TClEFG90XPwSf5o/jQPFYSY4kRvbg9ohB7Vdt00v0j8Rfwej1WfMCC32wruPumGOYbuORXo+aHRg==","shasum":"1ea1995c60ae5ccb891d9d4a41ee710c030950d3","tarball":"https://registry.npmjs.org/@djabolum/doppelganger/-/doppelganger-0.1.2.tgz","fileCount":70,"unpackedSize":249225,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCEnFPTPPQoRdGuAdxlQB5IyAxkmR/LbLGirQ7qX+hz7QIhAPfdirEa7H4zuhjGoPbVvIW8jm44Ya+ZAipDdVQ9Caf6"}]},"_npmUser":{"name":"djabolum","email":"nicolasguen1@gmail.com"},"directories":{},"maintainers":[{"name":"djabolum","email":"nicolasguen1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/doppelganger_0.1.2_1782107562577_0.7342065266408373"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T05:52:42.417Z","0.1.2":"2026-06-22T05:52:42.708Z","modified":"2026-06-22T05:52:42.924Z"},"maintainers":[{"name":"djabolum","email":"nicolasguen1@gmail.com"}],"description":"A local-first continuity toolkit for user-approved context, handoffs, receipts, and bounded offline contract validation.","homepage":"https://github.com/Djabolum/Doppelganger#readme","keywords":["ai","cli","context","continuity","handoff","local-first","offline","receipts"],"repository":{"type":"git","url":"git+https://github.com/Djabolum/Doppelganger.git"},"author":{"name":"Djabolum"},"bugs":{"url":"https://github.com/Djabolum/Doppelganger/issues"},"license":"Apache-2.0","readme":"# Doppelganger\n\nA local-first continuity toolkit for carrying user-approved AI context between assistants.\n\nDoppelganger is not a clone of you.  \nIt is a reflection of the intention you choose to convey.\n\nIt does not connect your AI accounts.  \nIt does not scrape conversations.  \nIt does not upload by default.  \nIt does not act on your behalf.\n\nIt prepares contexts, boundaries, and exchanges that you choose to share with an AI.\n\n## What it does\n\n- Create local context cards\n- Build scoped context packs\n- Prepare handoff cards between AI assistants\n- Write trust receipts\n- Import validated Markdown/Notion-like card drafts\n- Build bounded candidate 0.3 files for local verification\n- Inspect contract identity, hashes, size, and drift locally\n\n## What it does not do\n\n- It does not connect your AI accounts\n- It does not scrape conversations\n- It does not contain a network client or upload path\n- It does not configure an endpoint or credential\n- It does not perform a live Quark deposit\n- It does not create an autonomous agent\n- It does not treat memory as truth\n\n## Core invariants\n\n- Doppelganger ≠ user\n- Context ≠ identity\n- Memory ≠ authority\n- Handoff ≠ command\n- Host ≠ owner\n\nSee `docs/doctrine.md` for the full list of ten invariants.\n\n## Quickstart\n\n```bash\nnpm install --global @djabolum/doppelganger\n\ndoppel init\n\ndoppel card add memory \\\n  --label \"Response style\" \\\n  --content \"Answer in layers, avoid generic replies.\"\n\ndoppel card add boundary \\\n  --label \"No diagnosis\" \\\n  --content \"Do not turn my traces or emotions into a diagnosis.\"\n\n# `fossil` is the short CLI alias for the internal kind `fossil_trace`.\n# Fossil traces carry a short pattern label, never narrative `--content`.\ndoppel card add fossil \\\n  --label \"Trace de passage\"\n\n# Validate a Markdown card file you created or exported locally\ndoppel card import \\\n  --from markdown \\\n  --file ./cards.md \\\n  --dry-run\n\ndoppel context build --scope minimal --target claude\ndoppel context build --scope minimal --target chatgpt --format json\n\ndoppel status\ndoppel doctor\n\n# Remove a local card while keeping a revocation audit record\ndoppel card revoke --id <card_id>\n```\n\nFor repository development, use `npm install`, `npm run build`, and\n`node dist/packages/cli/index.js ...`.\n\nSee `examples/minimal/` for the manifest, cards, and context pack this\nproduces, `docs/field-cases.md` for realistic usage paths, and\n`docs/scopes.md` for what each scope includes.\n\n## Status — V1.1 frozen\n\n**Doppelganger V1.1 is frozen as a local-first continuity kit with validated\nMarkdown/Notion-like import.** See `docs/v1.1-freeze.md`.\n\nThe vault validates every object again when it is read, uses private\nfilesystem permissions (`0700` directories, `0600` files), records every\ncontext/handoff export, and exposes explicit local revocation commands.\n\nV1.1 adds field diagnostics, explicit Markdown/JSON exports, readable\nreceipt detail, receiving profiles for ChatGPT, Claude, Gemini, and generic\nassistants, and a strict local Markdown importer. Notion-like exports enter\nonly through Doppelganger validation; the boundary is documented in\n`docs/markdown-card-import.md`.\n\nCandidate 0.3 tooling is local verification only. The Contract Doctor,\nfixture exporter, and `doppel contract build-quark-candidate` command write\nor inspect local files; they do not contact Quark. `doppel quark deposit`\nremains an explicit refusal.\n\nNetwork construction and activation remain blocked by\n`docs/network-activation-preconditions-v0.md`.\n\nThe long-term layering is deliberate: writing surfaces write, Doppelganger\nbounds, and receiving hosts receive. Official Notion, browser, and MCP\ninterfaces remain V3 work, after the transport contract is stable.\n\nBecause this repository is public, documentation follows\n`docs/publication-policy.md`: public contracts and guarantees are documented;\nprivate deployment topology is not.\n\n## Contributing\n\nSee `CONTRIBUTING.md` before opening a PR — it lists what gets rejected\n(silent scraping, default uploads, authoritative memory, hidden\nagentivity) regardless of code quality.\n\n## Security\n\nSee `SECURITY.md` to report a vulnerability, and `docs/threat-model.md`\nfor what this project does and does not do by design.\n\n## Verification\n\n```bash\nnpm test\n```\n\nThe suite covers vault tampering, malformed JSON, scope isolation, mandatory\nreceipts, revocation, filesystem permissions, CLI flag validation, local\ncandidate construction, and contract drift.\n\n## License\n\nApache License 2.0 — see `LICENSE`.\n","readmeFilename":"README.md","_rev":"1-7905de8a4405732da725510bdf360c46"}