Skip to content

Guide · Agent skill

How to use the Self-hosted notes companion agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The self-hosted-companion skill lets an AI agent answer questions about a folder of your own notes, such as a journal, an Obsidian vault, or any .md or .txt files, and remember earlier conversations. It is aimed at developers and note-keepers who want to try cognee's memory on personal notes. After this guide you will know what the skill does, how to install it, how to ask for it in plain language, and what to check before running it.

Self-hosted notes companiontopoteretes/cognee · Apache-2.0

Quick start

  1. 1Download and unzip the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. Alternatively, upload it under Settings → Capabilities → Skills in the Claude apps.
  2. 2Prepare the requirements. Install Python with uv, check out the cognee repository containing the self_hosted_companion cookbook, and set LLM_API_KEY for your LLM provider.
  3. 3Ask for the skill in plain language. Request a question about your notes or a chat with a companion that remembers past conversations.
  4. 4Run the setup check. The agent runs the check on your folder. Fix any line marked [setup] MISSING: before continuing.
  5. 5Send your message. The agent passes your message with --ask so the cookbook returns an answer from your notes or the sample notes.
  6. 6Review the answer and clean up. Read the text after [chat] companion>. Run cognee-cli forget on the self_hosted_companion dataset when you want to remove the saved memory.

What is an agent skill, and what does this one do?

An agent skill is a folder containing a SKILL.md file that tells an AI agent when and how to perform a task. This skill is built on the self-hosted companion cookbook in the cognee repository. It loads a notes folder into cognee's memory, stored in local databases, and then answers your messages about those notes.

Every chat is saved to that memory, so a later conversation can build on an earlier one. If you do not supply your own folder, the skill runs on bundled sample notes so you can see how it works first.

Install the skill from the ZIP or the Claude apps

You can install the skill in either of two ways. Download the ZIP from this page and unzip it into ~/.claude/skills/ to make it available to all your projects, or into a project's .claude/skills/ folder to limit it to that project.

Alternatively, upload the ZIP in the Claude apps under Settings → Capabilities → Skills.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into the project's .claude/skills/ folder
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP

Check what the skill needs before you run it

The skill needs Python with uv installed, a checkout of the cognee repository that contains the self_hosted_companion cookbook, and an LLM_API_KEY environment variable for an LLM provider. The cookbook creates local cognee databases on first use.

The skill's scripts are run from the repository root. Setup details and the full requirements table are in the cookbook's README, which is not included in this skill's download, so check that file in the repository for the exact steps.

  • Python with uv installed
  • A cognee repository checkout containing examples/cookbooks/self_hosted_companion/
  • LLM_API_KEY set for an LLM provider
  • Local cognee databases (created by the cookbook)
uv run python examples/cookbooks/self_hosted_companion/self_hosted_companion.py --check <folder>

Trigger the skill with natural requests

You do not need special syntax. Ask in plain language about your own notes, or ask to talk with a companion that remembers past conversations. The skill's description covers requests such as asking questions about your notes or chatting with a companion that remembers earlier chats.

The agent then runs the cookbook's scripts. If you have not named a folder, it uses the sample notes and tells you the answer comes from them.

  • "Using my journal folder, what did I write about the move last spring?"
  • "Ask my Obsidian vault what open questions I have about the project."
  • "Let's continue yesterday's conversation with the companion."
  • "Show me how the notes companion works using the sample notes."

Run a first chat and read the answer

The agent checks your setup first. If the check fails, each missing item is printed on a line starting with [setup] MISSING:, and the agent tells you which one to fix. When the check passes, it sends your message with --ask, because it cannot type into the interactive chat.

Once a folder is remembered, later messages use the chat script on its own. The answer is the text after [chat] companion> in the output.

  • First run on your folder: pass the folder path with --ask
  • Later messages: the chat script alone with --ask
  • Each --ask is its own chat session, saved to memory
uv run python examples/cookbooks/self_hosted_companion/self_hosted_companion.py <folder> --ask "..."

Safety notes: scripts, network and your private files

This skill runs scripts and uses the network. Answers and ingestion use an LLM API key, so the content of your notes is processed by that external LLM provider. The skill's files do not say otherwise, so treat it as sent to that service.

The skill reads your notes folder and writes only to cognee's memory. It is instructed not to quote your notes beyond what answers your question and not to print your .env file. Every run uses LLM credits, so it runs only when you ask.

Two options can remove data. The --clear flag forgets everything in the self_hosted_companion dataset, including earlier chats, so use it only when you want to start over. The --ui flag keeps running until you press Ctrl+C, so it is for browsing the graph only.

  • Notes may be sent to your LLM provider during ingestion and answers
  • --clear forgets the whole dataset, including earlier chats
  • --ui keeps running until Ctrl+C
  • Remove the saved memory with: uv run cognee-cli forget --dataset self_hosted_companion
uv run cognee-cli forget --dataset self_hosted_companion

Tips for better results

Start with the sample notes to confirm the setup works before pointing the skill at your own folder. Keep the folder you name focused, since the answers depend on what has been remembered from it.

If a script fails, the skill exits with a line naming the problem. To look closer, run that script from examples/cookbooks/self_hosted_companion/scripts/ on its own.

  • Test with sample notes first
  • Name one folder per memory set so answers stay focused
  • If a script fails, run it alone from the scripts folder to see the error

What people use it for

  • Asking what you wrote about a topic across a journal folder
  • Querying an Obsidian vault conversationally instead of searching file by file
  • Continuing a long-running conversation with a companion that remembers earlier chats
  • Trying cognee's local memory on sample notes before using personal files

Frequently asked questions

How do I install the self-hosted notes companion skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ folder for one project. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.

What do I need to run it?

You need Python with uv installed, a cognee repository checkout containing the self_hosted_companion cookbook, an LLM_API_KEY for an LLM provider, and local cognee databases, which the cookbook creates. The cookbook README lists the full setup.

Is this skill free to use?

The source does not state a licence price for the skill itself. The underlying cognee repository is licensed under Apache-2.0. Every run uses LLM credits from your provider, so costs depend on your API account.

Are my notes sent to an external service?

Ingestion and answers use an LLM API key, so note content is processed by that external LLM provider. The skill's files do not say otherwise, so do not use it for sensitive notes you do not want sent to an LLM provider.

Can I use it without my own notes?

Yes. Without a folder of your own, the skill runs on bundled sample notes and tells you the answer comes from them. It needs only LLM_API_KEY for this.

What is a good alternative if I only need simple note search?

A plain search of your notes folder is better for quick one-off lookups, because this skill uses LLM credits on every run. The skill suits questions that need an agent to read and reason over your notes and to remember past chats.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

This skill suits developers who want to test cognee's memory on personal notes, and people with an Obsidian vault or journal who want conversational answers and are comfortable with an LLM provider processing their text. It is a poor fit for sensitive private notes, quick lookups, or anyone who needs a finished app, since the setup is a cookbook described in a README not included here.

Download the skill