Agent skill

Rekal

by rekal-dev in rekal-dev/rekal-cli

Use in a repo with Rekal initialized (.rekal/ exists). An agent skill from rekal-dev/rekal-cli.

Apache-2.0Auto-check passedAI & LLM Engineering

Install Rekal

skills CLI
$ npx skills add rekal-dev/rekal-cli --skill rekal -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rekal-dev/rekal-cli rekal --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rekal-dev/rekal-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cmd/rekal/cli/skill/skills/rekal .claude/skills/rekal && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
rekal
GitHub stars
207
Token cost
~2.1k tokens
SKILL.md length
1,121 words
Files
12 (incl. scripts, references)
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

Use in a repo with Rekal initialized (.rekal/ exists). An agent skill from rekal-dev/rekal-cli.

  • Works in 2 steps: Is it true now, or something that was? → If now — code or prose?
  • AI & LLM Engineering work in your project
  • SKILL.md covers Boundary, Commands — text by default,…, Dispatch — route, then act and Ledger workflow gate, plus 2 more sections
  • Runs Shell scripts from its folder; calls bash

What it does

Rekal is an agent skill from rekal-dev/rekal-cli. Use in a repo with Rekal initialized (.rekal/ exists). Rekal is memory of prior AI sessions — who changed what, why, and when. Before spending a token, decide WHERE the answer lives: TREE / KNOWLEDGE / LEDGER / MAP. Route to one substrate, act, and stay silent when memory is not the tool. Rekal's commands return compact agent-readable text by default; the judgment is yours.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts and reference files (for example `references/ledger.md`, `references/map.md` and `references/reference.md`).

It sits in AI & LLM Engineering. It works with DuckDB, Git and Go. The repository describes itself as: Your coding agent starts every session blank. Rekal is the memory your team is missing. The licence is Apache-2.0.

When your agent uses it

  • AI & LLM Engineering work in your project

Example prompts

  • “/rekal”

Requirements

  • A Bash shell

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Is it true now, or something that was?
  2. If now — code or prose?

What it can do on your machine

Read from SKILL.md and the folder at commit 4550e60. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Rekal loads about 2.1k tokens when it runs, and up to ~9.6k if it reads all its reference files. Until then it costs about 96 tokens; SKILL.md has 1,121 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from rekal-dev/rekal-cli at commit 4550e60, republished under its Apache-2.0 licence (© rekal-dev). 1,121 words, ~2,092 tokens.

Download SKILL.mdSave it as .claude/skills/rekal/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
rekal
description
Use in a repo with Rekal initialized (.rekal/ exists). Rekal is memory of prior AI sessions — who changed what, why, and when. Before spending a token, decide WHERE the answer lives: TREE / KNOWLEDGE / LEDGER / MAP. Route to one substrate, act, and stay silent when memory is not the tool. Rekal's commands return compact agent-readable text by default; the judgment is yours.

Rekal — which substrate answers this?

Most wasted effort is the wrong substrate. Decide before you grep or recall.

SubstrateHoldsTenseReach it withAnswers
Treecurrent codenowgrep / readwhat does X do, where is it
Knowledgecurrent prosenowrekal "<q>" → Read HEADconvention / what we know
Ledgersession intentpastrekal "<q>", drill rekal query --sessionwhy, tried, rejected
Mapstructure—map.sh + workflowhow is it built

Boundary

  1. Is it true now, or something that was?
    • Was — a reason, a rejected path, a past correction, or a fact whose only record is a past conversation → Ledger. (On a pure-dialogue corpus only the ledger has content — go there.)
  2. If now — code or prose?
    • Code (path/symbol, present tense) → Tree. Grep; do not recall.
    • Prose → Knowledge. Never invent an episode when HEAD prose answers.

grep for code that is · knowledge for prose that is · ledger for the why that was.

Commands — text by default, --json for machines

Rekal's read commands print compact agent-readable text; add --json only when a program needs to parse it.

  • rekal "<q>" — recall. Prints a seed digest: line 1 is the verdict (INJECT / KNOWLEDGE / SILENCE), then per-seed sid conf=… t<n> "snippet". One call already widens itself — it fuses several deterministic reformulations of your query (keyword-only, clause splits, a temporal variant) so you get the full picture in one go; still reformulate by hand only when the answer needs a genuinely different angle the mechanical variants miss. A seed may carry [reached N× drilled M×· "past query"] before its snippet — a usage hint. reached counts how often the search surfaced it, which is the engine quoting itself: on a small store nearly everything is reached, so a bare high count means little. drilled counts how often an agent opened it — that is the load-bearing signal and a good first drill. The echoed query is the one that most often surfaced this memory, so it shows how the need is usually framed. Neither raises conf= — judge relevance from conf= + content as always. No tag just means newly surfaced, not worse.
  • rekal find "<term>" [role] — every ledger mention of a term, complete and in time order (the "all / every / how many" sweep). A partial list is a wrong answer to a set question — this is the set.
  • rekal query --session <sid|ulid> [--offset N --limit 5 --role …] — drill a session into readable turns. rekal query --sql "SELECT …" for analytical / complete-set SQL (see references/reference.md for the full schema; ts is a TIMESTAMP — use BETWEEN, not LIKE).

INJECT/SILENCE are recommendations, biased toward more data than decision: only empty / near-zero absolute confidence is machine-silenced (never max-normalized score — junk tops out near 1.0 too). Substrates are inclusive — INJECT may carry a trailing KNOWLEDGE line. You judge from conf= + content; a lexically thin dialogue hit still injects. On KNOWLEDGE path=score … judge the distribution: clear leader → Read its path at HEAD; flat cluster → stay silent on prose.

Dispatch — route, then act

The question is…Do
Present prose / conventionrekal "<q>" → on KNOWLEDGE, Read the clear leader's path@lines
Past episode / why / tried / rejectedrekal "<q>" → on INJECT, Read references/ledger.md; drill rekal query --session <sid> --offset <t-2> --limit 5
Weak recall (one call already fused reformulations)re-search a genuinely different angle — synonyms, entity/path anchor, a re-split of a multi-hop question
All / every / how many mentions of a thingrekal find "<term>" — complete sweep; then drill and judge (class-mapping, set size)
Relative "when" (last Saturday, a month ago)ledger → classify at the workflow gate below (event-time)
Temporal, analytical, decision-arc, provenanceRead references/ledger.md — SQL via rekal query --sql "…"; don't rank a set
Breadth / structurebash scripts/map.sh fresh then Read references/map.md
Publish docs/wiki/bash scripts/wiki-gate.sh then Read references/wiki.md
Flags, SQL, PATH, schemaRead references/reference.md

The command returns data; you decide the move. Cite session / turn / commit with every memory claim.

Show full SKILL.md (489 more words)Show less

Ledger workflow gate

For a question routed to the ledger, classify the answer type before searching. Choose the first matching row and read exactly that workflow. Do not blend several workflows: concentrated guidance is more reliable than a pile of partially relevant checks.

  1. Elapsed time or duration between endpoints → Read references/workflows/duration.md
  2. A count, set, plural list, repeated events, or ordered history → Read references/workflows/complete-set.md
  3. A calendar time/date or temporal relation → Read references/workflows/event-time.md
  4. A qualified prediction, likelihood, possibility, or inference → Read references/workflows/inference.md
  5. A fact, episode, explanation, provenance, reflection, or other ledger answer → Read references/workflows/point-fact.md

Classify by the form of the answer requested, not by incidental words: "Which events happened before June?" asks for a set, while "When did the event happen?" asks for event time. The workflow supplies evidence invariants and useful operations, never truth. The ledger remains authoritative; preserve genuine ambiguity and reject unsupported premises.

Final answer check

Before answering, silently compare the candidate answer with the requested actor, entity, relation, time scope, and answer type.

  • Reject another speaker's fact, a nearby semantic slot, an adjacent event, or a suggestion or plan mistaken for a completed event.
  • When event time is requested, resolve a source-relative expression against the historical assertion timestamp. A relative expression in the question is anchored to the asker's present. Preserve source precision.
  • For a count or set, ensure members were enumerated across the requested scope, class-mapped when necessary, and deduplicated.
  • Before answering "unknown," make one focused reformulation only when retrieved evidence signals that the exact fact may be buried.
  • If a check fails, repair evidence gathering rather than weakening the evidence standard or satisfying a false premise.

Judgment — agent, not the command

  • Only what the ledger holds. Do not invent or pad. If the record is thin, say so — or stay silent.
  • A partial set is a wrong answer when the question asks for the set. Use rekal find / SQL and page until empty. Ranked recall is for pointed questions, not "all / which / how many / every beat of an arc."
  • Keep the record's precision. Month-only evidence supports a month, not an invented day; attribution stays as the record states it; don't fake precision the record lacks or tidy away genuine ambiguity. (A resolvable source-relative phrase is still converted — see the event-time workflow.)
  • A false premise has no answer. When the question asserts something the record contradicts or never says, say that — never fabricate the asserted fact, and never silently answer a corrected question nobody asked.
  • Drill the hit before concluding absence. A recalled seed you haven't drilled outranks any amount of tree-grepping; grep never answers a ledger question, and an empty stub greps forever.

Semantic warming

A SEMANTIC warming line means the deep-semantic daemon is still loading; those results are keyword + LSA only. If the answer matters, re-run the same recall with exponential backoff (2s, 4s, 8s) until it's gone; after ~three tries proceed — the keyword layer stands on its own.

© rekal-dev, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (scripts, references) in cmd/rekal/cli/skill/skills/rekal of rekal-dev/rekal-cli.

  • SKILL.md
  • references/ledger.md
  • references/map.md
  • references/reference.md
  • references/wiki.md
  • references/workflows/complete-set.md
  • references/workflows/duration.md
  • references/workflows/event-time.md
  • references/workflows/inference.md
  • references/workflows/point-fact.md
  • scripts/map.sh
  • scripts/wiki-gate.sh

Open the folder on GitHubat commit 4550e60

Compare with similar skills

Rekal next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Rekal compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rekal this skillrekal-dev/rekal-cli207—~2.1kAutomated safety check: PassApache-2.0
CLIProxy Core Synccaidaoli/ccLoad418—~1.5kAutomated safety check: PassMIT
Easyeda Repo Maintainzhoushoujianwork/easyeda-agent601—~360Automated safety check: PassCustom licence
Git Guardrails Claude Codefossasia/eventyay-interpretation1.6k13 repos~578Automated safety check: PassApache-2.0
Go-Redis Release Preparationredis/go-redis22k—~1.1kAutomated safety check: PassBSD-2-Clause
Arcgis To Portaljsdatopian/portaljs2.4k1 repos~2kAutomated safety check: PassMIT

Similar skills

  • CLIProxy Core Sync

    caidaoli/ccLoad

    Syncs or audits ccLoad's CLIProxyAPI protocol-conversion core and registered provider adapters against one pinned upstream commit, then verifies the result.

    418 GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Easyeda Repo Maintain

    zhoushoujianwork/easyeda-agent

    维护 easyeda-agent 仓库的 Skill、CLI、daemon、connector 与文档,补回可复用经验并组织验证和 Git 贡献。

    601 GitHub stars~360 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Git Guardrails Claude Code

    fossasia/eventyay-interpretation

    Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute.

    1.6k GitHub starsUsed in 13 repos~578 tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.

    22k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Arcgis To Portaljs

    datopian/portaljs

    Migrate a whole ArcGIS Hub site into a PortalJS Arc portal end-to-end.

    2.4k GitHub starsUsed in 1 repo~2k tokens
    Backend & APIsAuto-check passed
  • Code Review

    yaklang/yakit

    对 Yakit 仓库的代码改动做规范化 code review:按代码逻辑、TS 定义、UI 引用与 Props、CSS 样式、依赖版本、配置项六个维度审查,检查测试用例缺失,强制执行 tsc 类型检查与 vitest 测试验证,输出「结果汇总 / 明细解释 / 合并结论」三块报告,经用户确认后写入文件。当用户要求 review、审查、评审代码改动,或在提交、合并、提 PR…

    7.8k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check: notes

More from rekal-dev/rekal-cli

  • Init

    rekal-dev/rekal-cli

    Turn on Rekal memory in the current repository by running rekal init.

    207 GitHub stars~567 tokensUpdated 28 days ago
    Auto-check passed
  • Install

    rekal-dev/rekal-cli

    Install the Rekal binary on this machine. An agent skill from rekal-dev/rekal-cli.

    207 GitHub stars~432 tokensUpdated 28 days ago
    Auto-check passed

Works with

Questions about Rekal

What does Rekal do?

Use in a repo with Rekal initialized (.rekal/ exists). An agent skill from rekal-dev/rekal-cli. Rekal is an agent skill from rekal-dev/rekal-cli.rekal/ exists).

When should I use Rekal?

Rekal fits situations like: AI & LLM Engineering work in your project.

How do I install Rekal in Claude Code?

Run `npx skills add rekal-dev/rekal-cli --skill rekal -a claude-code`. Or copy the skill folder (cmd/rekal/cli/skill/skills/rekal in rekal-dev/rekal-cli) into .claude/skills/rekal in your project. Claude Code loads it when a task matches its description.

How do I install Rekal in Codex?

Run `npx skills add rekal-dev/rekal-cli --skill rekal -a codex`. Or copy the skill folder (cmd/rekal/cli/skill/skills/rekal in rekal-dev/rekal-cli) into .agents/skills/rekal in your project. Codex loads it when a task matches its description.

Can I use Rekal in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rekal-dev/rekal-cli --skill rekal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rekal, .gemini/skills/rekal, .github/skills/rekal and .opencode/skills/rekal in your project.

What does Rekal need to run?

Going by SKILL.md and its folder, Rekal needs a shell for the scripts in its folder and the command-line tools its instructions call (bash). Our summary lists: A Bash shell.

Does Rekal access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Rekal safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Rekal use?

Rekal is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rekal use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.5k tokens, read only when the agent opens those files.

What are the alternatives to Rekal?

Skills that share tags, products or a category with Rekal: CLIProxy Core Sync (caidaoli/ccLoad, 418 stars), Easyeda Repo Maintain (zhoushoujianwork/easyeda-agent, 601 stars), Git Guardrails Claude Code (fossasia/eventyay-interpretation, 1.6k stars) and Go-Redis Release Preparation (redis/go-redis, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rekal?

rekal-dev (a GitHub user) maintains it in rekal-dev/rekal-cli, which has 207 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 10, 2026.

Source: rekal-dev/rekal-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.