{"id":47278021,"url":"https://github.com/raphasouthall/neurostack","last_synced_at":"2026-04-01T18:40:03.309Z","repository":{"id":344189727,"uuid":"1180827646","full_name":"raphasouthall/neurostack","owner":"raphasouthall","description":"Your second brain, starting today. CLI + MCP server that helps you build, maintain, and search a knowledge vault that gets better every day. Works with any AI provider. Local-first, zero-prereq install.","archived":false,"fork":false,"pushed_at":"2026-03-27T14:05:44.000Z","size":10268,"stargazers_count":36,"open_issues_count":9,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-27T15:35:51.128Z","etag":null,"topics":["ai-memory","knowledge-graph","local-ai","local-first","markdown","mcp","mcp-server","neuroscience","note-taking","obsidian","open-source","pkm","python","rag","second-brain","semantic-search","stale-detection"],"latest_commit_sha":null,"homepage":"https://neurostack.sh","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/raphasouthall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"CLA.md"},"funding":{"github":"raphasouthall","buy_me_a_coffee":"raphasouthall"}},"created_at":"2026-03-13T13:05:15.000Z","updated_at":"2026-03-27T14:05:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/raphasouthall/neurostack","commit_stats":null,"previous_names":["raphasouthall/neurostack"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/raphasouthall/neurostack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphasouthall%2Fneurostack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphasouthall%2Fneurostack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphasouthall%2Fneurostack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphasouthall%2Fneurostack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphasouthall","download_url":"https://codeload.github.com/raphasouthall/neurostack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphasouthall%2Fneurostack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-memory","knowledge-graph","local-ai","local-first","markdown","mcp","mcp-server","neuroscience","note-taking","obsidian","open-source","pkm","python","rag","second-brain","semantic-search","stale-detection"],"created_at":"2026-03-15T19:57:38.085Z","updated_at":"2026-04-01T18:40:03.302Z","avatar_url":"https://github.com/raphasouthall.png","language":"Python","readme":"\u003ca href=\"https://neurostack.sh\"\u003e\u003cimg src=\"docs/logo.svg\" alt=\"NeuroStack\" height=\"48\"\u003e\u003c/a\u003e\n\n[![PyPI](https://img.shields.io/pypi/v/neurostack)](https://pypi.org/project/neurostack/)\n[![npm](https://img.shields.io/npm/v/neurostack)](https://www.npmjs.com/package/neurostack)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)\n[![CI](https://github.com/raphasouthall/neurostack/actions/workflows/ci.yml/badge.svg)](https://github.com/raphasouthall/neurostack/actions/workflows/ci.yml)\n[![MCP](https://img.shields.io/badge/MCP-21%20tools-green)](https://modelcontextprotocol.io)\n\n**Not a note-taking app. A memory layer for the notes you already have.**\n\nYour AI assistant forgets everything when the conversation ends. You ask it about the paper you summarised last week — it has no idea. You ask it to continue the chapter outline you built together — it starts from scratch.\n\nAnd even when it does find your notes, it might find the wrong version. The thesis argument you reversed, the runbook endpoint you deprecated, the decision you made in April that you overturned in June. It cites these confidently. It has no idea they're wrong.\n\nNeuroStack reads your existing Markdown notes — from Obsidian, Logseq, Notion exports, or any folder of `.md` files — indexes them into a searchable knowledge graph, and connects that graph to your AI. It detects when notes have gone stale before your AI cites them. Your files are never modified.\n\n```bash\nnpm install -g neurostack \u0026\u0026 neurostack init\n```\n\nWorks with Claude, Cursor, Windsurf, Gemini CLI, VS Code, and Codex — anything that supports MCP.\n\n---\n\n## Your notes, untouched\n\nBefore anything else: NeuroStack is strictly read-only.\n\n- Your Markdown files are **never modified, moved, or deleted**\n- All index data lives in NeuroStack's own separate database\n- To remove it completely: `neurostack uninstall` — your notes are untouched\n- In local mode: nothing ever leaves your machine\n- In cloud mode: you review and approve exactly what gets sent, and can exclude any folder with a `.neurostackignore` file\n\n---\n\n## Who this is for\n\nYou do not need to be a developer. If you take notes in Markdown — or can export your notes as Markdown from Obsidian, Notion, Bear, or Roam — NeuroStack works for you.\n\n| If you are... | NeuroStack helps you... |\n|--------------|------------------------|\n| **A researcher** | Ask your AI \"what do my notes say about X?\" across hundreds of papers. Get warned when a note references a retracted finding or superseded paper before your AI cites it confidently. |\n| **A fiction writer** | Your AI knows your world-building bible, character histories, and chapter decisions. \"We agreed in session 4 that Elena's backstory changes in act 2\" — it remembers that. |\n| **A student** | Ask your AI to explain connections across all your course notes. When a syllabus topic changes, stale revision notes are flagged automatically. |\n| **A professional** | Your AI remembers client context, project decisions, and meeting notes session-to-session. No more re-pasting the same background every time. |\n| **A developer or DevOps engineer** | Notes that reference deprecated APIs or reversed architecture decisions get flagged before your AI cites them as current. |\n\n---\n\n## Get started in three steps\n\nYou will need [Node.js](https://nodejs.org) installed (most computers already have it). That is the only prerequisite for cloud mode — no GPU, no Python knowledge, nothing else.\n\n**Step 1 — Install**\n\n```\nnpm install -g neurostack\n```\n\n**Step 2 — Set up** (takes about two minutes)\n\n```\nneurostack init\n```\n\nThe setup wizard asks: cloud or local, which vault folder, which profession pack. It does everything else automatically.\n\n**Step 3 — Connect to your AI**\n\nFor Claude Desktop:\n```\nneurostack setup-desktop\n```\n\nFor Claude Code:\n```\nclaude mcp add neurostack -- neurostack serve\n```\n\nFor Cursor, Windsurf, Gemini CLI, or VS Code:\n```\nneurostack setup-client cursor      # or: windsurf, gemini, vscode\n```\n\n**Zero-install option** — connect Claude to your vault via NeuroStack Cloud with nothing installed locally:\n```\nclaude mcp add neurostack --transport http https://mcp.neurostack.sh/mcp\n```\n\nDone. Open a new conversation and ask your AI about something from your notes.\n\n**Free tier:** 500 queries/month, 200 notes. No credit card required. [Start at app.neurostack.sh](https://app.neurostack.sh)\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCloud vs Local — what's the difference?\u003c/strong\u003e\u003c/summary\u003e\n\n| | Cloud (recommended) | Local |\n|--|--------------------|-|\n| **What you need** | Just Node.js | Node.js + Ollama (a local AI engine) |\n| **GPU required** | No | Recommended, but not required |\n| **Setup time** | About 2 minutes | 10-20 minutes |\n| **Works offline** | No | Yes |\n| **Syncs across devices** | Yes, automatically | Manual |\n| **Cost** | Free tier: 500 queries/month, 200 notes. [Pro plans](https://neurostack.sh) for more. | Free. Your hardware, your cost. |\n| **Your files** | Sent for indexing via encrypted connection, not stored after processing | Never leave your machine |\n\n**Privacy notice:** Cloud mode requires explicit consent before uploading. Your vault files are sent to Google's Gemini API for indexing (embeddings, summaries, connections between notes). Files are processed via HTTPS and not retained after indexing completes. Run `neurostack cloud consent` to review and grant consent. Exclude sensitive files with a `.neurostackignore` file (gitignore syntax).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLocal mode (Lite and Full)\u003c/strong\u003e\u003c/summary\u003e\n\nRun everything on your machine with Ollama. Choose a tier during `neurostack init`:\n\n- **Lite** (~130 MB) — keyword search, link-based connections between notes, stale detection, MCP server. No GPU or Ollama required.\n- **Full** (~560 MB) — adds semantic search (finds notes by meaning, not just keywords), AI-generated summaries, connections between notes, and topic clustering via local [Ollama](https://ollama.ai). GPU or 6+ core CPU recommended.\n\nNon-interactive setup:\n\n```bash\nneurostack init --mode full ~/my-notes    # local full mode\nneurostack init --cloud ~/my-notes        # cloud mode\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAlternative install methods (PyPI, pip, curl)\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\n# PyPI\npipx install neurostack\npip install neurostack        # inside a venv\nuv tool install neurostack\n\n# One-line script\ncurl -fsSL https://raw.githubusercontent.com/raphasouthall/neurostack/main/install.sh | bash\n\n# Lite mode (no ML deps)\ncurl -fsSL https://raw.githubusercontent.com/raphasouthall/neurostack/main/install.sh | NEUROSTACK_MODE=lite bash\n```\n\nOn Ubuntu 23.04+, Debian 12+, and Fedora 38+, bare `pip install` outside a virtual environment is blocked by the operating system. Use `npm`, `pipx`, or `uv tool install` instead.\n\nTo uninstall: `neurostack uninstall`\n\n\u003c/details\u003e\n\n---\n\n## What it actually feels like\n\n**The researcher.** You ask Claude to help write the methodology section. Instead of starting from scratch, it already knows you've read 50 papers on complementary learning systems, that you settled on a particular framing in January, and that the meta-analysis you were relying on has been flagged as stale — it keeps appearing in searches where it no longer fits. You check it, update the note, and the AI's next answer reflects where your thinking actually is.\n\n**The writer.** You ask Cursor to help with chapter eleven. It knows Elena's backstory from chapter two, the decision you made in your world-building notes to keep magic systems implicit, and that you changed her last name in a revision three weeks ago. No contradictions.\n\n**The DevOps engineer.** You ask about the deployment runbook for the auth service. NeuroStack surfaces it — but also flags it as stale. You check it. The endpoint was renamed six weeks ago. You fix the note. The next time anyone asks, they get the right answer.\n\n**The student.** You're revising three weeks before exams. You ask your AI what's on the syllabus for Module 4. It searches your notes — and stale detection tells you two of the topics were in last year's module structure, which you replaced when the course was restructured. You know what to revise. You don't waste time on dropped content.\n\n**The data scientist.** You ask about the hyperparameters from your best experiment. NeuroStack returns the results from the rerun, not the original — because you updated that note, and the update is reflected in the index.\n\n---\n\n## What makes it different\n\nNeuroStack is not a replacement for Obsidian, Notion, or any note-taking app. It sits on top of what you already use and adds what they don't have.\n\n| Capability | Note apps | Basic RAG | NeuroStack |\n|-----------|-----------|-----------|------------|\n| Stores your notes | Yes | No | No (read-only layer) |\n| AI can search your notes | Some | Yes | Yes |\n| Detects stale/outdated notes | No | No | Yes |\n| AI memories persist across sessions | No | No | Yes |\n| Works with any MCP-compatible AI | No | Varies | Yes |\n| Tiered retrieval (saves 80-95% tokens) | No | No | Yes |\n| Profession-specific workflows | No | No | Yes |\n| Open source, self-hostable | Varies | Varies | Yes (Apache 2.0) |\n\nStale detection is the feature no other tool offers. When a note keeps appearing in contexts where it no longer fits — a deprecated API, a reversed decision, a superseded paper — NeuroStack flags it and demotes it in future results. Without this, your AI confidently cites information that is no longer true.\n\n---\n\n## Profession packs\n\nWhen you run `neurostack init`, you choose a profession pack. Each one configures NeuroStack with templates, folder structures, and AI guidance suited to how your profession actually uses notes.\n\n| Pack | Built for |\n|------|-----------|\n| `researcher` | Literature review, citation tracking, evolving arguments, stale paper detection |\n| `writer` | Character sheets, world-building, chapter outlines, continuity tracking |\n| `student` | Course notes, spaced repetition, exam prep, syllabus change detection |\n| `developer` | Code decisions, architecture notes, runbooks, deprecated API detection |\n| `devops` | Infrastructure runbooks, incident notes, change logs |\n| `data-scientist` | Experiment tracking, model notes, dataset documentation |\n\nApply a pack to an existing vault without losing any notes:\n\n```bash\nneurostack scaffold researcher ~/my-notes    # or: writer, student, developer, devops, data-scientist\n```\n\nYou can also import an existing Markdown directory:\n\n```bash\nneurostack onboard ~/my-notes\n```\n\n---\n\n## How retrieval works\n\nMost memory tools give your AI a wall of text and let it figure out what's relevant. NeuroStack is tiered. It starts with the cheapest retrieval that answers the question and escalates only when it needs to.\n\n| Level | Tokens | What your AI gets |\n|-------|--------|-------------------|\n| Quick facts | ~15 | Structured facts extracted from your notes: `experiment-3 used learning-rate 0.001` |\n| Summaries | ~75 | AI-generated overview of a note |\n| Full content | ~300 | Actual Markdown content |\n| Auto (default) | Varies | Starts at quick facts, escalates only if the answer isn't there |\n\nSimple factual questions resolve at ~15 tokens. Deep dives get full context. Your AI spends its attention budget where it matters.\n\n---\n\n## Your AI remembers decisions\n\nAcross sessions, your AI can save and retrieve typed memories: observations, decisions, conventions, learnings, bugs. When you start a new session, those memories are surfaced automatically.\n\n\u003e \"We decided to keep authentication stateless.\"\n\u003e \"The thesis framing shifted from consolidation to complementary learning systems.\"\n\u003e \"Elena's surname changed from Vasquez to Reyes in the chapter 7 revision.\"\n\nThese aren't just notes. They're things your AI remembers you decided together. They survive `/clear`. They survive closing the terminal. They survive switching machines.\n\n```bash\nneurostack memories add \"revised thesis framing to CLS, not just consolidation\" --type decision --tags \"thesis,neuroscience\"\nneurostack memories search \"thesis direction\"\n```\n\n---\n\n## Learns from your AI sessions\n\nNeuroStack can scan your past AI conversations, extract the key decisions, observations, and learnings, and save them as memories — automatically. No manual work.\n\n```bash\nneurostack harvest --sessions 5          # extract insights from last 5 sessions\nneurostack hooks install                 # set up hourly auto-harvest\n```\n\nSupports Claude Code, VS Code, Codex CLI, Aider, and Gemini CLI session formats.\n\n---\n\n## Keeps itself current\n\nYour vault changes. NeuroStack watches it.\n\n```bash\nneurostack watch     # auto-index on vault changes\n```\n\nOr sync on every git commit:\n\n```bash\nneurostack cloud install-hooks\n```\n\nThe index updates as you write. Stale detection runs continuously. You don't maintain it — it maintains itself.\n\n---\n\n## What changes day-to-day\n\n| Without NeuroStack | With NeuroStack |\n|-------------------|-----------------|\n| AI answers from training data | AI answers from your actual notes |\n| Cites the runbook you deprecated | Flags it as stale, demotes it automatically |\n| No memory of yesterday's session | `session_brief` reconstructs working context |\n| Reading 10 notes to find one fact | Tiered retrieval: ~15 tokens for a structured fact |\n| Decisions lost after `/clear` | Typed memories persist indefinitely |\n| Cross-machine notes out of sync | Cloud sync: push once, pull anywhere |\n\n---\n\n## How your vault is stored\n\n```\n~/your-vault/                           # your Markdown files (never modified)\n~/.config/neurostack/config.toml        # configuration\n~/.local/share/neurostack/\n    neurostack.db                       # SQLite + FTS5 knowledge graph\n    sessions.db                         # session transcript index\n```\n\nNeuroStack reads your vault. It writes nothing back to it. All index data lives in its own SQLite databases.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAll 21 MCP tools\u003c/strong\u003e\u003c/summary\u003e\n\n| Tool | Description |\n|------|-------------|\n| `vault_search` | Hybrid search with tiered depth (`triples`, `summaries`, `full`, `auto`) |\n| `vault_ask` | RAG Q\u0026A with inline citations |\n| `vault_summary` | Pre-computed note summary |\n| `vault_graph` | Wiki-link neighborhood with PageRank scores |\n| `vault_related` | Semantically similar notes by embedding distance |\n| `vault_triples` | Knowledge graph facts (subject-predicate-object) |\n| `vault_communities` | GraphRAG queries across topic clusters |\n| `vault_context` | Task-scoped context assembly within token budget |\n| `session_brief` | Compact session briefing |\n| `vault_stats` | Index health, excitability breakdown, memory stats |\n| `vault_record_usage` | Track note hotness |\n| `vault_prediction_errors` | Surface stale notes |\n| `vault_remember` | Store a memory (returns duplicate warnings + tag suggestions) |\n| `vault_update_memory` | Update a memory in place |\n| `vault_merge` | Merge two memories (unions tags, audit trail) |\n| `vault_forget` | Delete a memory |\n| `vault_memories` | List or search memories |\n| `vault_harvest` | Extract insights from session transcripts |\n| `vault_capture` | Quick-capture to vault inbox |\n| `vault_session_start` | Begin a memory session |\n| `vault_session_end` | End session with optional summary and auto-harvest |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFull CLI reference\u003c/strong\u003e\u003c/summary\u003e\n\n```\n# Setup\nneurostack init                          # one-command setup: deps, vault, index\nneurostack init --mode full ~/brain      # non-interactive full mode\nneurostack init --cloud ~/brain          # non-interactive cloud mode\nneurostack onboard ~/my-notes            # import existing Markdown notes\nneurostack scaffold researcher           # apply a profession pack\nneurostack scaffold --list               # see all packs\nneurostack update                        # pull latest source + re-sync deps\nneurostack uninstall                     # complete removal\n\n# Search \u0026 retrieval\nneurostack search \"query\"                # hybrid search\nneurostack ask \"question\"                # RAG Q\u0026A with citations\nneurostack tiered \"query\"                # tiered: triples -\u003e summaries -\u003e full\nneurostack triples \"query\"               # knowledge graph triples\nneurostack summary \"note.md\"             # AI-generated note summary\nneurostack related \"note.md\"             # semantically similar notes\nneurostack graph \"note.md\"               # wiki-link neighborhood\nneurostack communities query \"topic\"     # GraphRAG across topic clusters\nneurostack context \"task\" --budget 2000  # task-scoped context recovery\nneurostack brief                         # session briefing\n\n# Maintenance\nneurostack index                         # build/rebuild knowledge graph\nneurostack watch                         # auto-index on vault changes\nneurostack decay                         # excitability report\nneurostack prediction-errors             # stale note detection\nneurostack backfill [summaries|triples|all]\nneurostack communities build             # rebuild topic clusters\nneurostack reembed-chunks                # re-embed all chunks\n\n# Memories\nneurostack memories add \"text\" --type observation\nneurostack memories search \"query\"\nneurostack memories list\nneurostack memories update \u003cid\u003e --content \"revised\"\nneurostack memories merge \u003ctarget\u003e \u003csource\u003e\nneurostack memories forget \u003cid\u003e\nneurostack memories prune --expired\n\n# Sessions\nneurostack harvest --sessions 5          # extract session insights\nneurostack sessions search \"query\"       # search transcripts\nneurostack hooks install                 # hourly harvest timer\n\n# Cloud\nneurostack cloud login                   # browser OAuth login\nneurostack cloud push                    # upload + index vault\nneurostack cloud pull                    # download indexed DB\nneurostack cloud sync                    # push changes + fetch memories\nneurostack cloud install-hooks           # auto-sync on git commit/merge\nneurostack cloud auto-sync enable        # periodic sync via systemd timer\nneurostack cloud consent                 # review and grant privacy consent\n\n# Client setup\nneurostack setup-client cursor           # or: windsurf, gemini, vscode, claude-code\nneurostack setup-client --list\nneurostack setup-desktop                 # Claude Desktop\n\n# Diagnostics\nneurostack stats                         # index health\nneurostack doctor                        # validate all subsystems\nneurostack demo                          # interactive demo with sample vault\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCloud sync details\u003c/strong\u003e\u003c/summary\u003e\n\nKeep your vault indexed across machines without manual steps.\n\n**Automatic sync triggers:**\n\n- **Git hooks** — sync on every commit or merge: `neurostack cloud install-hooks`\n- **systemd timer** — periodic background sync: `neurostack cloud auto-sync enable --interval 15min`\n- **Manual** — push changes and fetch memories in one command: `neurostack cloud sync`\n\n**Upload format:** Vault files are packed into a compressed tar.gz archive. Typical compression is 60-80%.\n\n**Concurrent push safety:** A server-side push lock prevents two devices from pushing simultaneously.\n\n**`.neurostackignore`:** Place in your vault root to exclude sensitive paths (gitignore syntax):\n\n```\nprivate/\njournal/*.md\n*-draft.md\n```\n\n**Upgrading from v0.10.x:** Cloud mode now requires explicit consent before uploading. Run `neurostack cloud consent` on first push after upgrading.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eNeuroscience basis\u003c/strong\u003e\u003c/summary\u003e\n\nEach feature models a specific mechanism from memory neuroscience:\n\n| Feature | Mechanism | Citation |\n|---------|-----------|----------|\n| Stale detection + demotion | Prediction error signals trigger reconsolidation | Sinclair \u0026 Bhatt 2022 |\n| Excitability decay | CREB-elevated neurons preferentially join new memories | Han et al. 2007 |\n| Co-occurrence learning | Hebbian \"fire together, wire together\" plasticity | Hebb 1949 |\n| Topic clusters | Hopfield attractor basin dynamics, inverse temperature | Ramsauer et al. 2020 |\n| Convergence confidence | Energy landscape retrieval, basin width = robustness | Krotov \u0026 Hopfield 2016 |\n| Lateral inhibition | PV+/SOM+ interneuron winner-take-all competition | Rashid et al. 2016 |\n| Tiered retrieval | Complementary learning systems | McClelland et al. 1995 |\n\nFull citations: [docs/neuroscience-appendix.md](docs/neuroscience-appendix.md)\n\n\u003c/details\u003e\n\n---\n\n## FAQ\n\n**Does it modify my vault files?** No. All data lives in NeuroStack's own SQLite databases. Your Markdown files are strictly read-only.\n\n**Do I need a GPU?** No. Cloud mode requires only Node.js. Local Lite mode has zero ML dependencies. Local Full mode runs on CPU but summarization is slow without a GPU.\n\n**Do I need to know Python?** No. The npm package handles everything. You never touch a virtualenv.\n\n**What's the catch with the free tier?** 500 queries/month, 200 notes. No credit card required. Pro plans at [neurostack.sh](https://neurostack.sh) remove those limits.\n\n**How large a vault can it handle?** Tested with ~5,000 notes. FTS5 search stays fast at any size. Cloud indexing handles 500+ notes in minutes.\n\n**Can I use it without an AI client?** Yes. The CLI works standalone and pipes into any LLM.\n\n**Is my vault private in local mode?** Yes. Nothing leaves your machine.\n\n**What if I want to exclude sensitive notes from cloud?** Add a `.neurostackignore` file to your vault root (gitignore syntax). Those files are never uploaded.\n\n**What AI clients does it work with?** Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code, and Codex — anything that supports MCP.\n\n---\n\n## Requirements\n\n- Linux or macOS\n- **Cloud mode:** Node.js only. No GPU, no Ollama, no Python setup.\n- **Local Lite mode:** Node.js + Python 3.11+. No GPU or Ollama required.\n- **Local Full mode:** [Ollama](https://ollama.ai) with `nomic-embed-text` and a summary model. GPU or 6+ core CPU recommended.\n\n---\n\n## Get started\n\n```bash\nnpm install -g neurostack\nneurostack init\n```\n\nTwo minutes. One wizard. Your AI stops forgetting.\n\n- **Website:** [neurostack.sh](https://neurostack.sh)\n- **Dashboard:** [app.neurostack.sh](https://app.neurostack.sh)\n- **Contributing:** [CONTRIBUTING.md](CONTRIBUTING.md)\n- **Contact:** [hello@neurostack.sh](mailto:hello@neurostack.sh)\n- **Sponsor:** [GitHub Sponsors](https://github.com/sponsors/raphasouthall) | [Buy me a coffee](https://buymeacoffee.com/raphasouthall)\n\n---\n\nApache-2.0 — see [LICENSE](LICENSE). No GPL dependencies. Built by [SolidPlus LTD](https://neurostack.sh).\n","funding_links":["https://github.com/sponsors/raphasouthall","https://buymeacoffee.com/raphasouthall"],"categories":["Agent Applications"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphasouthall%2Fneurostack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphasouthall%2Fneurostack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphasouthall%2Fneurostack/lists"}