Use when working with Thalo (Thought And Lore Language): creating or editing .thalo files or thalo code blocks in Markdown, setting up a knowledge base with thalo-cli (init, check, actualize),...
thalo init to generate entities.thalo, AGENTS.md, and
personal-bio.md.*.thalo files or fenced code blocks inside Markdown (lang: thalo).thalo check to catch schema, link, and syntax issues.thalo format when preparing a commit or cleanup (or use Prettier with the plugin)thalo actualize to materialize syntheses (queries + prompt) for LLM use.Follow this structure:
{timestamp} {directive} {entity} "Title" [^link-id] [#tags...]
{key}: {value}
...
# Section
{content}
Guidelines:
2026-01-05T15:30Z.create for new entries and update for modifications.^link-id when you want to reference the entry elsewhere.entities.thalo.journal, opinion, reference, or lore (see entities.thalo).Metadata fields are indented key-value pairs. Values can be:
author: "Jane Doe" or unquoted author: Jane Doesubject: ^self or related: ^my-other-entrypublished: 2023-03-16date: 2020 ~ 2021Content sections start with # SectionName (indented). All content must be within a section.
Each entity type defines which sections are required/optional in entities.thalo.
Define or update entities in entities.thalo using define-entity blocks. Each entity specifies:
string, link, datetime, date-range, enums, arrays,
unions).After editing or adding entries or entities, generally run thalo check to validate.
If you need the default entity templates, load references/entities.thalo.txt.
Syntheses are queries plus prompts that let you generate structured summaries or narratives.
define-synthesis blocks.sources: to select entries by entity, tag, or metadata filters.thalo actualize to output the sources and prompt for downstream LLM use.Thalo can live inside Markdown files. The fenced code block language SHOULD be thalo (don't use it
in this file as an example because it would be parsed):
```text
...entries...
```
The CLI and LSP will parse fenced thalo blocks in .md files.
If thalo is not available, install via the user's package manager (local or global):
# Local (recommended for repo tooling)
npm install --save-dev @rejot-dev/thalo-cli
# Or with your preferred PM:
pnpm add -D @rejot-dev/thalo-cli
yarn add -D @rejot-dev/thalo-cli
# Global (optional)
npm install -g @rejot-dev/thalo-cli
This repo uses the Thalo Prettier plugin. The config is in prettier.config.mjs and includes:
plugins: ["@rejot-dev/thalo-prettier"];
Use thalo format for CLI formatting, or run Prettier normally and it will format Thalo/Markdown
with the plugin enabled.
thalo init [directory] (options: --dry-run, --force) creates entities.thalo, AGENTS.md,
personal-bio.md.thalo check [paths...] validates syntax, metadata, sections, links, enums. Options include
--format, --severity, --max-warnings, --rule, --watch, --file-type.thalo format [paths...] formats .thalo and .md (options: --check, --write,
--file-type).thalo actualize [links...] outputs pending synthesis updates and prompts. Supports -i for
custom instructions templates. Tracks changes via git or timestamps.thalo query "<query>" [paths...] filters by entity, tags, links, metadata. Options: --format,
--limit.thalo rules list shows validation rules (filter by --severity, --category, --json).thalo lsp starts the language server (stdio).--help, --version.references/entities.thalo.txt for the default entity definitions from thalo init.references/example-entries.thalo.txt for sample entries.references/scripting-api.md for the scripting API summary.date -u +"%Y-%m-%dT%H:%MZ" to generate timestamps quickly.