{"_id":"@bleed00/dsh-anywhere-claude-mem","name":"@bleed00/dsh-anywhere-claude-mem","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bleed00/dsh-anywhere-claude-mem","version":"0.1.0","description":"A DeepSeek Harness plugin that turns the anywhere-claude-mem git sync into a DSH peer: pull cross-machine memory at session start and push new prompts/observations as they land in the claude-mem worker","keywords":["dsh-plugin","anywhere-claude-mem","claude-mem","memory","sync","deepseek-harness"],"license":"MIT","author":{"name":"Bleed00"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Bleed00/Anywhere-claude-mem.git"},"bugs":{"url":"https://github.com/Bleed00/Anywhere-claude-mem/issues"},"homepage":"https://github.com/Bleed00/Anywhere-claude-mem#readme","engines":{"node":">=20.12.0"},"type":"module","main":"lib/index.js","types":"lib/types/index.d.ts","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"scripts":{"prepare":"tsc -p tsconfig.json && tsdown","build":"npm run prepare","test":"vitest run"},"peerDependencies":{"@deepseek-ai/cordis":">=4.0.0","@deepseek-ai/dsh-agent":">=0.1.0-rc.6","@deepseek-ai/dsh-skill":">=0.0.1-rc.1","@deepseek-ai/dsh-tools":">=0.0.1-rc.1","@deepseek-ai/schemastery":">=3.18.0"},"devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.1.0-rc.6","@deepseek-ai/dsh-skill":"^0.0.1-rc.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1","@types/node":"^26.2.0","tsdown":"^0.22.0","typescript":"^6.0.0","vitest":"^4.1.0"},"gitHead":"066bdd67c0e3338dfcbad54f4a568d54d20e3f6a","_id":"@bleed00/dsh-anywhere-claude-mem@0.1.0","_nodeVersion":"24.15.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-EhL0et0w0j/ulWo30KkCiP/rxbZO/WRVJN52NaCBsVZcSugVLYnkO1IBKNKZVSbnTMXFEkAdXb2DWkk4ln/Nfw==","shasum":"74d39146c198e1a4d0aabbb7f13eaf97bd8790da","tarball":"https://registry.npmjs.org/@bleed00/dsh-anywhere-claude-mem/-/dsh-anywhere-claude-mem-0.1.0.tgz","fileCount":8,"unpackedSize":25953,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDZhJ1Y9SGZWpyiO//xCkijwgC6D9wkzV/wH+wrL0UP2gIgOS14L37v8o3fGYIekvh+3Rr4Ktl+XTNvGykI19VCxMI="}]},"_npmUser":{"name":"bleed00","email":"l15052004@gmail.com"},"directories":{},"maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-anywhere-claude-mem_0.1.0_1786708944720_0.4518996646764155"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-14T12:02:23.480Z","0.1.0":"2026-08-14T12:02:24.850Z","modified":"2026-08-14T12:02:26.256Z"},"maintainers":[{"name":"bleed00","email":"l15052004@gmail.com"}],"description":"A DeepSeek Harness plugin that turns the anywhere-claude-mem git sync into a DSH peer: pull cross-machine memory at session start and push new prompts/observations as they land in the claude-mem worker","homepage":"https://github.com/Bleed00/Anywhere-claude-mem#readme","keywords":["dsh-plugin","anywhere-claude-mem","claude-mem","memory","sync","deepseek-harness"],"repository":{"type":"git","url":"git+https://github.com/Bleed00/Anywhere-claude-mem.git"},"author":{"name":"Bleed00"},"bugs":{"url":"https://github.com/Bleed00/Anywhere-claude-mem/issues"},"license":"MIT","readme":"# dsh-anywhere-claude-mem\n\nA [DeepSeek Harness](https://github.com/deepseek-ai) plugin that makes DSH a full\npeer in the **anywhere-claude-mem** cross-machine sync of your `claude-mem` memory.\n\n[![npm](https://img.shields.io/npm/v/@bleed00/dsh-anywhere-claude-mem?label=npm&logo=npm)](https://www.npmjs.com/package/@bleed00/dsh-anywhere-claude-mem)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Node.js](https://img.shields.io/badge/Node.js-%E2%89%A520.12-339933?logo=node.js&logoColor=white)](https://nodejs.org/)\n[![dsh-plugin](https://img.shields.io/badge/topic-dsh--plugin-555555)](https://github.com/topics/dsh-plugin)\n\nWhen a DeepSeek Harness session starts, this plugin pulls the data repository\ninto the local claude-mem worker — the same `anywhere-claude-mem startup-pull` that the\nOpenCode startup plugin runs. During the session it also watches the prompt /\ntool \"put\" events and, after a debounce, pushes new memory back to git. DeepSeek\nHarness thus becomes a first-class participant in the bidirectional anywhere-claude-mem\nsync, so the memory DSH produces is available on every other machine — and the\nmemory other machines produced is already there when DSH starts.\n\n> The git sync itself is entirely delegated to the `anywhere-claude-mem` Python command.\n> This plugin never touches the claude-mem worker API or its SQLite database; it\n> only shells out to the `anywhere-claude-mem` CLI.\n\n## Why the plugin and the watcher coexist safely\n\nThe automatic watcher (`anywhere-claude-mem watch`) already polls the claude-mem database\nand pushes once a configured number of new observations lands. That detection is\nbased on **claude-mem's own rows, independent of which coding tool wrote them** —\nOpenCode, Claude Code, or DeepSeek Harness all feed the same worker. So the\nwatcher alone would eventually push DSH memory too.\n\n`dsh-anywhere-claude-mem` makes DSH push **promptly** on the actual \"put\" instead of waiting\nfor the next poll tick. The two can run at the same time without conflict\nbecause `anywhere-claude-mem push` is idempotent (a push with nothing new creates no\ncommit) and serially locked by anywhere-claude-mem's `SyncLock`; a push this plugin fires\nand a push the watcher fires simply serialize, and the duplicate is a no-op.\n\n## Install\n\nOne-liner from the project checkout (or any profile):\n\n```sh\nnpx -y @deepseek-ai/dsh plugin --profile <profile> add github:Bleed00/Anywhere-claude-mem/dsh-plugin\n```\n\nOr install the `anywhere-claude-mem` Python package and use its installer, which offers a\n**deepseek** setup alongside **opencode** and writes this bundle into your DSH\nprofile for you:\n\n```sh\npip install -e .\nanywhere-claude-mem install      # choose \"deepseek\" at the platform prompt\n```\n\n## Requirements\n\n- A [DeepSeek Harness](https://github.com/deepseek-ai) installation with `dsh`\n  on `PATH` and a profile to patch.\n- The npm package `@bleed00/dsh-anywhere-claude-mem` (or this checkout) available to pnpm.\n- `anywhere-claude-mem` installed (Python package) and configured (`anywhere-claude-mem install`).\n- The claude-mem worker running (`http://127.0.0.1:37700`).\n\n## Config\n\n| Field | Default | Description |\n|---|---|---|\n| `command` | resolved on PATH, then `~/.local/bin/anywhere-claude-mem` | The `anywhere-claude-mem` executable. |\n| `pullOnSessionStart` | `true` | Run `anywhere-claude-mem startup-pull` when a DSH session starts. |\n| `pushOnPut` | `true` | Push new memory back to git on \"put\" events. |\n| `pushDebounceMs` | `10000` | Coalescing window (ms) for push-on-put. |\n| `pushOnEvents` | `[\"prompt\",\"tool\"]` | Which \"put\" events count: `prompt`, `tool`, or both. |\n\nOverride any of them in your profile's `cordis.patch.yml`:\n\n```yaml\n- id: anywhere-claude-mem\n  config:\n    command: /home/me/.local/bin/anywhere-claude-mem\n    pushDebounceMs: 15000\n    pushOnEvents:\n      - prompt\n```\n\n## How it works\n\n- `agent/session-start` → `anywhere-claude-mem startup-pull` (fire-and-forget).\n- `agent/pre-step` (a prompt was submitted) and `tools/post-execute` (a tool\n  finished) are the \"put\" moments. Each arms a debouncer; once `pushDebounceMs`\n  passes with no new event it runs `anywhere-claude-mem push`, again fire-and-forget so a\n  sync never blocks a turn.\n\n## Development\n\n```sh\npnpm install --config.auto-install-peers=false\npnpm run build   # tsc + tsdown → lib/index.js\npnpm test\n```\n\nThe package targets Node ≥ 20.12, TypeScript 6.0, and is authored against the\n`@deepseek-ai/*` framework packages (cordis, schemastery, dsh-agent, dsh-tools,\ndsh-skill). Because the peer packages are supplied by the host dsh installation,\ninstall with `--config.auto-install-peers=false`.\n\n## License\n\nMIT — see [LICENSE](../../LICENSE) © Bleed00\n","readmeFilename":"README.md","_rev":"1-d1e1b774f21379966f736bae37410610"}