The Problem

People accumulate disparate digital artifacts—photos, chat logs, location history, transaction records—but lack a unified, searchable personal knowledge base. Manually curating these into a wiki is time‑consuming and error‑prone.

What This Does

whoami.wiki automates the ingestion of personal archives and builds a private, read‑only wiki. The core ingestion pipeline lives in cli/src/ (e.g., commands/import.ts, content.ts, wiki-client.ts) and outputs markdown/wiki files that the desktop Electron app (desktop/src/renderer/.tsx) renders. The web front‑end (web/app/) provides documentation and a demo site, while the evals/ package supplies automated graders to verify data quality (see evals/src/graders/.ts). All three runtimes share a common TypeScript codebase, enforced by pnpm workspaces.

How To Use It

Setup

Install dependencies for all workspaces pnpm install

Build the desktop client (Electron)

pnpm --filter desktop run build # uses vite.config.ts

Build the CLI (bundled entry point)

pnpm --filter cli run build

Configuration

CLI: create cli/.env (not committed) with any required API keys; the CLI reads them via cli/src/auth.ts. Desktop: the Electron builder uses desktop/electron-builder.yml; signing credentials must be supplied per that file. Eval harnesses: copy evals/.env.example to evals/.env and fill in any LLM endpoint variables referenced in evals/src/llm.ts.

Running

Import data: node cli/dist/index.js import --source path/to/export (entry point cli/src/index.ts). Launch the desktop app: pnpm --filter desktop start (runs desktop/src/main.ts). Execute the test harness: pnpm --filter evals test (runs evals/src/runner/e2e.ts).

Real‑World Use

A user exports their iPhone backups, runs cli import --source ./backup, then opens the generated wiki with the desktop app. The app’s renderer/navbar.tsx provides navigation, while evals/ can be scheduled in CI to flag missing citations or inconsistent metadata before the wiki is shared with family members.

Code Health & Issues

Low – Missing explicit type guards – cli/src/commands/ rely on loosely typed JSON payloads; runtime errors may surface with malformed imports. Medium – Hard‑coded paths – cli/src/data-path.ts uses OS‑specific defaults without fallback, limiting portability on non‑standard environments. Low – No unit tests for desktop UI – desktop/src/renderer/.tsx lacks test coverage; UI regressions could go unnoticed. Low – License present but not referenced in CI – LICENSE.md exists, but CI workflow ci.yml does not run a license compliance check. Low – Secrets not audited – .github/workflows/release.yml may expose signing credentials; ensure they are stored as GitHub secrets.

Overall, the repository includes CI (.github/workflows/ci.yml), a lockfile for each workspace, and a reasonable test suite (18 test files) covering the CLI and evaluation logic, indicating disciplined SDLC practices.

The Bottom Line

whoami.wiki delivers a functional pipeline for turning personal data into a private wiki, with a clear separation between CLI ingestion, Electron UI, and evaluation tooling. It is ready for solo users or small teams comfortable managing their own secrets and adding UI tests; larger organizations may need to harden type safety and automate license compliance before adoption.