Skip to article
← The Ideaflow manifesto
A practice for thinking · Working draft

The Thoughtstream Protocol

How to Thoughtstream on any surface.

By Jacob Cole · September 29, 2026

The short version

Thoughtstreaming is a pattern of taking notes that lets you quickly capture and remember delicate, fleeting thoughts or insights, with minimal disruption, distraction, or breaking flow.

  1. Always write in the next place. At the top or bottom of your stream, without thinking about where to file it. I generally use the top.
  2. Jot the thought down. It can be messy. It needs to be as easy as scratch paper.
  3. Add a tag when it helps. #quote, #idea, #book. Later, search for the tag.
  4. Keep related things associated. Use adjacent lines, white space, or a link. Come back to the particular thought with its context.
  5. Let structure come afterward. You or your agent can turn the captured material into lists, relationships, messages, and other useful forms.

You can start with the first three. A note-taking app, a text conversation, a giant text file, voice recordings, or a paper notebook can all be surfaces for this practice.

You just have to jot something down

We all know those experiences of having a fleeting thought and just having to scribble it down on scratch paper. That feeling is often associated with moments of genius or tremendous insight. You have something delicate in your mind, and you want to remember it before it disappears.

You might be in a highly creative state or waking from a dream. Another case is under ultra-high-throughput circumstances, where you’re rapidly taking notes for a lot of people or moving quickly at a conference or event. In either case, you don’t want the act of taking a note to break the state that made the thought possible.

The first principle is to always just write a new note at the top or bottom, depending on which way you’re doing it. I generally use the top, without thinking about where to file it. It needs to be one action. You can’t have to think about where to put it.

You can think of it like scratch paper: you just have to jot something down. This is a familiar form of cognitive augmentation. The paper helps your mind hold on to something it might otherwise lose.

I don’t know if you’d call this a protocol, a syntax, or a style of operating. I use “protocol” for the shared practice. The basic behavior is simple enough to start before we settle every detail of the syntax.

A pattern you can use on any surface

It works in everything from a note-taking app like Thoughtstream to a text message conversation on any platform, a bunch of Markdown files, or a paper notebook that you’d ideally later scan. A giant text file is completely doable. It’s a medium-independent pattern of note-taking.

You quickly capture. Then you hashtag things. If it’s a quote you want to remember for your wall of quotes, you say #quote. If it’s an idea for a project you want to do, you say #idea. If it’s a book someone recommends, you write #book. If it’s a good physical therapist, you say #physical therapist.

A book someone recommended, and why I wanted to read it. #book

An idea for a project I want to do. #idea

A physical therapist someone recommended in Berkeley. #physical therapist #Berkeley

That’s the most basic pattern. Later on, you can find those effective highlights by searching for the tag, and you can organically grow your tag structure. You don’t need to design the whole thing before you have something worth saving.

Those examples express the meaning I want to capture. Different apps parse tags differently: some stop at a space, so a phrase such as #physical therapist may need a supported spelling such as #physicalTherapist, or a literal text search. On paper, you can write the phrase and interpret it later. The practice can travel even when the software’s syntax differs.

You can even dictate the tags into a voice recording, or say what you mean and let an agent suggest tags afterward. The key part is that you’re curating knowledge with the expectation that you or an agent will come back to it.

Find the line you need

When I’m taking notes from a meeting, I’ll usually just create one entry. But just because something is a meeting, that boundary doesn’t need to define the note-taking schema the way it used to in the world of physical files and folders.

Maybe someone mentioned a VC you should meet in one meeting, and someone else mentioned another VC you should meet in another meeting. You give them both #VC. You should be able to filter cross-sectionally across all your notes and find the lines, one or multiple, that match it. The container of the meeting shouldn’t overwhelm the particular thing you were looking for.

This is my criticism of file-based note-taking ergonomics. Files and folders are a holdover from the physical world. They kind of work, but forcing a thought into a file hierarchy can be a lossy projection of how the mind associates things. We can use Markdown files as a surface and still want a better way to work with the thoughts inside them.

The useful result is the original passage, with a way to jump back to its context. You should be able to correct a name or fix a spelling right there and have that edit apply to the source. You’re working with the knowledge itself.

A generated summary can help you find things, but the summary alone doesn’t give you that behavior. If you have to jump back to the original space to make every correction, you’re doing extra work. Keeping the original text and an editable connection to it matters.

PKM—personal knowledge management—isn’t dead just because LLMs are here. I think it’s just beginning to really take off. Agents can help add tags, but tag autocomplete is still useful: it saves you from typing a longer tag like #potential customer, and it helps you fit the information into your own ontology. You can write and compose faster.

Basic search gets you started on almost any surface. Filtering and editing at the level of individual lines is what I want a tool that fully supports the protocol to make easy.

Compose from your own Zen state

Another principle is being able to work and write without having to open and get distracted by an inbox full of stuff. I want to be able to write and create in Zen mode. When I text someone, I don’t want to have to read everyone else’s text messages.

There are tricks, like squinting my eyes while I’m opening it. But really, you should be able to control everything from the place where you’re thinking.

I use @ for curating things to say to people next time I talk to them. If I’m going to talk to my attorney, I want to cover every point very quickly. I might have a thought while I’m on the go: “I need to ask my attorney about this.” I say @lawyer, and those things aggregate.

Here, @lawyer is a marker in my own notes for a future conversation. Sending the message is a separate action. An app’s ordinary mention feature may behave differently.

You can queue up a lot of messages to different people while you’re dictating, walking, or having a deep meditation. You don’t want to look at a screen. You compose it all, and afterward you can hit “boom, send, send, send,” or have your agent help you send the messages you’ve chosen to send.

That is really, really cool: you can queue up a lot of output from the Zen state without being distracted by having to read anything. This is part of the screenless movement, and a practical version of what I mean in the manifesto by working from your own mind studio.

Some optional conventions

That’s the simplest version. There are some nice additional augmentations. I use these when they help me get things out of my knowledge base again; they can grow organically with the notes.

Let your tags develop relationships

You could say #Bay Area for a physical therapist, but you could also say #Berkeley. Berkeley is within the Bay Area, so I want everything tagged Berkeley to show up when I look for the broader area. If you have a #music idea, that’s a kind of #idea.

You can also use two tags, #idea #music, and filter for both. That works pretty well for most things. It doesn’t express quite the same relationship: a longer passage could mention an idea and a piece of music without saying the idea is a music idea.

It’s okay to have some synonym hashtags. It’s worth tracking which tags are redundant, which mean the same thing, and which are more specific than others. These are different relationships. A geographical “within” relationship and a “kind of” relationship may both be useful for finding things.

I do this with #syntax. The point is to have some tag that you use to track any schema or relations between tags that you want a future parser of your notes to make sense of.

#syntax When I search for Bay Area recommendations, include Berkeley.

#syntax A music idea is a kind of idea.

A plain text search won’t infer those relationships by itself. These notes tell a future parser, agent, or application how I want the information to behave. First-class support for that is part of the app direction.

Use adjacency and white space to preserve context

Sometimes I’ll grab a quote from an article, save the link and the quote, and then on the next line say #commentary and add my reaction. The secondary line creates an association. Maybe I’ll use #commentary, maybe I won’t. The quote is in quotes on the first line.

If a human or an LLM could figure it out, you don’t need to follow particular syntax or be perfectly regular. For quick capture, a recognizable association can be enough.

For meeting notes, I’ll often use a dot as a divider, or create some extra large white space, like triple line breaks or more, above and below a big entry. In an app, this might just be a note boundary. You want yourself or your LLM to remember what was associated and what wasn’t.

A lot of the time, I’ll just put associated stuff adjacent to each other in a big text file. It’s like writing an English essay: you grab a bunch of quotes, rearrange them, and put the ones next to each other that make sense. A two-dimensional surface may be even more ideal for that. Within a text file, adjacency already gets us somewhere.

Make a wormhole through your notes

The next principle is relations. Historically, I’ve used angle brackets: this thing relates to that thing. It’s like a wormhole through your notes to another note. I’ve also considered + relations, but I prefer angle brackets.

Any paragraph separated by a double line break, or even a single line break, seems fair game for a relation target. Really, you should be able to point to an arbitrary line within a cluster. The useful unit is sometimes smaller than the whole note.

This lets you start finding Zettelkasten-style connections. You link idea A to idea B, and idea B was already linked to idea C. Now you discover a possible connection from A to C because it was already there in the network of notes.

The exact angle-bracket grammar is still something to spell out. For now, the intent is a recognizable link to a particular thought. Following a path can reveal something worth exploring; it doesn’t mean every kind of relationship is logically transitive.

Track open threads, to-dos, and things to remember

I track Open Gestalts with #O: open threads hanging in my life. I use #T, #TT, and #TTT for increasingly urgent to-dos. It’s not exactly beautiful, but it’s a hack for now.

With a prefix search, searching #T can capture the longer ones too. An exact-tag filter may need you to select all three. This behavior depends on the search tool.

You can also use #SR for spaced repetition: things you want to revisit and learn. An agent could follow up with you at the right time. The tag records the intention; scheduling the reminders is an additional capability.

These are conventions I use. You can start with whatever tags help you remember what matters in your own life.

Messy capture can become structured knowledge

The logical next step is this: you never want to have to write nice structured information during the capture phase. You should be able to take the most messy notes possible, whether they’re voice or normal, and then elevate them into a structured version.

Every note entry can be a commit to these more structured repositories of knowledge. A note about somebody can update a CRM: who they’re connected to, where they’re from, what they studied, what they need. An idea can become part of an idea bank. A relationship between two ideas can become part of a graph.

These can be separate systems of record, but I think of them as projections from the same accumulated knowledge. If you’ve got information on someone in another CRM, it should be possible to update that CRM. I would be happy to support any other app that supports this protocol. You shouldn’t have to lock all your information into our infrastructure.

Here’s the shift I have in mind across several surfaces. The left column describes familiar workarounds; the right is the direction I want to build toward.

From scattered capture to useful structure
What we’re keepingFamiliar workflowWhere the stream could lead
People and relationshipsContact notes, a personal CRM, Apple Notes, or a company field repurposed to remember something.Capture a fragment in the moment; use it to update the person and their relationships in the CRM you use.
People we’ve metAdd someone on Facebook or Instagram, send a text or email, then search the message history later.Bring those encounters into a connected view, with the original context of where you met.
Ideas and knowledgeNotes, saved quotes, wiki pages, and links spread across different places.Build a linked collection of ideas and their sources, with connections you and your agents can explore.
Tasks and problemsTo-do lists and project issue trackers, with unresolved threads left in chats.Recognize open threads in the stream and turn the appropriate ones into tasks or issues.
Things to learnSave a quote or resource and hope to come back to it.Mark it for review and let a practice or spaced-repetition system bring it back.
Things to sayOpen each messaging app and reconstruct what you wanted to tell someone.Collect the thoughts by person, compose from your Zen state, and send when ready.

You need the low-friction capture layer, and then you can have the graph-structured layer that comes from processing it. I want Notestream Vision to make that layer visible on each note, so you can see what information it embeds. I want to see the graph of a note, the collective graph, and filtered views of ideas and their associations. I also want to see the difference between links I made explicitly and connections an agent inferred.

Fuzzy recall belongs alongside that: a slower lookup for when you don’t remember the exact words or tags. And you should be able to ask your agent to collaborate on any note, reply to it, or add to it from within the same interface. These are directions for the software around the protocol.

The original notes should remain available as these more structured versions develop. The same goes for voice: keep the recording in case the transcription screws up. Structure adds a way to use the source and a way to correct what was understood.

Save the things you’ve identified as signal

I want to see a whole movement of people recording themselves, making videos where they’re just writing down and capturing insights. Maybe they’re explicitly dictating the tags, or an AI is processing the video into tagged notes afterward.

Whatever the system is, it should take your voice recordings and videos on your iPhone, where you’re talking and streaming to yourself, and capture those. You can assume that the material will eventually be accessible through one surface.

Full ambient capture is another interesting thread. It has a lot of noise in it. Thoughtstreaming is mostly about things that you’ve specifically identified as worth saving as signal. That moment of selection is valuable information in itself.

Chats can participate too. I’d like more platforms to let you privately tag or annotate a message, so you don’t have to bother everyone in a group chat with your tags. A private reply or a private tag would do it. That’s a feature I want for OpenChat.

Cognitive augmentation for all types of minds

Incidentally, it’s interesting that even language models can benefit from a scratchpad. In Show Your Work, researchers found that generating intermediate computation steps improved performance on tasks including long addition and program execution.

How about with a full PKM system? That’s a research question I’m interested in. PKM research is also AI research: cognitive augmentation research for all types of minds, artificial and natural.

There’s a larger vision here too: a collective Zettelkasten for humanity, a web of linked pieces of knowledge. An idea bank that helps people find worthwhile things to work on. A way to connect smaller ideas, find supportive resources and implications, and map systems of wicked problems so we can start to untangle them.

That deserves its own discussion. The place to begin is with the next thought you don’t want to lose. Jot it down. Give it a tag if that helps. Keep enough of the association that you can find your way back.

I think, explicitly or implicitly, people are doing parts of this all the time. I’d like to make it a practice more people can use, on whatever surface they already have.