Democratizing Knowledge through Open Source and Local-first AI
Map what you're learning, wire the prerequisites, and study each concept through lessons, tests, flashcards and more. Your AI writes the material over MCP, as plain files in folders you own.
What it is
Chats scroll away. Files stay.
An AI explanation is gone the moment the chat ends. Weft gives it a permanent, structured home: a concept graph on your own disk, where every lesson, test and flashcard is a plain file you keep.
In a folder on your disk. Every lesson, test and flashcard is a plain .md or .json file you can open with anything.
No. No accounts, no cloud, no database. just clone the repo, install and run.
Nothing is lost. The folders are the truth; the graph index is just a cache Weft rebuilds from them.
Any MCP client. In Claude Code the six prompts are slash commands; in Claude Desktop, the + menu.
Features
One concept. One folder.
One flat folder per concept — its .meta weaves the relations. Six tabs of material inside. Drag or scroll →
Then point your AI at it.
See howHow it works
01 / Seed
Start a project
One command scaffolds WEFT-MASTER/ — a folder of plain files with a small starter roadmap inside.
npm run seed → WEFT-MASTER/
02 / Map
Draw the graph
Add concepts and connect them: a solid thread marks a prerequisite, a dashed one a loose association.
requiere & relacionado_con
03 / Study
Work the material
Lessons, tests, challenges and flashcards per concept. Every missed answer is recorded with its solution.
Loaded on tests.json, .errorlog & flashcards.json
04 / Delegate
Let the AI write
Your assistant reads the graph over MCP and writes whole roadmaps, lessons and tests into it — files you own.
Uses tools like build_subgraph, create_lesson & add_questions
Local-first
No database. No cloud. No accounts.
Everything is a .md or .json file on your disk. if the server dies, your work survives. The graph index is just a cache; the folders are the truth. Everything is local-first, and YOU own it.
Install
Install from source.
Requires Node.js 20+. Weft is not on npm yet. MIT licensed. Seeding creates a starter WEFT-MASTER/ with a small RAG roadmap; the dev server runs on :5173 with the API on :3131.
git clone https://github.com/Ginescag/weft.git weft
cd weft
npm install
npm run seed
npm run devgit clone https://github.com/Ginescag/weft.git weft # download the source
cd weft # step inside the project
npm install # install dependencies
npm run build # build the web app
npm link # make the weft command global
npm run seed # optional: seed a starter WEFT-MASTER/
weft # first run — pick Start in the menu
Then, from any folder
| weft | interactive menu (start · move project · quit) |
| weft serve | start the server directly (app + API on :3131) |
| weft stop | stop a running server (alias: weft close) |
| weft path [dir] | show / change where your WEFT-MASTER lives |
| weft skill install | install the Claude Code skill into ~/.claude/skills |
| weft mcp | start the MCP server (for AI tools) |
| weft help | usage |
weft runs on the alternate screen buffer, like vim: an ANSI banner, a live dashboard with a request log while serving, and your terminal handed back exactly as it was on exit.
Wire it to your AI · MCP
Register the server once; the six prompts and the graph resources appear in your client.
claude mcp add weft -- node /absolute/path/to/weft/bin/weft.js mcpAfter npm link you can use weft mcp as the command. The six prompts become slash commands: /mcp__weft__…
Contribute to the open-source project.
Built in the open.
No company behind it, no telemetry, MIT licensed.
If you can run it, you can change it.
Report & propose
Bugs and feature requests go through the issue templates. Anything bigger than a small fix starts as an issue first, so the approach is agreed before the work.
Code
Fork, npm run dev for hot reload, send a focused PR. npm run typecheck && npm run build green is the whole gate. CI runs the same two commands on every PR.
Docs & translations
README and HOWTO ship bilingual (EN & ES). Docs and translation PRs are first-class contributions, not an afterthought.
The filesystem is the source of truth so no databases; graph.json is a derived cache.
Code and UI are English; the on-disk data keys stay Spanish.
Design language: embroidery on linen so one saturated colour, calm motion, reduced-motion honoured.
MIT licensed, open-source, local-first. Your data is yours.
Start weaving.