# Show HN: The TERSE state language and protocol

> Source: <https://github.com/terse-lang/terse>
> Published: 2026-07-25 08:45:22+00:00

# Hello World(valid terse; for Show HN)

I'm terse(greetings)

## Container

"A container may have one text block, single or multi-line"

Object(Semi-colon separated attributes; variables_like: 123; "Traditional unicode strings allowed here too.")

Another object with a name(multiple objects under a container)

## Further description of TERSE

"""

TERSE is a unified way to store state, with a defined way to query and mutate it that has been relentlessly refined for overall simplicity and token efficiency not just at rest, but in operation.

We realized state access was a low-level, common pattern that keeps getting reinvented. It goes deeper than just AI memory. Consider that Anthropic memory and others are a bunch of markdown files and in some respects, they got it right... simpler is better.

So REALLY the problem is settling on a format that is flexible to cover 95% of a domain. We can do so MUCH better than Markdown; TERSE is opinionated on that but it has very good reasons.

By being a line-ordered and line-identifiable structure (with special treatment for free-form blocks like this), now the whole state can be idempotently re-declared. Literally, this text of this post is a TERSE state declaration that an AI or you could make. Or, duh, just copy this to a .terse file!

So let's say you did that. To query this state:

> ? Hello World

To copy this whole state somewhere:

> # My new container

> ? Hello World //inline queries physically expand into the declaration

Directives are a [tail] with composable set of operations. For example, let's clean that up.. I declare thee removed!

> # My new container [REMOVED] // all contents too!

There's more. TERSE makes it exceeding easy for the AI to do stuff with state.

The MCP has one main op where these two things are sent *together*

1) state declarations

2) state queries (post-application of declarations and results unioned)

BTW, to query all state, wait for it...

> ? // Not that you want do this often!

TERSE has a full object model for (de)serialization. A reference Python implementation of the full specification is also included.

"""

## Example apps included(to help get you started; in the monorepo)

### TERSE MCP("store anything you want locally for your AI")

### TERSE Memory(a generalist; modify your own)

### TERSE Brain

"A Karpathy-brain compatible API but with TERSE as the backing store. 1/6th token use and 1/8th the number of tool calls!"

### Misc

TERSE Browser(query-response UI; great for testing)

VS Code syntax highlighter(vsix included)

## Reminders

Terse is pre-release(alpha)

Comments URL: [https://news.ycombinator.com/item?id=49045760](https://news.ycombinator.com/item?id=49045760)

Points: 1

# Comments: 1
