kernl CLAUDE.md

kernl CLAUDE.md is an instructions file for coding agents from fastslack/kernl. It costs 1,845 tokens per session, scanned A, original, Apache-2.0.

Project instructions for developing Kernl, a personal life-management server with tasks, customer records, reminders, shopping lists, dashboards, graph data, and Google synchronisation.

In plain words
What is it for?
Use them when changing Kernl modules, SQLite tables, Neo4j data, Google sync behaviour, or related development code.
Why use it?
They record the project's structure and database conventions, reducing mistakes when adding modules, migrations, or integrations.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/fastslack/kernl/claude-md
Clone the repo
git clone --depth 1 https://github.com/fastslack/kernl

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for kernl CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/fastslack/kernl/claude-md.svg)](https://agentmods.dev/instructions/fastslack/kernl/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/fastslack/kernl/claude-md"><img src="https://agentmods.dev/badge/instructions/fastslack/kernl/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 1,845 This file is loaded in full into every session.
When invoked 1,845 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01845 $0.01845
Opus 5 $0.00923 $0.00923
Sonnet 5 $0.00369 $0.00369
Haiku 4.5 $0.00185 $0.00185

Measured 3d ago against content hash 834ac199c733, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

kernl CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 146 lines

How it starts

The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.

export function createFooModule(): KernelModule {
  let tools: ToolDefinition[] = [];
  return {
    name: "foo",
    async initialize(ctx: ModuleContext) {
      runMigrations(ctx.sqlite, "foo", fooMigrations);  // if has tables
      const service = new FooService(ctx.sqlite, ctx.neo4j);
      tools = fooTools(service);
    },
    getTools() { return tools; },
    async shutdown() {},
  };
}

ModuleContext: { sqlite, neo4j, events, config }

Migrations use Migration { version: number; sql: string } arrays, located in:

  • services/kernel/src/modules/{name}/migrations/*.ts (directory pattern), or
  • services/kernel/src/modules/{name}/migrations.ts (inline pattern)

SQLite NOT NULL columns with empty defaults: contacts table: email, phone, company, notes are NOT NULL DEFAULT ''. Use <> '' to check for presence, NOT IS NOT NULL. Same pattern used in many other tables (communications, events, etc.)

Google sync source column: source column lives in google_sync_map table, NOT in contacts — join via local_id = contacts.id.

Neo4j is Kernl's own, and it starts empty: The stack brings up a dedicated Neo4j (kernl-public-neo4j) that holds nothing but Kernl's data. It is not shared with any other dataset — an earlier version of this file claimed it shared a database with a SNOMED CT medical ontology and that every query had to filter Kernl nodes; that belonged to a different project's stack and never applied here.

Read the full file on GitHub · 146 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 146 lines · 1,845 tokens per session scan A 834ac199c733

Subscribe to this mod's changes

kernl CLAUDE.md is an instructions file published in the GitHub repository fastslack/kernl (1 stars, last pushed 12d ago), licensed Apache-2.0. It adds 1,845 tokens to every session, about $0.0092 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.