WikiOS turns an Obsidian vault into a local web app. It lets you browse notes through a homepage, search, article pages, a graph view, and stats.
Built by Ansub, co-founder of Supafast - we build websites for B2B SaaS & AI companies.
Clone and launch:
git clone https://github.com/Ansub/wiki-os.git wiki-os && cd wiki-os && npm run first-run
WikiOS will open in your browser and guide you through choosing a vault. You can also use the bundled demo vault on first run.
You can run WikiOS with Docker if you want a simple container setup.
This starts WikiOS with the bundled demo vault:
docker compose up --build
The docker-compose.yml file is in the main project folder.
By default, Docker uses the demo notes in sample-vault/.
If you want to use your own Obsidian vault instead:
docker-compose.yml- ./sample-vault:/vault:ro
./sample-vault with the path to your own vaultExample:
- /Users/your-name/Documents/MyVault:/vault:ro
Leave WIKI_ROOT: /vault as it is.
For a direct build and run:
docker build -t wiki-os .
docker run --rm -p 5211:5211 -e WIKI_ROOT=/vault -v /path/to/your/vault:/vault:ro -v wiki-os-data:/data wiki-os
For normal users, use:
npm start
For contributors working on WikiOS itself, use:
npm run dev
dev runs a split frontend/backend setup for faster iteration.
src/client/ contains the React app, routes, and UI componentssrc/server/ contains the Fastify server, setup flow, runtime config, and platform helperssrc/lib/ contains the wiki coresample-vault/ contains the bundled demo contentscripts/ contains launch, deploy, and smoke-test helpersnpm run first-run installs dependencies and starts the guided first-run flownpm start starts the app in user modenpm run dev starts the contributor split client/server setupnpm run build builds the client and servernpm run serve runs the already-built servernpm run deploy runs the deployment helpernpm run smoke-test runs the smoke test helperdocker compose up --build runs the app in Docker with the bundled demo vaultWIKI_ROOT bootstraps the app with a vault pathWIKIOS_FORCE_WIKI_ROOT forces a temporary per-process vault overridePORT sets the server portWIKIOS_INDEX_DB overrides the SQLite index pathWIKIOS_ADMIN_TOKEN protects the manual reindex endpointWIKIOS_DISABLE_WATCH=1 disables filesystem watchingBy default, WikiOS saves the selected vault in ~/.wiki-os/config.json and stores hashed SQLite indexes under ~/.wiki-os/indexes/.
WikiOS treats People as an explicit, user-controlled concept first. By default it recognizes people from:
person, people, type, kind, and entityperson, people, biography, and biographiespeople/, person/, biographies/, and biography/You can customize this in wiki-os.config.ts with people.mode:
explicit is the safest defaulthybrid allows broader inference after explicit metadataoff hides People entirelyLocal person overrides are saved in ~/.wiki-os/config.json and do not rewrite your notes.
MIT
$ claude mcp add wiki-os \
-- python -m otcore.mcp_server <graph>