github analyzed d660639

parallelclaw/memex-mvp

github

Local-first MCP memory server. Indexes Claude Code/Cowork/Telegram chats; any MCP-compatible AI agent (Cursor, Cline, Continue) can search them.

maintainer
parallelclaw
license
MIT
first seen
2026-06-07
last seen
2026-06-15
releases · 30d
20
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 18 tools
transport stdio · http counts 18 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • memex_archive_conversation

    Hide a chat from default listings (data preserved)

  • memex_export_markdown

    Export one conversation as Markdown (for Obsidian round-trip)

  • memex_get_conversation

    Full transcript by conversation_id

  • memex_help

    Returns the full user guide with concrete use cases

  • memex_list_conversations

    Conversations sorted by activity, filterable by source

  • memex_list_projects

    Distinct project paths captured (for the project filter)

  • memex_list_sources

    Per-source enabled/disabled + counts

  • memex_overview

    Corpus snapshot — sources, counts, recent chats, daemon health

  • memex_recent

    Most recent messages across all sources

  • memex_search

    Full-text search with BM25 × recency boost

  • memex_sources_status

    Which sources are captured + the exact CLI to opt out

  • memex_status

    Daemon health: PID, last capture, watched files

  • memex_store_document

    Save a web page, AI chat share, or pasted text. Agent fetches; memex stores verbatim. Teaches the Jina r.jina.ai trick for Cloudflare-blocked pages

  • memex_telegram_check

    v0.10+: Detect Telegram Desktop, login age (24h block), pending count, suggested next step

  • memex_telegram_import

    v0.10+: Import selected exports into memex.db (by index or title) — auto-allowlists

  • memex_telegram_mode

    v0.10+: Get/set capture mode: pick (default) · auto · manual

  • memex_telegram_pending

    v0.10+: List exports staged for review with chat name + msg count + dates

  • memex_telegram_skip

    v0.10+: Mark chats as "never index" — applies to future re-exports too

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit d660639 · analyzer v18 · 1h ago

skills & prompt files 2

danger signals1

code evidence vmemex-hermes-v0.2.2 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 32

  • fs parallelclaw-memex-mvp-d660639/bot/config.js :11 import { existsSync, readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/bot/inbox.js :27 import { mkdirSync, writeFileSync, renameSync, unlinkSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/bot/index.js :33 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/bot/poll.js :15 import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync, unlinkSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/bot/search.js :12 import { existsSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/ingest.js :39 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/cli/index.js :29 import { existsSync, readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/config.js :25 import { readFileSync, writeFileSync, existsSync, mkdirSync, renameSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/db-init.js :24 import { mkdirSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/hook/install.js :33 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/import-telegram.js :21 import { readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/ingest-file.js :22 import { existsSync, readFileSync, statSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/notify-click-action.js :24 import { existsSync, accessSync, constants } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/openclaw-channel.js :54 import { readFileSync, existsSync, openSync, readSync, closeSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/parse-cursor.js :29 import { existsSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/parse-obsidian.js :21 import { readFileSync, statSync, readdirSync, existsSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/parse-telegram-html.js :43 import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/sync/cert.js :22 import { readFileSync, writeFileSync, existsSync, chmodSync, mkdirSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/sync/server.js :22 import { existsSync, readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/sync/service.js :24 import { writeFileSync, readFileSync, mkdirSync, existsSync, unlinkSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/telegram-decisions.js :16 import { existsSync, readFileSync, writeFileSync, renameSync, mkdirSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/telegram-discovery.js :14 import { existsSync, readdirSync, statSync, readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/telegram-notify.js :37 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/telegram-pending.js :28 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/web/index.js :27 import { readFileSync, existsSync, statSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/web/routes/pending.js :11 import { readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/lib/web/routes/settings.js :9 import { existsSync, statSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/bin/setup-impl.js :25 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/index.js :23 import { appendFileSync, readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/lib/backfill.js :42 } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/lib/store.js :18 import { mkdirSync, readFileSync } from 'node:fs';
  • fs parallelclaw-memex-mvp-d660639/server.js :24 import { mkdirSync, readFileSync, renameSync, existsSync, statSync } from 'node:fs';

shell / exec 11

  • shell parallelclaw-memex-mvp-d660639/bot/index.js :34 import { execSync, spawn } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/ingest.js :41 import { execSync, spawn } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/lib/hook/install.js :34 import { execSync } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/lib/notify-click-action.js :27 import { spawn } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/lib/sync/cli.js :581 const { spawnSync } = await import('node:child_process');
  • shell parallelclaw-memex-mvp-d660639/lib/sync/service.js :25 import { execSync } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/lib/telegram-notify.js :41 import { spawn } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/lib/web/index.js :31 import { spawn, execSync } from 'node:child_process';
  • shell parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/bin/setup-impl.js :4 * install`. The scanner forbids `child_process` in lib/ — that's the
  • shell parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/index.js :306 // NO child_process here — only pure lib/backfill.js, which
  • shell parallelclaw-memex-mvp-d660639/server.js :26 import { execSync } from 'node:child_process';

network 7

  • net parallelclaw-memex-mvp-d660639/bot/nexara.js :40 const resp = await fetch(ENDPOINT, {
  • net parallelclaw-memex-mvp-d660639/bot/telegram.js :24 const resp = await fetch(`${this.api}/${method}`, {
  • net parallelclaw-memex-mvp-d660639/lib/sync/cli.js :879 const res = await fetch(url, { signal: ctrl.signal });
  • net parallelclaw-memex-mvp-d660639/lib/sync/client.js :12 import { request as httpsRequest } from 'node:https';
  • net parallelclaw-memex-mvp-d660639/lib/sync/server.js :21 import { createServer } from 'node:https';
  • net parallelclaw-memex-mvp-d660639/lib/web/index.js :26 import { createServer } from 'node:http';
  • net parallelclaw-memex-mvp-d660639/server.js :3151 'For URLs you can\'t fetch (Cloudflare-blocked), retry through https://r.jina.ai/<original-url>.',

database 11

  • db parallelclaw-memex-mvp-d660639/bot/search.js :11 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/ingest.js :33 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/cli/index.js :26 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/db-init.js :26 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/parse-cursor.js :26 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/sync/replicate.js :22 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/sync/server.js :25 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/tasks.js :28 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/web/index.js :32 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/lib/web/routes/pending.js :14 import Database from 'better-sqlite3';
  • db parallelclaw-memex-mvp-d660639/server.js :20 import Database from 'better-sqlite3';

tool registrations 1

  • memex_search parallelclaw-memex-mvp-d660639/plugins/memex-openclaw/lib/tools.js :11

declared dependencies 4

  • @modelcontextprotocol/sdk@^1.0.0
  • better-sqlite3@^11.0.0
  • chokidar@^3.6.0
  • selfsigned@^5.5.0