{"id":51130678,"url":"https://github.com/mdgrey33/memnyx","last_synced_at":"2026-06-25T12:01:05.601Z","repository":{"id":355090940,"uuid":"1164870090","full_name":"MDGrey33/memnyx","owner":"MDGrey33","description":"Memnyx — persistent layered memory, session lifecycle, and a self-improvement loop that gives Claude Code a spine. Formerly claude_boilerplate. Apache-2.0.","archived":false,"fork":false,"pushed_at":"2026-06-22T17:36:27.000Z","size":608,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-22T18:16:45.192Z","etag":null,"topics":["agent-memory","ai-memory","claude-code","developer-tools","llm-memory","memnyx"],"latest_commit_sha":null,"homepage":"https://memnyx.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MDGrey33.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-23T15:19:33.000Z","updated_at":"2026-06-22T17:16:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MDGrey33/memnyx","commit_stats":null,"previous_names":["mdgrey33/claude_boilerplate","mdgrey33/memnyx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MDGrey33/memnyx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDGrey33%2Fmemnyx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDGrey33%2Fmemnyx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDGrey33%2Fmemnyx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDGrey33%2Fmemnyx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MDGrey33","download_url":"https://codeload.github.com/MDGrey33/memnyx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MDGrey33%2Fmemnyx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34773843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-25T02:00:05.521Z","response_time":101,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-memory","ai-memory","claude-code","developer-tools","llm-memory","memnyx"],"created_at":"2026-06-25T12:01:04.420Z","updated_at":"2026-06-25T12:01:05.594Z","avatar_url":"https://github.com/MDGrey33.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memnyx\n\n*Persistent memory and a spine for Claude Code — formerly Claude Code Boilerplate.*\n\nPersistent memory and session management for Claude Code, with a pluggable semantic-memory backend.\n\n## What This Does\n\n- **Layered memory**: Markdown files for fast, deterministic access + an optional semantic backend ([cognee](https://github.com/topoteretes/cognee) knowledge graphs or a [Wikibase](https://wikiba.se/) provenance graph) for semantic retrieval — pick one via `/setup-cognee` or `/setup-wikibase` (see `.claude/docs/memory-systems.md`)\n- **Session management**: `/hello` loads context at start, `/bye` persists it at end\n- **Lessons learned**: Captures mistakes, conventions, and patterns during session wrap-up\n- **Skills lifecycle**: `/skills-manager` adds, updates, removes, and reviews skills based on lessons or requests\n- **MCP health monitoring**: `/mcp-doctor` checks connectivity\n- **Memnyx contributions**: `/contribute` generalizes project lessons; `/pull-contributions` integrates them back into Memnyx\n\n## Quick Start\n\n```bash\ngit clone https://github.com/MDGrey33/memnyx.git ~/src/memnyx\ncd ~/src/memnyx\nclaude\n# in the session: /setup-workspace init --workspace ~/workspace\n# exit, then start all future sessions from ~/workspace\n```\n\n1. **Clone** to a path outside your workspace (sibling layout — see Skills Reference)\n2. **Init** — `/setup-workspace init --workspace \u003cpath\u003e` deploys skills, generates `CLAUDE.md`, bootstraps identity\n3. **Add projects** — `/setup-workspace add-project \u003cslug\u003e` from the workspace root\n4. **Start working** — `/hello` to begin each session, `/bye` to end\n5. **Semantic memory (optional)** — `/setup-cognee` or `/setup-wikibase` for semantic retrieval, after the workspace is verified end-to-end. See `.claude/docs/memory-systems.md` to choose a backend.\n\n## Requirements\n\n- [Claude Code](https://claude.ai/code) CLI\n\nSemantic memory (optional): markdown memory works with no extra setup. For semantic retrieval, pick one backend — `/setup-cognee` (knowledge graph; detects your environment and installs Python, uv, Docker, and PostgreSQL as needed; supports OpenAI, Anthropic, and Ollama as the LLM backend) or `/setup-wikibase` (Wikidata-style graph with claim-level provenance). See `.claude/docs/memory-systems.md` for the trade-offs.\n\n## Skills Reference\n\n\n| Skill | Trigger | Purpose |\n|-------|---------|---------|\n| `/setup-workspace` | Manual | (v2) Workspace lifecycle: `init` (first-time setup, deploys skills/agents/docs, generates `CLAUDE.md`), `add-project \u003cslug\u003e [description]` (scaffolds a project under `\u003cworkspace\u003e/projects/\u003cslug\u003e/`, registers it — includes `CLAUDE.md`, memory files, and `docs/architecture.md` + `docs/conventions.md`), `sync` (re-copies skills/agents from source clone, flags conflicts before overwrite). |\n| `/project-registry` | Auto (via `/setup-workspace`) or manual | (v2) Manage the workspace project registry — `add` / `remove` / `update` / `list`. Single mutation point; other skills read the index file directly. |\n| `/hello` | Manual | Start a new session — load context, check MCP health, recap last session |\n| `/bye` | Manual | End the session — summarize work, capture lessons, persist memory |\n| `/lessons` | Auto (via `/bye`) or manual | Capture lessons (default) OR `scan` recent session files / `scan --deep` raw JSONL for skill-change proposals |\n| `/skills-manager` | Auto (via `/lessons`) or manual | Manage skills — add, update, remove, and review |\n| `/mcp-doctor` | Auto (via `/hello`, `/setup-cognee`) or manual | Health check configured MCP servers — session mode by default; `--deep` for process-level diagnosis |\n| `/collect-my-activity` | Manual | Collect user's daily activity from Slack, Jira, Confluence, GitHub, Drive |\n| `/collect-team-activity` | Manual | Collect a team member's daily activity (leadership roles) |\n| `/one-on-one-prep` | Manual | Synthesize a member's activity into 1:1 meeting prep |\n| `/log` | Auto (via skills) | Append structured entry to agent log |\n| `/contribute` | Manual | Generalize a lesson and stage it in `\u003cworkspace\u003e/contributions/` |\n| `/pull-contributions` | Manual (from Memnyx repo) | Pull staged contributions from a project into Memnyx |\n| `/setup-cognee` | Manual | Install and configure cognee-mcp on this machine (semantic-memory backend option) |\n| `/setup-wikibase` | Manual | Install and configure a local Wikibase Suite — a Wikidata-style knowledge graph with claim-level provenance (alternative semantic-memory backend to cognee). See `.claude/docs/memory-systems.md`. |\n| `/sanitizer` | Auto (via `/contribute`, `/pull-contributions`) or manual | Scrub files for secrets, PII, private context, tone risks before publish. `--check` mode for CI gates. |\n| `/finance-controller` | Manual (weekly sweep) | Audit CLAUDE.md, skills, MCPs for cost and context efficiency. Reports + delegates; never edits directly. |\n| `/claude-expert` | Manual | Reference for Claude Code surfaces (skills vs hooks vs subagents vs MCPs vs memory vs settings). Answers \"where should this live\" and routes to the doer skill. |\n| `/scribe` | Manual | Generate or maintain a project's Claude-facing docs (`CLAUDE.md`, `.claude/docs/*`, project-context, README) from verified facts. `--deep` adds per-subsystem `scribe-explorer` exploration plus an independent `scribe-verifier` pass; unconfirmed claims go to a hazards artifact. Packaged as a skills-directory plugin (`scribe@skills-dir`), bundling its two agents. |\n| `/setup-auto-memory` | Manual | Wire in the optional auto-memory system (typed atomic files in `~/.claude/projects/\u003cslug\u003e/memory/`). See `auto-memory/README.md`. |\n| `/setup-playwright-mcp` | Manual | Install and configure Playwright MCP for browser automation |\n| `/research` | Manual | Unified research with three depth modes — `--shallow` (single-pass parallel web search via the `research-expert` agent), `--standard` (decompose → parallel subagents → synthesize → cite-check), `--deep` (9-stage pipeline: breadth, depth, gap-fill, contradiction detection, theory, fact-check, tiered output). Replaces the former `deep-research-orchestrator`. |\n| `/setup-voice` | Manual | Install a local, offline neural voice interface (macOS Apple Silicon) — mlx-whisper (STT) + Kokoro TTS wired into `voice-claude` / `vtranscribe` CLI scripts. No cloud APIs. |\n| `/say-it` | Manual | Speak content aloud via Kokoro neural TTS (local, offline) |\n| `/linkedin-pitch-deflector` | Manual | Sweep unread LinkedIn DMs — deflect cold sales pitches, socially probe ambiguous openers, hand genuine threads back to you. Drives logged-in Chrome via the chrome-control MCP. |\n| `/google-script-deploy` | Called by other skills, or manual | Deploy an HTML file as a Google Apps Script web app with a stable URL — handles clasp install, auth, project creation, and in-place redeploys. Per-directory config in `clasp-projects.json`; no global state. |\n| `/security-snapshot` | Manual (monthly or on demand) | Full security pipeline — AWS Inspector V2 + GitHub security alerts → cross-source correlation → self-contained HTML dashboard with trend history. Org/profile/region configured per-workspace in `scripts/config.local.json` (gitignored; overlays the committed template; first run prompts). Dated snapshots for delta tracking. |\n\n### Skill Chains\n\n```text\n/hello ──\u003e /mcp-doctor (session mode)\n/bye ──\u003e /lessons ──\u003e /skills-manager\n/setup-cognee ──\u003e /mcp-doctor\n/setup-playwright-mcp ──\u003e /mcp-doctor\n/contribute ──\u003e /sanitizer (blocks staging on any finding)\n/pull-contributions ──\u003e /sanitizer --check (blocks pull on any finding)\n/scribe ──\u003e /sanitizer (blocks on findings in generated docs)\n/sanitizer (manual, on any file/dir/glob)\n```\n\nEach skill works independently too. Use `/lessons \"always use type hints\"` or `/mcp-doctor` anytime.\n\n## Agents\n\nSpecialist subagents in `.claude/agents/` (deployed + synced like skills):\n\n| Agent | Purpose |\n|-------|---------|\n| `research-expert` | Parallel web-research specialist behind `/research` — gathers corroborated evidence from multiple independent sources and writes a self-contained report to keep the caller's context window small. |\n| `memnyx-guardian` | Read-only guardian of Memnyx's spirit. Reviews open PRs (full code review + philosophy alignment + skill-table parity) and returns a clear, reasoned merge recommendation with staged review comments — it never posts or merges; a human approves. Run on request or on a recurring schedule. |\n\n## Contributing Back to Memnyx\n\nLessons learned in individual projects can flow back to improve the shared Memnyx framework — without leaking project-specific details.\n\n### Flow\n\n```text\nProject A                          Memnyx repo\n─────────                          ───────────\n/lessons \"discovery\"\n  → .claude/memory/lessons-learned.md\n/contribute\n  → generalizes lesson\n  → strips project details\n  → writes to \u003cworkspace\u003e/contributions/\n                                   /pull-contributions \u003cworkspace\u003e/contributions/\n                                     → reads contributions\n                                     → flags any leaked details\n                                     → applies with user approval\n                                     → marks as integrated\n```\n\n### How it works\n\n1. **In your project**: Run `/contribute` (or `/contribute \"the lesson\"`) to generalize a lesson. Claude strips project names, paths, and domain terms, then writes a contribution file to `\u003cworkspace\u003e/contributions/`.\n\n2. **In the Memnyx repo**: Run `/pull-contributions /path/to/your/project` to review and integrate. Each contribution is shown individually for approval. No changes are made without explicit confirmation.\n\n3. **Privacy by design**: The `/contribute` skill rewrites lessons to be project-agnostic before saving. The `/pull-contributions` skill flags any remaining project-specific details. Project-specific knowledge never leaves the project automatically.\n\n## Memory Architecture\n\nThree scopes keep knowledge organised by ownership:\n\n| Scope | Location | Purpose |\n|-------|----------|---------|\n| Personal | `\u003cworkspace\u003e/me/` | Identity, team roster, brag log, growth notes |\n| Project | `\u003cproject\u003e/.claude/memory/` + project root | Process knowledge, domain context, working state |\n| Contributions | `\u003cworkspace\u003e/contributions/` | Generalised lessons staged for Memnyx |\n\n### Personal workspace (`\u003cworkspace\u003e/me/`)\n\nBootstrapped by `/setup-workspace init`, built up organically by `/bye`. Not in any git repo — personal to the engineer. `\u003cworkspace\u003e` is wherever the user installed Memnyx (e.g., `~/workspace/`).\n\n```text\n\u003cworkspace\u003e/me/\n├── identity.md          # Role, domains, skills, timezone, platform IDs\n├── team.md              # Direct reports and their platform IDs (leadership roles)\n├── brag-log.md          # Accomplishments across all projects (append-only)\n└── growth.md            # Improvement areas, self-assessment notes\n```\n\n### Project layout\n\nWorking state and skill outputs sit at the **project root** (gitignored). Committed knowledge lives under `.claude/`.\n\n```text\n\u003cproject root\u003e/\n├── workstreams/           # Per-topic working context (gitignored)\n├── sessions/active/       # Active session markers (gitignored)\n├── sessions/              # Closed session narratives (gitignored)\n├── collected/             # Raw collection outputs from skills (gitignored)\n├── artifacts/             # Synthesised skill outputs (gitignored)\n└── contributions/         # Staged Memnyx contributions (gitignored)\n\n.claude/\n├── memory/\n│   ├── MEMORY.md              # Stable patterns, key decisions (always loaded)\n│   ├── lessons-learned.md     # Raw lessons inbox (always loaded)\n│   └── project-context.md     # Domain knowledge (always loaded)\n├── docs/\n│   ├── architecture.md        # Project architecture (on-demand)\n│   └── conventions.md         # Code style and patterns (on-demand)\n└── settings.json\n```\n\n**Markdown** is the primary store — always available, fast, deterministic.\n**The semantic backend** (cognee or Wikibase, whichever you set up) is the optional enrichment layer — semantic search across accumulated knowledge. Skills degrade gracefully if none is configured. See `.claude/docs/memory-systems.md` to choose.\n\n### How memory loads\n\nClaude Code reads memory in two passes at session start:\n\n1. **CLAUDE.md ancestor walk.** Every `CLAUDE.md` from cwd up to the filesystem root is loaded in full. `@\u003cpath\u003e` imports inside any of those files expand recursively (up to 5 hops).\n\n2. **Auto-memory.** The harness's own MEMORY.md at `~/.claude/projects/\u003cslug\u003e/memory/MEMORY.md` is loaded as text (first 200 lines or 25 KB, whichever is smaller). Topic files referenced inside it are NOT auto-loaded — Claude reads them on demand when relevant. See [Anthropic's memory docs](https://code.claude.com/docs/en/memory) for the full mechanism.\n\nWorkspace and project memory follow the same pattern as the harness: the workspace `CLAUDE.md` `@`-includes `\u003cworkspace\u003e/.claude/memory/MEMORY.md`; each project's `CLAUDE.md` does the same at project scope. The index loads at session start; topic files referenced inside (`feedback_*.md`, `convention_*.md`, etc.) are read on demand. Engineers entering a project repo directly — without setting up the workspace — still get the project's curated memory index loaded automatically via the project's `CLAUDE.md` `@`-include.\n\nMemnyx never redirects, wraps, or overrides the harness auto-memory. Two parallel layers: the harness carries per-user notes the harness writes; workspace and project memory carry curated patterns written by `/bye`. See [Optional: Auto-Memory System](#optional-auto-memory-system) below for the auto-memory layer's curation discipline and the `setup-auto-memory` skill that wires it in.\n\n### Team \u0026 leadership features\n\nFor engineering managers, directors, and VPs — driven by `\u003cworkspace\u003e/me/identity.md` (role) and `\u003cworkspace\u003e/me/team.md` (direct reports):\n\n- **`/collect-team-activity`** — collects a team member's daily activity from Slack (public and private channels the caller can see), Jira, Confluence, GitHub\n- **`/one-on-one-prep`** — synthesizes collected activity into a structured 1:1 meeting agenda\n- **`/collect-my-activity`** — works for any role, collects your own activity across all sources\n\n## Optional: Auto-Memory System\n\nFor how the auto-memory layer loads alongside workspace and project memory, see [How memory loads](#how-memory-loads) above. This section covers the curation discipline and the `setup-auto-memory` skill that wires the opt-in package in.\n\nMemnyx also ships an opt-in **auto-memory** package at `auto-memory/`. It complements the project-scope memory above with a user-scope, typed-atomic-file system that lives under `~/.claude/projects/\u003cslug\u003e/memory/` — the directory Claude Code's harness already manages per project.\n\nThe two layers serve different purposes: project memory holds curated repo knowledge shared with collaborators; auto-memory holds personal preferences and behavioral feedback that follow the user across projects.\n\nTo wire it in, run `/setup-auto-memory` from any project. It is gated, idempotent, and never touches the project-scope memory.\n\nSee `auto-memory/README.md` for the full description.\n\n## Customization\n\n### Which files to edit\n\n| File | Purpose |\n|------|---------|\n| `CLAUDE.md` | Project name, description, conventions — Claude reads this every session |\n| `.claude/docs/architecture.md` | Your project's architecture and structure |\n| `.claude/docs/conventions.md` | Code style, patterns, and standards |\n| `.claude/memory/project-context.md` | Domain-specific knowledge |\n| `\u003cworkspace\u003e/me/identity.md` | Your role, preferences, writing style (personal, not per-project) |\n\n### Adding a new skill\n\n1. Create `.claude/skills/your-skill/SKILL.md`\n2. Follow the SKILL.md format (see existing skills for examples)\n3. Add it to the skills table in `CLAUDE.md`\n\n### Modifying memory structure\n\nThe memory files are plain markdown. Add new files or sections as needed. Update `/hello` and `/bye` skills if you add files they should read/write.\n\n## License\n\nLicensed under the [Apache License, Version 2.0](LICENSE). Redistributions must retain the [NOTICE](NOTICE) file.\n\nA practical note for anyone running Memnyx inside an organization: the `/sanitizer` gate on upstream contributions is not just a privacy control — anything merged into this repo is licensed to all downstream users irrevocably. Scrub org-specific content before it crosses that boundary; removal after the fact deletes the file, not the grant.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdgrey33%2Fmemnyx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdgrey33%2Fmemnyx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdgrey33%2Fmemnyx/lists"}