agentic-os
Build persistent multi-agent systems without external databases, using file-based memory and scheduled tasks.
AFaffaan-m/ECC299k5,106 new stars in the last 7 days
Set up, check, or restore local claude-mem database snapshots. Use when the user says "set up backups", "back up my memories", "backup status", or "restore my database".
The installed worker snapshots ~/.claude-mem/claude-mem.db on a schedule
(VACUUM INTO, consistent while sessions run) and keeps the newest N under
~/.claude-mem/backups/auto/. Each snapshot is one standalone SQLite file.
Snapshots stay on this machine.
Preserve every unrelated setting and keep ~/.claude-mem/settings.json mode
0600. Never print the file's contents: it holds credentials.
Based on $ARGUMENTS:
setup or empty: 1. Check status, then 2. Enable snapshotsrestore: 3. Restorestatus: 1. Check status onlynpx claude-mem backup status
npx claude-mem start and retry.npx claude-mem update brings them once a release
includes them. Do not write the settings in step 2, and never say backups
are on.Ask (or default): interval in hours (default 24, range 1 to 168) and how many snapshots to keep (default 7, range 1 to 100). Then write the settings without echoing anything else in the file:
node - <<'EOF'
const fs = require('fs'), os = require('os'), path = require('path');
const intervalHours = 'PASTE_INTERVAL_HOURS_HERE'; // e.g. '24'
const retainCount = 'PASTE_RETAIN_COUNT_HERE'; // e.g. '7'
const dir = path.join(os.homedir(), '.claude-mem');
const file = path.join(dir, 'settings.json');
fs.mkdirSync(dir, { recursive: true });
const settings = fs.existsSync(file) ? JSON.parse(fs.readFileSync(file, 'utf8')) : {};
const target = settings.env && typeof settings.env === 'object' ? settings.env : settings;
target.CLAUDE_MEM_BACKUP_ENABLED = 'true';
target.CLAUDE_MEM_BACKUP_INTERVAL_HOURS = intervalHours;
target.CLAUDE_MEM_BACKUP_RETAIN_COUNT = retainCount;
fs.writeFileSync(file, JSON.stringify(settings, null, 2) + '\n', { mode: 0o600 });
fs.chmodSync(file, 0o600);
console.log('backups enabled: every ' + intervalHours + 'h, keeping ' + retainCount);
EOF
Restart the worker so the schedule starts, then confirm with step 1. Tell the user backups are on only when that status reports them enabled:
npx claude-mem restart
npx claude-mem backup status
The first automatic snapshot lands about five minutes after the worker starts. To take one now:
npx claude-mem backup run
npx claude-mem backup list
npx claude-mem restore <file>
npx claude-mem backup status
restore stages the snapshot and restarts the worker (it also starts a
worker that is not running). The new worker swaps the database in before it
opens it, saves the database it replaced in the same folder as
claude-mem-<timestamp>-pre-restore.db (restore that file to undo; it counts
toward the retain count), and records the outcome. With cloud sync on, the
restored database resumes syncing from the snapshot's position and can pull
back changes that reached the cloud after it. backup status then prints a "Last restore" line: on success it
names the saved copy; on failure it gives the reason, and the worker kept
the database it had.
Report the snapshot count, the last snapshot time, any error, and the last restore outcome if there was one.
Build persistent multi-agent systems without external databases, using file-based memory and scheduled tasks.
AFaffaan-m/ECC299k5,106 new stars in the last 7 days
GAgarrytan/gstack141k2,189 new stars in the last 7 days
ADaddyosmani/agent-skills114k1,640 new stars in the last 7 days
NEnexu-io/open-design107k1,289 new stars in the last 7 days
NEnexu-io/open-design107k1,289 new stars in the last 7 days
PBpbakaus/impeccable106k7,221 new stars in the last 7 days