bespoke-app-personal-wiki

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2026 License: MIT Imports: 28 Imported by: 0

README

Personal Wiki — a Bespoke app

A single-user reference wiki for jotting and looking up notes, browsing by tag, and linking related pages.

This is an unofficial, third-party app for Bespoke. Nobody vetted it but its author. Read What it does with your stuff before installing it, the same as any code you run as yourself.

Install

From your Bespoke instance directory, with the platform at v0.13.0 or newer:

go tool bespoke add personal-wiki

That pins this module, writes apps/personal-wiki/app.toml with a free port, and recompiles your instance stylesheet. Pin a version you have actually read with bespoke add personal-wiki@v0.1.0.

The directory must be named personal-wiki: the slug names this app's database, process, and subdomain, and the source picks it.

What it does with your stuff

  • Stores in its own SQLite database: your pages, their tags, and embedding vectors.
  • Talks to nothing outside your host. Embeddings go through the platform's LLM gateway on 127.0.0.1.
  • Bundles chat skills (page authoring, wiki gardening) that the platform's assistant can load. They ship inside the binary.
  • Publishes events to the platform when pages are created, and posts an in-app notification when saving a page auto-creates stub pages for its [[links]].

Like every Bespoke app it runs as your user, so nothing above is enforced by the platform — it is a description you can check against the source (ADR-0031).

Spec

The behavior this app is built to, unchanged from its original private build.

Records

Page

  • id
  • title (unique, text)
  • body (markdown/free-form text)
  • tags (list of strings)
  • created_at
  • updated_at
  • last_viewed_at (nullable)
Views
  • GET / — List of all pages (recent/alphabetical toggle), search bar on top, "Recently viewed" section
  • GET /page/:id — View page: rendered body with [[links]] clickable, tag chips, "Pages that link here" backlink list, Edit/Delete buttons
  • GET /page/:id/edit — Edit title, body, tags
  • GET /new — Create page (title + body + tags)
  • GET /tag/:tag — Pages filtered by tag
Platform surfaces
  • Dashboard card: shows recently viewed pages count + quick search
  • Chat tools: create_page(title, body, tags), update_page(title, new_title?, body?, tags?), search_pages(query), get_page(title) — the LLM is a primary author of this wiki, so writing tools cover create and edit; delete stays in the UI
  • Intents: "note that...", "look up...", "add to my wiki"
Behavior
  • Typing [[Title]] in body auto-creates a blank stub page for that title if it doesn't exist; clicking it opens/edits the stub
  • Viewing a page updates last_viewed_at (drives "recently viewed" resurfacing)
  • Edit/delete anytime, permanent delete (no trash)
Hierarchy
  • A root page titled "Index" is required: auto-created, undeletable, unrenameable. It is the wiki's table of contents.
  • The hierarchy is derived, not stored: a page's children are the pages its body [[links]] to, and its place is its shortest link path from Index (shown as breadcrumbs on the page view).
  • Home renders the Index page as the lead card; pages not reachable from Index are surfaced there as orphans to attach or absorb.
  • Every new page should be linked from a parent (or the Index) — chat context presents the hierarchy tree so the LLM authors into it.
Non-goals
  • No real-time collaboration or sharing
  • No version history
  • No full graph/network visualization (only simple backlink list)
Later
  • Full-text search ranking/highlighting
  • Tag autocomplete
  • Voice capture for quick notes

Developing

views/*_templ.go is committed on purpose — instances build this module straight out of the read-only Go module cache and never run templ generate over it. After editing a .templ, run just ui and commit the output.

License

MIT — see LICENSE.

Documentation

Overview

Embedding upkeep for semantic search (ADR-0029). A background sweep embeds pages whose vector is missing or stale (text or model drift) via the gateway; everything is best-effort — without a backend the sweep idles and FTS keeps working.

personal-wiki: a single-user reference wiki — jot notes, browse by tag, link related pages with [[Title]]. Spec: README.md (approved spec, 2026-08-02).

LLM tools (ADR-0021): create/search/get pages, scoped to the calling user. These serve agentic chat and the platform MCP surface alike.

Directories

Path Synopsis
templ: version: v0.3.1020
templ: version: v0.3.1020

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL