Agent skill

Braindb Custom Profile

by dimknaf in dimknaf/braindb

How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on…

Apache-2.0Auto-check: notesKnowledge Management

Install Braindb Custom Profile

skills CLI
$ npx skills add dimknaf/braindb --skill braindb-custom-profile -a claude-code

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

GitHub CLI
$ gh skill install dimknaf/braindb braindb-custom-profile --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/dimknaf/braindb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/custom-profiles .claude/skills/braindb-custom-profile && 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
braindb-custom-profile
GitHub stars
111
Token cost
~1.6k tokens
SKILL.md length
702 words
Files
19
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on…

  • Works in 4 steps: Prefer add over replace. add keeps the… → Never break the machine contract (the… → Cite or (unknown) — never invent. A… → …
  • Tasks that involve LLM wikis
  • SKILL.md covers The model, Folder contract, Rules that keep it safe and The ingestor (optional), plus 2 more sections
  • Runs Python scripts from its folder; calls curl and docker

What it does

Braindb Custom Profile is an agent skill from dimknaf/braindb. How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on defaults when inactive.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 22 other files (for example `README.md`, `example/README.md` and `example/wiki_writer.add.md`).

It sits in Knowledge Management, covering LLM wikis. The repository describes itself as: An "LLM wiki" upgraded to a real database — typed entities, graph relations, HTTP API, and a built-in natural-language agent. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve LLM wikis

Example prompts

  • “/braindb-custom-profile”

Requirements

  • Python 3
  • Docker
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash

Workflow steps

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

  1. Prefer add over replace. add keeps the base prompt — and all the machine
  2. Never break the machine contract (the writer body is parsed for these)
  3. Cite or (unknown) — never invent. A structured field gets a value and its
  4. Make the clustering entity salient in the dropped file. Facts cluster into a wiki by

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • curl
    • docker

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

  • Network

    No URLs in SKILL.md. Its commands use curl and docker, which can reach the network depending on how they are called.

    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

Braindb Custom Profile loads about 1.6k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 702 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~1.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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:19
    ch:** `CUSTOM_PROFILE` in the repo-root `.env` names the active profile(s),
  • NoteMentions a .env fileSKILL.md:23
    `ingestor.py`, and an optional `.env`.
  • NoteMentions a .env fileSKILL.md:34
    ├── .env                        # optional: the ingestor's own config/secrets
  • NoteMentions a .env fileSKILL.md:76
    - load config from a sibling `.env` (a tiny parser into `os.environ`, or `python-dotenv`);
  • NoteMentions a .env fileSKILL.md:85
    sibling `.env` so **no profile-specific variable ever appears in the public
  • NoteMentions a .env fileSKILL.md:90
    ame>/.env.example custom-profiles/<name>/.env` and fill it.
  • NoteMentions a .env fileSKILL.md:91
    2. In the repo-root `.env`: `CUSTOM_PROFILE=<name>` (or `a,b` for several).
  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from dimknaf/braindb at commit 99cd121, republished under its Apache-2.0 licence (© dimknaf). 702 words, ~1,576 tokens.

Download SKILL.mdSave it as .claude/skills/braindb-custom-profile/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.
name
braindb-custom-profile
description
How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on defaults when inactive.
allowed-tools
Read, Write, Edit, Bash

Authoring a BrainDB custom profile

A custom profile lets you (a) shape how the wiki maintainer/writer name and structure pages and (b) feed BrainDB a custom ingestion source — with zero effect on default behaviour when the profile is not active. One env switch turns a profile on; one self-contained folder holds everything it needs.

The committed custom-profiles/hackernews/ folder is a complete, keyless worked example to copy from. custom-profiles/README.md is the short contract; this is the deep how-to.

The model

  • One switch: CUSTOM_PROFILE in the repo-root .env names the active profile(s), comma-separated. Unset ⇒ every prompt is byte-identical to the baked-in default and the ingestor supervisor sleeps.
  • One folder: custom-profiles/<name>/ holds the profile's prompt fragments, an optional ingestor.py, and an optional .env.

Folder contract

custom-profiles/<name>/
├── wiki_maintainer.add.md      # appended to the maintainer prompt
├── wiki_maintainer.replace.md  # OR replaces it entirely (advanced)
├── wiki_writer.add.md          # appended to the writer prompt
├── wiki_writer.replace.md      # OR replaces it entirely (advanced)
├── ingestor.py                 # optional: a standalone source feeder
├── .env                        # optional: the ingestor's own config/secrets
└── README.md

Targets are wiki_maintainer and wiki_writer. <target>.add.md is appended to the base prompt; <target>.replace.md replaces it. With several active profiles, add fragments are concatenated in CUSTOM_PROFILE order. All files are optional.

What each prompt shapes
  • wiki_maintainer decides, per orphan entity: skip / create (with a proposed_name) / attach / consolidate. Shape naming and dedup here (e.g. "name companies by official name; same ticker = same company").
  • wiki_writer authors the page body (free markdown). Shape structure here — the sections, a labelled profile block, a dated chronicle.

Rules that keep it safe

  1. Prefer add over replace. add keeps the base prompt — and all the machine contract it carries — intact and only layers your guidance on top. replace makes you re-own that contract.
  2. Never break the machine contract (the writer body is parsed for these):
    • [[ref:UUID]] inline citations — how a wiki links to its evidence;
    • <!-- section:NAME --> markers — the section system (arbitrary NAMEs are allowed, so you may add e.g. profile, background, current-developments);
    • the <!-- wiki:meta canonical_name=… keywords=a;b --> header — the only source of a page's keywords.
  3. Cite or (unknown) — never invent. A structured field gets a value and its [[ref:UUID]] only when a source supports it; otherwise write (unknown).
  4. Make the clustering entity salient in the dropped file. Facts cluster into a wiki by the keyword they're tagged with, so put the entity (ticker, company, project) prominently in the file (e.g. a **Tickers:** MSFT header line) so the extractor tags facts with it.
Show full SKILL.md (370 more words)Show less

The ingestor (optional)

A profile may ship ingestor.py: a standalone, long-running loop that feeds BrainDB. The committed profile_runner sidecar launches each active profile's ingestor.py as an isolated subprocess (restart-on-exit), and sleeps when no profile is active — so a broken ingestor can never affect the api/watcher/wiki.

The simplest, least-coupled ingestor just writes files into data/sources/ and lets the existing watcher do ingestion + fact-extraction — no DB or agent calls. Pattern:

  • load config from a sibling .env (a tiny parser into os.environ, or python-dotenv);
  • poll your source; for each new item (track seen ids in a .state/ file), write one <prefix>-<id>.md into data/sources/, with the entity made salient;
  • prune old files under data/sources/ingested/ (the verbatim text is stored in the DB at ingest, so the file is only a carrier);
  • sleep and repeat.

Resolve data/sources/ from the script's own location so it works in the container and standalone: Path(__file__).resolve().parents[1] / "data" / "sources". Load secrets from the sibling .env so no profile-specific variable ever appears in the public docker-compose.yml. Keep files small (title + a few fields).

Activate and verify

  1. (if the profile has secrets) cp custom-profiles/<name>/.env.example custom-profiles/<name>/.env and fill it.
  2. In the repo-root .env: CUSTOM_PROFILE=<name> (or a,b for several).
  3. docker compose up -d — the api picks up the prompt shaping; profile_runner launches the ingestor.
  4. Watch it flow:
    bash
    ls data/sources/                                   # files dropped by the ingestor
    curl -s "http://localhost:8000/api/v1/entities?entity_type=wiki&limit=20"
    curl -s -X POST http://localhost:8000/api/v1/memory/context \
      -H "Content-Type: application/json" -d '{"queries":["<an entity name>"]}'

To deactivate: remove the CUSTOM_PROFILE line and docker compose up -d — defaults restored.

Worked example

custom-profiles/hackernews/ is a complete, keyless profile (Hacker News → tech-entity wikis). Copy its ingestor.py + wiki_*.add.md as a starting point, then run it with just CUSTOM_PROFILE=hackernews — no key required.

custom-profiles/gdrive/ is a second example: a folder follower that ingests a Google Drive folder incrementally — only new files and, on edits, only the changed sections (a .state manifest + per-doc snapshots, each delta self-describing what part it is and where it belongs). Copy it when your source is a watched folder of documents that change over time rather than a feed.

A note on privacy: keep real profiles that carry a domain prompt or an API key gitignored (see .gitignore); only generic teaching profiles like example/ and hackernews/ are committed.

© dimknaf, 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 18 other files in custom-profiles of dimknaf/braindb.

  • SKILL.md
  • README.md
  • example/README.md
  • example/wiki_writer.add.md
  • gdrive/.env.example
  • gdrive/README.md
  • gdrive/ingestor.py
  • hackernews/.env.example
  • hackernews/README.md
  • hackernews/ingestor.py
  • hackernews/wiki_maintainer.add.md
  • hackernews/wiki_writer.add.md
  • hermes/.env.example
  • hermes/README.md
  • hermes/ingestor.py
  • hermes/query.md
  • hermes/sample_answer.md
  • … and 2 more

Open the folder on GitHubat commit 99cd121

Compare with similar skills

Braindb Custom Profile 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.

Braindb Custom Profile compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Braindb Custom Profile this skilldimknaf/braindb111—~1.6kAutomated safety check: NotesApache-2.0
Karpathy LLM WikiAstro-Han/karpathy-llm-wiki2.4k—~3.6kAutomated safety check: PassMIT
LLM Wikilewislulu/llm-wiki-skill655—~3.7kAutomated safety check: PassNone
Wiki Builderrohitg00/pro-workflow2.9k—~1kAutomated safety check: PassNone
Codex History IngestAr9av/obsidian-wiki3.5k—~2.2kAutomated safety check: NotesMIT
Arkon Editnduckmink/arkon1.5k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • Karpathy LLM Wiki

    Astro-Han/karpathy-llm-wiki

    A skill your agent uses when building or maintaining a personal LLM-powered knowledge base.

    2.4k GitHub stars~3.6k tokensUpdated 2 mo ago
    Knowledge ManagementAuto-check passed
  • LLM Wiki

    lewislulu/llm-wiki-skill

    Build and maintain a Karpathy-style LLM knowledge base — a self-compiling Obsidian markdown wiki where an Agent ingests raw sources, compiles cross-linked concept/entity/summary pages, answers…

    655 GitHub stars~3.7k tokensUpdated 5 mo ago
    Knowledge ManagementAuto-check passed
  • Wiki Builder

    rohitg00/pro-workflow

    Start, structure, and grow a persistent research wiki indexed in pro-workflow's SQLite knowledge base.

    2.9k GitHub stars~1k tokensUpdated 9 days ago
    Knowledge ManagementAuto-check passed
  • Codex History Ingest

    Ar9av/obsidian-wiki

    Ingest Codex CLI conversation/session history into Obsidian as distilled knowledge.

    3.5k GitHub stars~2.2k tokensUpdated today
    Knowledge ManagementAuto-check: notes
  • Arkon Edit

    nduckmink/arkon

    Propose or directly apply edits to Arkon wiki pages, including proposing brand new pages.

    1.5k GitHub stars~1.6k tokensUpdated 4 mo ago
    Knowledge ManagementAuto-check passed
  • Research Wiki Builder

    dair-ai/dair-academy-plugins

    Creates and maintains configurable research wikis: scaffold a folder, add sources, compile pages and indexes, and file query answers back.

    614 GitHub stars~1.3k tokensUpdated 2 mo ago
    Knowledge ManagementAuto-check passed

More from dimknaf/braindb

  • Braindb Agent

    dimknaf/braindb

    Persistent memory across sessions via the BrainDB agent. An agent skill from dimknaf/braindb.

    111 GitHub stars~3.2k tokensUpdated 26 days ago
    Auto-check: notes
  • Braindb

    dimknaf/braindb

    Memory recall and save. An agent skill from dimknaf/braindb.

    111 GitHub stars~6.1k tokensUpdated 26 days ago
    Auto-check: notes

Questions about Braindb Custom Profile

What does Braindb Custom Profile do?

How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on…. Braindb Custom Profile is an agent skill from dimknaf/braindb. How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on defaults when inactive.

When should I use Braindb Custom Profile?

Braindb Custom Profile fits situations like: tasks that involve LLM wikis.

How do I install Braindb Custom Profile in Claude Code?

Run `npx skills add dimknaf/braindb --skill braindb-custom-profile -a claude-code`. Or copy the skill folder (custom-profiles in dimknaf/braindb) into .claude/skills/braindb-custom-profile in your project. Claude Code loads it when a task matches its description.

How do I install Braindb Custom Profile in Codex?

Run `npx skills add dimknaf/braindb --skill braindb-custom-profile -a codex`. Or copy the skill folder (custom-profiles in dimknaf/braindb) into .agents/skills/braindb-custom-profile in your project. Codex loads it when a task matches its description.

Can I use Braindb Custom Profile 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 dimknaf/braindb --skill braindb-custom-profile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/braindb-custom-profile, .gemini/skills/braindb-custom-profile, .github/skills/braindb-custom-profile and .opencode/skills/braindb-custom-profile in your project.

What does Braindb Custom Profile need to run?

Going by SKILL.md and its folder, Braindb Custom Profile needs Python for the scripts in its folder and the command-line tools its instructions call (curl and docker). Our summary lists: Python 3; Docker. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash.

Does Braindb Custom Profile access the network?

SKILL.md contains no URLs. Its commands use curl and docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Braindb Custom Profile safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Braindb Custom Profile use?

Braindb Custom Profile 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 Braindb Custom Profile use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Braindb Custom Profile?

Skills that share tags, products or a category with Braindb Custom Profile: Karpathy LLM Wiki (Astro-Han/karpathy-llm-wiki, 2.4k stars), LLM Wiki (lewislulu/llm-wiki-skill, 655 stars), Wiki Builder (rohitg00/pro-workflow, 2.9k stars) and Codex History Ingest (Ar9av/obsidian-wiki, 3.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Braindb Custom Profile?

dimknaf (a GitHub user) maintains it in dimknaf/braindb, which has 111 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 12, 2026.

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