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.
- Connects to an Obsidian-compatible markdown folder
- Builds a local searchable index
- Gives you a clean web interface for exploring your notes
- Watches the vault for changes and updates the index automatically
Clone and launch:
git clone https://github.com/Ansub/wiki-os.git wiki-os && cd wiki-os && npm run first-runWikiOS will open in your browser and guide you through choosing a vault. You can also use the bundled demo vault on first run.
WikiOS setup and maintenance commands now run through Node-based helpers, so the same commands work on Windows, macOS, and Linux.
Run the bundled demo vault in Docker:
docker compose up --buildThe container uses the sample vault from sample-vault/ by default. To point it at your own vault, change the /vault volume mount and the WIKI_ROOT environment variable in docker-compose.yml.
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- Homepage with featured notes, recent notes, and people highlights
- Fast local search
- Clean article pages
- Graph view
- Stats view
- Manual reindex support
- Automatic file watching
- Local-first setup with no cloud requirement
For normal users, use:
npm startFor contributors working on WikiOS itself, use:
npm run devdev 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 helpers
npm run first-runinstalls dependencies and starts the guided first-run flownpm startstarts the app in user modenpm run devstarts the contributor split client/server setupnpm run buildbuilds the client and servernpm run serveruns the already-built servernpm run deployruns the deployment helpernpm run smoke-testruns the smoke test helperdocker compose up --buildruns the app in Docker with the bundled demo vault
WIKI_ROOTbootstraps the app with a vault pathWIKIOS_FORCE_WIKI_ROOTforces a temporary per-process vault overridePORTsets the server portWIKIOS_INDEX_DBoverrides the SQLite index pathWIKIOS_ADMIN_TOKENprotects the manual reindex endpointWIKIOS_DISABLE_WATCH=1disables filesystem watching
By 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:
- frontmatter keys like
person,people,type,kind, andentity - tags like
person,people,biography, andbiographies - folders like
people/,person/,biographies/, andbiography/
You can customize this in wiki-os.config.ts with people.mode:
explicitis the safest defaulthybridallows broader inference after explicit metadataoffhides People entirely
Local person overrides are saved in ~/.wiki-os/config.json and do not rewrite your notes.
MIT