The format is simple: you define your entities (e.g. opinions, book reviews, facts) including type definitions for metadata fields. Then you write entries that the CLI validates against your schema. The value is the feedback loop: LLMs can easily extract information from unstructured text, but they need validation to make the data high quality. Thalo's "compiler" provides these rules.
Example:
2026-01-08T14:30Z create book-review "Designing Data-Intensive Applications" ^ddia #book
rating: "5"
author: "Martin Kleppmann"
# Summary
The definitive guide to distributed systems and data architecture. Dense but essential.
(In this example, ^ddia is a stable link identifier that can be used to reference this entry)It's really up to the user how to use it. Some ways I'm using it:
- End of day journaling: blurt out thoughts, let AI extract insights, facts.
- Organizing my knowledge: using previous "content" I've written (blog posts, websites, my CV) to extract insights.
- Processing commits I've made to keep a living record of my work.
Because it's all plain-text, it allows you to open your knowledge base in any text editor or in Claude Code to do agentic search and analysis. I hooked up a simple Telegram bot to answer questions.
The tooling includes a CLI for validation, an LSP with completions and go-to-definition, a VS Code extension, and a Prettier plugin. There's also a simple scripting API that allows you to loop over entries and use the visitor pattern to traverse your knowledge base or write new rules.
I'd love to hear what use cases people come up with. Let me know what you think!
- Code (MIT): https://github.com/rejot-dev/thalo
- Landing Page: https://thalo.rejot.dev