spw.quest · a guide to Spw

A small language for the shape of a thought.

In Spw, one character in front of a word says what the word is doing: keeping a path open, asking, committing, weighing. Braces say what belongs together. The file stays plain text you can read, and editors get structure they can navigate.

The 13 sigils on one spiral, from potential at the center to coupling at the edge ~ ? ! * . ^ # @ & = % $ <>

The shape it came from

My thoughts were already spirals. Part of the difficulty was not having language for what I was thinking about, so I could not tell when a thought was ready to set down. Spw gives that shape somewhere to land: one character says what a word is doing, braces say what belongs together, and a thought can be set down whole instead of chased.

It started in 2017, alongside reading about how people learn from text and helping with research in an adult learning lab. Part of it was wanting language to share what I was learning, in a place where I could keep learning what I wanted to. The question it keeps asking is about cognition: where do two understandings stop sharing ground, and what would help them share more?

And it wonders about geometry: how a mind represents the thoughts it holds, what shape a circuit of thought might take on a page, and how findings from different fields could sit side by side in one form you can read.

It is not built for anyone in particular. It has been designed with care, and it has turned out to be useful, most of all toward a culture where media literacy can grow across generations.

Read one page

A journal entry, written in Spw. Every line is still readable as a note.

morning_pages.spw
#>morning_pages
#:journal #!sunday

@yesterday: ~"./2026-09-27.spw"

^"entry"{
  noticed = `the dream kept circling back`
  wonder = `why the same door every time`
  next = #[`one page`, `the walk`]
}[reg=facet]
#>morning_pages
A frame: the name this file answers to. Other files can point here.
#:journal #!sunday
A layer line: what kind of writing this is, and a tag for this one.
@yesterday: ~"./2026-09-27.spw"
A perspective held as potential: yesterday's page, reachable but not pulled in.
^"entry"{ … }
Ascension over a definition: the parts inside are one entry you can inspect whole.
noticed = `…`
Configuration: a value kept under a name. Backticks hold a phrase as written.
next = #[ … ]
Vibration over a mode bracket: a set, two things to do next.
[reg=facet]
A mode after the braces: read this entry as a facet, a property sheet.

Twelve sigils and a couple

Each operator has a reader's name, which is how you think with it, and a runtime behavior, which is what the interpreter does today. They are kept separate on purpose: a name is not a promise about evaluation.

Four ways to hold things

Brace pairs are containers. Read together, they make a sentence: <concept>(scene)[mode]{definition}, what it is about, where, through which lens, and what belongs inside.

Operators and containers compose: #[…] is a set, .{…} is a property sheet.

You might find it interesting if…

Keep going

Try the parser Operator atlas Read the source Install

Recipe for agents · quest.json · What was hard to follow