NeuroWeave Timeline
Process memory for AI agents and humans that remembers the evolution of a project. Provides MCP tools to create timeline events, search history, explain files, and visualize the evolution graph.
README
π§ NeuroWeave Timeline (NWT)
Process memory for AI agents and humans. NWT remembers how a project became what it is β not just what it is now.
Most tools remember results. NWT remembers evolution.
Traditional memory: User β Context β Summary β Memory
Timeline memory: User β Action β Timeline Event β Evolution Graph
Every meaningful action in your project β a decision, a refactor, a file creation, a bug fix β becomes a node in a durable timeline. The links between nodes form an Evolution Graph that explains why the project looks the way it does today.
π¬ What you can ask
| Question | One-liner |
|---|---|
| Why does this file exist? | nwt explain activation.py |
| Why was this architecture chosen? | nwt search "architecture decision" |
| What happened three months ago? | nwt history |
| What decisions led to the current design? | nwt story |
| Show me the evolution graph | nwt graph |
AI agents reach the same answers over MCP β see MCP integration.
π 30-second quick start
pip install -e .
cd your-project
nwt init
nwt log "Add activation engine" \
--files activation.py \
--reason "retrieval was slow"
nwt history
nwt graph
That's it. Storage is plain JSON under .nwt/. No database, no
embeddings, no vendor lock-in, no daemon.
π A tour of the output
nwt history β what happened, in order
[1] 2026-06-15 Project scaffolded [setup, milestone]
reason: Kickoff the MVP
files: pyproject.toml, README.md
[2] 2026-06-15 Add memory engine [core, milestone]
reason: Need a place to put things
files: memory.py
[3] 2026-06-15 Add activation spreading [memory, optimization]
reason: Retrieval was sequential and slow
files: activation.py, retriever.py
[4] 2026-06-15 Add decay mechanism [memory]
reason: Stale nodes should fade
files: activation.py
[5] 2026-06-15 Vectorize activation [refactor, performance]
reason: Loop was the hot path in profiling
files: activation.py
nwt graph β the evolution as a tree
β 1 Project scaffolded
β
β 2 Add memory engine
ββ sibling β [ 4] Add decay mechanism
ββ extends β [ 3] Add activation spreading
β
β 3 Add activation spreading
β
β 5 Vectorize activation
nwt story β 100 events compressed to one page
# memory-engine-demo β evolution summary
span: 2026-06-15 β 2026-06-15 (5 events)
milestones:
- 1 Project scaffolded β Kickoff the MVP
- 2 Add memory engine β Need a place to put things
- 3 Add activation spreading β Retrieval was sequential and slow
- 4 Add decay mechanism β Stale nodes should fade
- 5 Vectorize activation β Loop was the hot path in profiling
spine file: activation.py
decisions (events with stated reasons):
- [1] Project scaffolded: Kickoff the MVP
- [2] Add memory engine: Need a place to put things
...
nwt explain activation.py β why a file exists
# activation.py
created in: event 3
modified in: 4, 5
reason:
Retrieval was sequential and slow
π§© How it works
NWT lives in your project as a single .nwt/ directory:
your-project/
βββ .nwt/
βββ metadata.json # project name, schema version
βββ .counter.json # next event id
βββ timeline/ # one JSON file per event
β βββ 000001.json
β βββ 000002.json
β βββ ...
βββ relations/ # typed edges out of each source event
βββ snapshots/ # reserved for v0.2
βββ indices/ # derived, rebuildable
βββ files.json
βββ tags.json
Everything is JSON, atomically written. The whole workspace is
grep-friendly and git diff-friendly. See
docs/architecture.md for the rationale.
π MCP integration
For agent developers β NWT ships an MCP server exposing the same answers as tools:
| Tool | Returns |
|---|---|
create_event |
A persisted event with id and timestamp |
search_history |
Matching events across task/summary/reason/files/tags |
get_project_story |
Compressed project story (milestones, decisions, spine file) |
explain_file |
Created/modified-in + earliest reason for a file |
Wire it up in your MCP client:
{
"mcpServers": {
"nwt": {
"command": "nwt-mcp",
"env": { "NWT_ROOT": "/absolute/path/to/your/project" }
}
}
}
The server picks the workspace from $NWT_ROOT if set, else its own
cwd. See docs/mcp.md for the recommended agent loop:
- Session start: call
get_project_storyto load context. - For unfamiliar files: call
explain_filerather than reading cold. - As work is done: call
create_eventwith areasonexplaining why. - When uncertain: call
search_historywith a hypothesis from the current code.
π¦ Install
# from a clone (editable)
git clone https://github.com/Thatgfsj/neuroweave-timeline
cd neuroweave-timeline
pip install -e .
# from PyPI (coming soon)
pip install neuroweave-timeline
Requires Python 3.10+. The CLI depends on click; the MCP server
depends on mcp. Both install automatically.
To install dev dependencies (pytest) and run the test suite:
pip install -e ".[dev]"
pytest -q
πΊοΈ Roadmap
v0.1 (this release) is the MVP. Phases 1β6 of the spec are done. Highlights of what's next:
- v0.2 β git integration; auto-link events to commits
- v0.3 β workspace snapshots; restore a project at a past event
- v0.4 β multi-agent collaboration history
- v0.5 β NWC integration, only if NWT earns it on its own
See docs/roadmap.md and
docs/standalone.md for the full story.
π€ Contributing
Issues and PRs are welcome. The whole project is ~1,500 lines of
Python plus docs β easy to read end-to-end. Start with
docs/architecture.md for the layout and
CONTRIBUTING.md for the workflow.
π Security
NWT stores only what you give it, on disk, in your project's .nwt/.
It does not phone home, does not read environment variables other
than NWT_ROOT, and writes nowhere else. The .gitignore refuses
to track tokens, keys, or .env files. See
SECURITY.md for the full policy.
π License
MIT β see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.