Skip to content

About blk/txt

Turn raw text into searchable context.

BLKTXT turns messy text into searchable operational memory. Ingest notes, logs, tickets, Markdown, and other text-shaped files, then explore extracted entities, timelines, charts, heatmaps, and full-text search from a clean web UI. It is not a notes app — it is a compiler and indexer for messy text.

Source

Raw text

The canonical truth.

Compiled memory

SQLite

Structured, queryable.

The lens

Web app

Search & explore.

Later

AI assistant

Suggests schema & links.

What it parses

Text files, Markdown, logs, ticket notes, snippets, and CSV/YAML-like text — anything text-shaped. Files are split into dated blocks while the original source stays untouched.

Entity extraction

A configurable dictionary of regex patterns pulls out entities — tickets, dates, tags, services, environments, URLs, and your own custom references — and links each match back to the block it came from.

Ticket timelines

Every entity becomes clickable. A timeline page gathers every parsed block where a ticket (or any entity) appears, in chronological order with date, source, and surrounding context.

Charts, stats & heatmaps

Aggregations are computed over the compiled SQLite data — entry counts by day, trending entities, word clouds, and an activity heatmap that shows when and how much you wrote.

Why SQLite

SQLite is the compiled memory: a single, portable, zero-server file that is fast to query, easy to back up, and trivial to rebuild from source at any time.

Source stays canonical

The database is always derived. Your raw text is the source of truth — BLKTXT can rebuild the entire index deterministically and never overwrites your original files.

Built with

  • Python 3.10+, Flask, SQLAlchemy
  • Typer CLI (blktxt), Rich
  • Tailwind CSS
  • SQLite