notes, measured and searchable

Notes, in blocks

blk/txt is a notes app for dated notes, logs and agent journals.

Searchable blocks

It turns the notes and logs you already keep into searchable blocks you can count and open.

Counts that open

blk/txt groups notes by week and day, with each count linking to its entries.

Tickets and summaries

blk/txt uses those entries to reconstruct a ticket’s history and provide sources for a summary.

Your originals

Your plain text files remain unchanged when blk/txt imports them.

Logs and agents

blk/txt imports supported access logs, syslog and JSON lines alongside notes. It gives each agent a separate token for posting entries.

Plain text users

People and agents can use blk/txt to search dated plain text notes and logs and follow recorded changes.

One plan

It costs 8 dollars a month or 72 dollars a year, and the trial needs no account and ends after 48 hours of inactivity.

0proprietary formats: plain text in; JSON, CSV or Markdown out
1rebuildable search index from your source text
11included entity types, plus your own
19.8:1primary body text contrast; WCAG AAA requires 7:1
TUE 22 · 09:12

Chased TICK-1842 with @dana, prod tunnel to the VPN still dropping.

week · 21 to 27 sepWeek 39
14 notes
mon 212
tue 224
4
09:12 · morningChased TICK-1842 with @dana, prod tunnel to the VPN still dropping.
11:40 · morningp95 now {{ latest p95 }}480 ms, and INC-9021 came up {{ count ticket:INC-9021 in 30d }}6 times this month.
16:05 · afternoonTODO remove the temporary retry once the tunnel holds.
agent · deploy-botRolled checkout to prod on 3 hosts.
wed 233
thu 241
fri 254
sat 260
sun 270
These 14 sample notes appear in blk/txt groups by week and day. In blk/txt, each count opens the notes it counts.
where it started

My dated work notes

I kept dated work notes with ticket references and wanted to search them. I found that those entries could also reconstruct ticket histories, reveal recurring issues and provide sources for project summaries.

three things the notes heldTicket histories and summaries
a · history

Ticket history

blk/txt lists matching ticket entries in date order with the surrounding sentence.

INC-9 › 6 days 11
b · recurrence

Recurring issues

For tickets and phrases, blk/txt counts mentions and links each count to its entries.

last 30 days 6
c · evidence

Summaries with sources

You can select entries and export them as one file that opens without an account, with the figures and their sources beside them.

summary › 9 entries 9
how it works

Searchable dated notes

blk/txt turns dated plain text into searchable blocks and recognises the identifiers you track. It also imports supported access logs, syslog and JSON lines.

  1. 01 · source

    Original text files

    Dated notes from .txt, .md or .log files become blk/txt blocks without changes to the originals.

  2. 02 · parse

    Editable matching rules

    blk/txt recognises tickets, tags, mentions and metrics using rules you can change. Its preview shows affected matches and warns when it could not check the whole input.

  3. 03 · index

    Search and import history

    Your unlocked imported notes are searchable in blk/txt, which reports what each import added or skipped. It can rebuild search from your source text.

  4. 04 · read

    Web and mobile access

    blk/txt uses the same account on the web and your phone, and accepts notes from your tools through its JSON API.

~/journal/2026-07.mdparsing
Chased TICK-1842 with @dana, prod tunnel to the VPN still dropping. #checkout latency 480ms, retested after INC-9021.
found … entity types
date19/07/2026
ticketTICK-1842 INC-9021
mentiondana
environmentprod
tagcheckout
metric480 ms
In this sample journal block, blk/txt found six entity types without changing its text.
typed entities

Custom entity types

blk/txt recognises date headers and common identifiers such as ticket IDs, tags, mentions, environments and web links. You can add your own types, reject false matches and preview changes before saving. It suggests recurring fields from at least five blocks, with examples and counterexamples for review. A suggested type joins your rules only after you approve it.

01Date19/07/2026blk/txt keeps each note under its recorded date, using a date header for the blocks that follow it.
02TicketTICK-1842You set the rule that matches your own ticket IDs.
03Tag#checkoutYou can use #checkout as a tag without setting up a rule.
04Mention@danaYou can follow @dana across your notes without an address book.
05EnvironmentprodYou can follow every mention of prod across your notes.
06URLthe status pageblk/txt recognises web links and supports custom rules for bare hostnames.
07Metric480 msYou define how a number is recognised, and each block records its reading.
08Your ownDEAL-0042You can add an identifier type and specify which values blk/txt should ignore.

Before applying rule changes, blk/txt checks saved examples and asks you to confirm any broken match. A search can still find ‘the thing broke again’ by its words, though blk/txt has no identifier linking it to other reports.

Presets in blk/txt cover incidents, research, support, journal and agents, with rules you can adjust. For sharing, blk/txt exports the rules you taught without notes and previews someone else’s rules before importing them.

blocks that open

Nested note blocks

blk/txt opens block counts onto their notes without a search and groups agent entries from other machines in the same account, where their counts open the same way. Its timelines distinguish days with writing but no subject mention from days with no writing, including a count of days without writing in each quiet stretch. Agent entries and logs do not count as writing activity.

four kinds of blockWays into your notes
a · days

Notes without times

Notes without a recorded time keep their date in blk/txt, which lists them under "any time" instead of assigning an hour.

W39 › TUE 22 › ANY TIME 2
b · tickets

Ticket mentions by day

For INC-9021, blk/txt groups mentions by day, with each count opening the notes it counts.

INC-9021 › 6 days 11
c · agents

Agent posting tokens

Agents on different machines can post entries to blk/txt through revocable tokens. It groups those entries by agent and day and shows subjects that two agents mentioned on the same day.

agent · deploy-botRolled checkout to prod.
d · digest

Daily and weekly digests

Daily and weekly agent digests open in blk/txt, and connected agents can check open loose ends before starting work. It names the agent behind each supplied summary and excludes those summaries from note counts.

inside your notes

Values and loose ends

Recorded values appear inside notes in blk/txt. Its loose ends view lists subjects with an opening note but no matching closing note. It also summarises logs by hour and exports selected blocks for sharing.

01 · instruments

Values inside notes

Inside notes, blk/txt shows counts such as {{ count ticket:INC-9021 in 30d }} and latest readings such as {{ latest p95 }}, with links to their supporting blocks. These use subjects and metrics you track. Set views show up to 20 subjects: {{ timeline ticket:INC-9021 }} shows mention days with days without writing marked separately, and {{ open ticket:* }} lists tickets with open loose ends. Tables such as {{ rows #release show version, shipped }} show recorded fields, including version: and shipped:, and display “not written” where a selected field is missing.

{{ latest p95 }}480 ms
02 · loose ends

Open loose ends

For tracked subjects, blk/txt lists opening notes that lack a matching closing note dated later, and you can edit its opening and closing phrases or dismiss an item. Each result quotes its opening note, identifies the matching rule and gives the count of recent blocks checked. A closing note phrased differently can leave an item on the list.

temporary retry on prod since 22 Sep
03 · logs

Hourly log summaries

Hourly summaries in blk/txt remain after it removes the raw log lines. Each summary opens its raw lines while they remain available, and a source with no lines in the selected window shows its latest recorded date.

Log lines per hour. This sample contains 2312 log lines across 12 hourly intervals, from 08:00 to 20:00 on Tue 22 Sep 2026. The busiest hour began at 11:00, with 412 lines. blk/txt groups these sample log lines by their recorded hour. 412 0 08 09 10 11 12 13 14 15 16 17 18 19 08:00: 120 log lines 09:00: 180 log lines 10:00: 320 log lines 11:00: 412 log lines 12:00: 250 log lines 13:00: 140 log lines 14:00: 90 log lines 15:00: 200 log lines 16:00: 280 log lines 17:00: 160 log lines 18:00: 100 log lines 19:00: 60 log lines
This sample contains 2312 log lines across 12 hourly intervals, from 08:00 to 20:00 on Tue 22 Sep 2026. The busiest hour began at 11:00, with 412 lines. blk/txt groups these sample log lines by their recorded hour.
The numbers
HourLog lines
08:00 120
09:00 180
10:00 320
11:00 412
12:00 250
13:00 140
14:00 90
15:00 200
16:00 280
17:00 160
18:00 100
19:00 60
Total2312
04 · files

Shareable offline files

With selected unlocked blocks, blk/txt creates one export file readable without an account. It freezes instrument values at export, and their links work when the file includes every supporting block.

the letter

Letters about changes

blk/txt’s letter lists newly quiet subjects, first appearances, changed numbers and newly opened loose ends. Each item links to its supporting notes.

letter · week 3921 to 27 September
went quietINC-714 last mentioned 26 Aug5
first seen#checkout on 22 Sep3
numbers movedp95 from 310 ms to 480 ms over 4 readings4
loose endstemporary retry on prod1
This sample shows four entries from one weekly blk/txt letter: five blocks for a quiet ticket, three for a new tag, four metric readings and one open loose end. In blk/txt, each letter entry links to its supporting blocks.

Newly quiet subjects

blk/txt reports a subject when it first qualifies as quiet in the selected period, by default after 30 days without a mention. It leaves that subject out of later letters while it remains quiet.

Saved letter figures

Saved letters appear newest first in blk/txt, with each letter’s recorded figures preserved. When you lock a source block, blk/txt removes its material from saved letters.

Shared reporting periods

Within each reporting period, blk/txt groups subjects without claiming that one caused another.

subject histories

Related subject notes

blk/txt links tracked subjects and dates to their notes and shows each metric’s latest reading and earlier changes. It displays relationships you explicitly recorded between tickets, including addresses:, reverses:, follows: and led to:. Shared mentions appear separately and do not establish a cause. Its data figures link to supporting blocks and include captions, tables, CSV and SVG exports and styles for printing and electronic paper. The file format page explains how to record relationships.

activity heatmap

Daily block counts

Blocks per day. This sample contains 438 blocks across 182 days, from Mon 30 Mar 2026 to Sun 27 Sep 2026. The busiest week began Mon 22 Jun 2026, with 29 blocks. A square counts blocks regardless of their word count, so a day with one long note fills the same as a day with one short note. In blk/txt, each square opens the blocks it counts. Apr May Jun Jul Aug Sep Mon Wed Fri Mon 30 Mar 2026: 3 blocks Tue 31 Mar 2026: 2 blocks Wed 1 Apr 2026: 2 blocks Thu 2 Apr 2026: 4 blocks Fri 3 Apr 2026: 8 blocks Sat 4 Apr 2026: 0 blocks Sun 5 Apr 2026: 2 blocks Mon 6 Apr 2026: 8 blocks Tue 7 Apr 2026: 1 block Wed 8 Apr 2026: 2 blocks Thu 9 Apr 2026: 2 blocks Fri 10 Apr 2026: 5 blocks Sat 11 Apr 2026: 2 blocks Sun 12 Apr 2026: 1 block Mon 13 Apr 2026: 0 blocks Tue 14 Apr 2026: 0 blocks Wed 15 Apr 2026: 2 blocks Thu 16 Apr 2026: 4 blocks Fri 17 Apr 2026: 3 blocks Sat 18 Apr 2026: 0 blocks Sun 19 Apr 2026: 0 blocks Mon 20 Apr 2026: 3 blocks Tue 21 Apr 2026: 1 block Wed 22 Apr 2026: 6 blocks Thu 23 Apr 2026: 3 blocks Fri 24 Apr 2026: 2 blocks Sat 25 Apr 2026: 2 blocks Sun 26 Apr 2026: 0 blocks Mon 27 Apr 2026: 5 blocks Tue 28 Apr 2026: 3 blocks Wed 29 Apr 2026: 2 blocks Thu 30 Apr 2026: 2 blocks Fri 1 May 2026: 6 blocks Sat 2 May 2026: 0 blocks Sun 3 May 2026: 2 blocks Mon 4 May 2026: 5 blocks Tue 5 May 2026: 3 blocks Wed 6 May 2026: 1 block Thu 7 May 2026: 2 blocks Fri 8 May 2026: 8 blocks Sat 9 May 2026: 1 block Sun 10 May 2026: 0 blocks Mon 11 May 2026: 0 blocks Tue 12 May 2026: 6 blocks Wed 13 May 2026: 1 block Thu 14 May 2026: 3 blocks Fri 15 May 2026: 2 blocks Sat 16 May 2026: 0 blocks Sun 17 May 2026: 0 blocks Mon 18 May 2026: 1 block Tue 19 May 2026: 2 blocks Wed 20 May 2026: 5 blocks Thu 21 May 2026: 1 block Fri 22 May 2026: 3 blocks Sat 23 May 2026: 1 block Sun 24 May 2026: 2 blocks Mon 25 May 2026: 4 blocks Tue 26 May 2026: 2 blocks Wed 27 May 2026: 0 blocks Thu 28 May 2026: 3 blocks Fri 29 May 2026: 1 block Sat 30 May 2026: 2 blocks Sun 31 May 2026: 0 blocks Mon 1 Jun 2026: 4 blocks Tue 2 Jun 2026: 3 blocks Wed 3 Jun 2026: 3 blocks Thu 4 Jun 2026: 3 blocks Fri 5 Jun 2026: 2 blocks Sat 6 Jun 2026: 1 block Sun 7 Jun 2026: 0 blocks Mon 8 Jun 2026: 1 block Tue 9 Jun 2026: 4 blocks Wed 10 Jun 2026: 5 blocks Thu 11 Jun 2026: 0 blocks Fri 12 Jun 2026: 3 blocks Sat 13 Jun 2026: 0 blocks Sun 14 Jun 2026: 0 blocks Mon 15 Jun 2026: 5 blocks Tue 16 Jun 2026: 8 blocks Wed 17 Jun 2026: 6 blocks Thu 18 Jun 2026: 2 blocks Fri 19 Jun 2026: 1 block Sat 20 Jun 2026: 0 blocks Sun 21 Jun 2026: 1 block Mon 22 Jun 2026: 8 blocks Tue 23 Jun 2026: 8 blocks Wed 24 Jun 2026: 6 blocks Thu 25 Jun 2026: 2 blocks Fri 26 Jun 2026: 2 blocks Sat 27 Jun 2026: 2 blocks Sun 28 Jun 2026: 1 block Mon 29 Jun 2026: 0 blocks Tue 30 Jun 2026: 2 blocks Wed 1 Jul 2026: 1 block Thu 2 Jul 2026: 0 blocks Fri 3 Jul 2026: 6 blocks Sat 4 Jul 2026: 2 blocks Sun 5 Jul 2026: 0 blocks Mon 6 Jul 2026: 3 blocks Tue 7 Jul 2026: 4 blocks Wed 8 Jul 2026: 1 block Thu 9 Jul 2026: 2 blocks Fri 10 Jul 2026: 8 blocks Sat 11 Jul 2026: 0 blocks Sun 12 Jul 2026: 0 blocks Mon 13 Jul 2026: 4 blocks Tue 14 Jul 2026: 4 blocks Wed 15 Jul 2026: 2 blocks Thu 16 Jul 2026: 1 block Fri 17 Jul 2026: 0 blocks Sat 18 Jul 2026: 1 block Sun 19 Jul 2026: 0 blocks Mon 20 Jul 2026: 1 block Tue 21 Jul 2026: 6 blocks Wed 22 Jul 2026: 1 block Thu 23 Jul 2026: 5 blocks Fri 24 Jul 2026: 8 blocks Sat 25 Jul 2026: 0 blocks Sun 26 Jul 2026: 2 blocks Mon 27 Jul 2026: 8 blocks Tue 28 Jul 2026: 1 block Wed 29 Jul 2026: 5 blocks Thu 30 Jul 2026: 3 blocks Fri 31 Jul 2026: 3 blocks Sat 1 Aug 2026: 0 blocks Sun 2 Aug 2026: 0 blocks Mon 3 Aug 2026: 3 blocks Tue 4 Aug 2026: 4 blocks Wed 5 Aug 2026: 2 blocks Thu 6 Aug 2026: 2 blocks Fri 7 Aug 2026: 0 blocks Sat 8 Aug 2026: 1 block Sun 9 Aug 2026: 0 blocks Mon 10 Aug 2026: 4 blocks Tue 11 Aug 2026: 8 blocks Wed 12 Aug 2026: 1 block Thu 13 Aug 2026: 6 blocks Fri 14 Aug 2026: 3 blocks Sat 15 Aug 2026: 0 blocks Sun 16 Aug 2026: 0 blocks Mon 17 Aug 2026: 3 blocks Tue 18 Aug 2026: 8 blocks Wed 19 Aug 2026: 2 blocks Thu 20 Aug 2026: 5 blocks Fri 21 Aug 2026: 1 block Sat 22 Aug 2026: 0 blocks Sun 23 Aug 2026: 1 block Mon 24 Aug 2026: 3 blocks Tue 25 Aug 2026: 6 blocks Wed 26 Aug 2026: 0 blocks Thu 27 Aug 2026: 1 block Fri 28 Aug 2026: 1 block Sat 29 Aug 2026: 2 blocks Sun 30 Aug 2026: 0 blocks Mon 31 Aug 2026: 4 blocks Tue 1 Sep 2026: 2 blocks Wed 2 Sep 2026: 2 blocks Thu 3 Sep 2026: 3 blocks Fri 4 Sep 2026: 5 blocks Sat 5 Sep 2026: 1 block Sun 6 Sep 2026: 1 block Mon 7 Sep 2026: 4 blocks Tue 8 Sep 2026: 2 blocks Wed 9 Sep 2026: 1 block Thu 10 Sep 2026: 2 blocks Fri 11 Sep 2026: 2 blocks Sat 12 Sep 2026: 1 block Sun 13 Sep 2026: 0 blocks Mon 14 Sep 2026: 2 blocks Tue 15 Sep 2026: 8 blocks Wed 16 Sep 2026: 1 block Thu 17 Sep 2026: 2 blocks Fri 18 Sep 2026: 1 block Sat 19 Sep 2026: 1 block Sun 20 Sep 2026: 0 blocks Mon 21 Sep 2026: 2 blocks Tue 22 Sep 2026: 4 blocks Wed 23 Sep 2026: 3 blocks Thu 24 Sep 2026: 1 block Fri 25 Sep 2026: 4 blocks Sat 26 Sep 2026: 0 blocks Sun 27 Sep 2026: 0 blocks
This sample contains 438 blocks across 182 days, from Mon 30 Mar 2026 to Sun 27 Sep 2026. The busiest week began Mon 22 Jun 2026, with 29 blocks. A square counts blocks regardless of their word count, so a day with one long note fills the same as a day with one short note. In blk/txt, each square opens the blocks it counts.
  • no blocks
  • 1 block
  • 2 to 3 blocks
  • 4 to 6 blocks
  • 7 or more blocks
The numbers, by week
Week ofBlocksBusiest day
Mon 30 Mar 202621Fri 3 Apr 2026, 8
Mon 6 Apr 202621Mon 6 Apr 2026, 8
Mon 13 Apr 20269Thu 16 Apr 2026, 4
Mon 20 Apr 202617Wed 22 Apr 2026, 6
Mon 27 Apr 202620Fri 1 May 2026, 6
Mon 4 May 202620Fri 8 May 2026, 8
Mon 11 May 202612Tue 12 May 2026, 6
Mon 18 May 202615Wed 20 May 2026, 5
Mon 25 May 202612Mon 25 May 2026, 4
Mon 1 Jun 202616Mon 1 Jun 2026, 4
Mon 8 Jun 202613Wed 10 Jun 2026, 5
Mon 15 Jun 202623Tue 16 Jun 2026, 8
Mon 22 Jun 202629Mon 22 Jun 2026, 8
Mon 29 Jun 202611Fri 3 Jul 2026, 6
Mon 6 Jul 202618Fri 10 Jul 2026, 8
Mon 13 Jul 202612Mon 13 Jul 2026, 4
Mon 20 Jul 202623Fri 24 Jul 2026, 8
Mon 27 Jul 202620Mon 27 Jul 2026, 8
Mon 3 Aug 202612Tue 4 Aug 2026, 4
Mon 10 Aug 202622Tue 11 Aug 2026, 8
Mon 17 Aug 202620Tue 18 Aug 2026, 8
Mon 24 Aug 202613Tue 25 Aug 2026, 6
Mon 31 Aug 202618Fri 4 Sep 2026, 5
Mon 7 Sep 202612Mon 7 Sep 2026, 4
Mon 14 Sep 202615Tue 15 Sep 2026, 8
Mon 21 Sep 202614Tue 22 Sep 2026, 4
Total438
entity timeline

TICK-1842 across three weeks

Mentions of TICK-1842. These sample notes mention TICK-1842 in 10 blocks across six days between Thu 2 Jul 2026 and Sun 19 Jul 2026, the latest recorded mention. The longest quiet stretch ran 4 days, from Sun 12 Jul 2026 to Wed 15 Jul 2026, and 3 of them had nothing written. Each tick in blk/txt opens the blocks from that day that mention TICK-1842. The hatched runs mark days with nothing written at all. 2 Jul 2026 19 Jul 2026 nothing written, 2 days, Sat 4 Jul 2026 to Sun 5 Jul 2026 written, no mention of TICK-1842, 1 day, Mon 6 Jul 2026 written, no mention of TICK-1842, 3 days, Wed 8 Jul 2026 to Fri 10 Jul 2026 nothing written, 3 days, Sun 12 Jul 2026 to Tue 14 Jul 2026 written, no mention of TICK-1842, 1 day, Wed 15 Jul 2026 written, no mention of TICK-1842, 1 day, Fri 17 Jul 2026 nothing written, 1 day, Sat 18 Jul 2026 Thu 2 Jul 2026: 2 blocks Fri 3 Jul 2026: 1 block Tue 7 Jul 2026: 1 block Sat 11 Jul 2026: 2 blocks Thu 16 Jul 2026: 1 block Sun 19 Jul 2026: 3 blocks
These sample notes mention TICK-1842 in 10 blocks across six days between Thu 2 Jul 2026 and Sun 19 Jul 2026, the latest recorded mention. The longest quiet stretch ran 4 days, from Sun 12 Jul 2026 to Wed 15 Jul 2026, and 3 of them had nothing written. Each tick in blk/txt opens the blocks from that day that mention TICK-1842. The hatched runs mark days with nothing written at all.
  • a day with a mention
  • nothing written
  • written, no mention
The numbers
DayBlocks
Thu 2 Jul 2026 2
Fri 3 Jul 2026 1
Tue 7 Jul 2026 1
Sat 11 Jul 2026 2
Thu 16 Jul 2026 1
Sun 19 Jul 2026 3
Total10
metric · p95 latency

Metric reading history

480 ms, latest recorded
p95 value history. The latest of four sample readings was 480 ms on Tue 22 Sep 2026. The recorded value changed 3 times since Wed 2 Sep 2026 and moved up overall. The stepped line connects the recorded readings; values between readings are unknown. Each point in blk/txt opens the day its reading was recorded. 480 310 2 Sep 2026 22 Sep 2026 310 ms on Wed 2 Sep 2026: 1 reading 340 ms on Tue 8 Sep 2026: 1 reading 420 ms on Tue 15 Sep 2026: 1 reading 480 ms on Tue 22 Sep 2026: 1 reading
The latest of four sample readings was 480 ms on Tue 22 Sep 2026. The recorded value changed 3 times since Wed 2 Sep 2026 and moved up overall. The stepped line connects the recorded readings; values between readings are unknown. Each point in blk/txt opens the day its reading was recorded.
The numbers
DayReadings
310 ms on Wed 2 Sep 2026 1
340 ms on Tue 8 Sep 2026 1
420 ms on Tue 15 Sep 2026 1
480 ms on Tue 22 Sep 2026 1
Total4
export and privacy

Notes you can export

  1. Notes and exports

    blk/txt exports notes as JSON, CSV or Markdown at any time, including after your plan ends. Locked text needs your vault open first. Markdown preserves the dates of your notes, and every export also carries your manual links, confirmed labels and dismissals. During import, blk/txt restores these only to newly added blocks and lists any details it could not match.

  2. Notes from your tools

    Notes from other machines reach blk/txt through its JSON API with an account token. It applies your account’s rules and adds the notes to your blocks.

  3. Separate account notes

    blk/txt keeps each account’s notes separate from other accounts. Its trial needs no account and ends after 48 hours of inactivity.

  4. Repeatable note queries

    Counts and changes in blk/txt link to their supporting notes. Each linked result has a query you can rerun. Its optional analysis suggests key terms and similar notes where your notes are already stored, without changing your source text.

Sample note blocks

blk/txt’s trial accepts pasted text or uploaded files and shows their blocks, recognised identifiers and configured metrics. Its sample notes also show a letter and views of recorded changes.