@kinedb/kdmem (0.1.4)
Installation
@kinedb:registry=https://git.kinedb.com/api/packages/kinedb/npm/npm install @kinedb/kdmem@0.1.4"@kinedb/kdmem": "0.1.4"About this package
kdmem: the shared live memory of a team
One central kinedb server (kdmem.kinedb.com) holds the shared state. A daemon on each machine
publishes the state of its Claude sessions. A web page shows all machines and branches.
Install
kdmem is published on the kinedb package registry, never on npmjs:
https://git.kinedb.com/api/packages/kinedb/npm/ (browse: https://git.kinedb.com/kinedb/-/packages).
Reading it needs no login. Pick ONE of the two ways.
Way 1: add the registry once, then use the short command.
# ~/.npmrc (or the same in ~/.bunfig.toml: [install.scopes] kinedb = "https://git.kinedb.com/api/packages/kinedb/npm/")
@kinedb:registry=https://git.kinedb.com/api/packages/kinedb/npm/
bunx @kinedb/kdmem
Way 2: no setup, one long command. bunx has no registry flag, but it takes a package
file by its address. Use the address of the version that you want:
bunx --package https://git.kinedb.com/api/packages/kinedb/npm/<the .tgz path of the version> kdmem
The release page names the exact command for the latest version. kdmem --help prints both
ways, so a person who types kdmem --help sees the same text as this section.
Status: @kinedb/kdmem is published (0.1.4). Way 2 is checked: it installs and starts the daemon on
Linux, macOS and Windows. NOT YET checked: Way 1 (the scope line).
What starts the daemon
No operating system service starts it. The install command starts it once. After a restart, the
first Claude session that starts runs the mod hook: it reads the heartbeat file of the daemon
(~/.config/kdmem/heartbeat.json). A live daemon gives no command at all. A stale heartbeat (2
minutes) makes the hook run <daemon file> --ensure once, and that call starts the daemon
detached. One start in a minute at most. The daemon replaces its own code from the signed database.
The daemon does not poll for it: a WATCH on the table kd_assets wakes it when a skill or the code
changes (a safety pull every 5 minutes stays; without a working watch it pulls every 30 seconds).
This folder is NOT copied into a project by setup.ts. It is the product, and it lives here
so that the kinedb repository stays free of it.
| Path | What it is |
|---|---|
daemon/ |
The publisher (agents-publish.ts), the device key and login (setup.ts, device.ts), the signed delivery of skills and code (assets-*.ts, release-sign.ts, code-update.ts), the company admin (company-*.ts). bun test kdmem/daemon/ runs its tests. |
mod/ |
The kdmem-usage mod. claude plugin test kdmem/mod runs its tests. |
.claude-plugin/marketplace.json |
The marketplace that offers the mod. |
skills/ |
The skills that the database delivers to every machine (/fleet-setup). Publish with bun daemon/assets-cli.ts <env-file> publish kdmem skills/fleet-setup. |
site/ |
The fleet page and the admin page. sh deploy-site.sh deploys them. |
deploy-*.sh, provision-server.sh, Caddyfile |
The server side. |
q*.ts, q*.sh |
Probes and end-to-end checks from the design phase. |
DESIGN.md |
The design. |
The daemon and the skills of a machine come from the database, signed with an ed25519 release
key. They never come from a git pull. The private key stays on the owner machine
(~/.config/kdmem/release.key.pem).