Basic Memory Setup logo

Basic Memory Setup

OrganizationPopular
basicmachines-co
basic-memory-setup

Guide Basic Memory setup in Tau. Use when a user wants to install or configure the Tau memory extension, choose a memory destination or capture policy, verify connectivity, or troubleshoot setup. Check compatibility and obtain approval before installation, configuration changes, or test writes.

Overview

Publisherbasicmachines-co
Repositorybasic-memory
Skill namebasic-memory-setup
Stars
4K
Forks
283
Bundled files
Instructions only
LicenseAGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by basicmachines-co on GitHub. Read the source before you install it.

Installation

Install the Basic Memory Setup AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git /tmp/basic-memory
mkdir -p .claude/skills
cp -r /tmp/basic-memory/integrations/tau/skills/basic-memory-setup .claude/skills/basic-memory-setup
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Basic Memory Setup in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Basic Memory Setup on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Basic Memory Setup is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Set up Basic Memory in Tau

Help the user choose where memory goes and what gets saved. Ask one decision at a time. Set up Basic Memory's shared workflow: schema-backed checkpoints, tasks, decisions, categorized observations, and verified relations that other agents can find. Tau provides the lifecycle callbacks; it does not define a separate memory system. Do not create projects, reorganize notes, change credentials, or install packages as incidental setup work.

1. Inspect before changing anything

  • Locate the integration directory: the installed ~/.tau/extensions/basic-memory from bm install tau, or integrations/tau in an explicitly identified Basic Memory checkout. Do not assume the current directory or this skill's directory contains the extension. A packaged install does not require a source checkout.
  • Read the integration directory's README.md, pyproject.toml, bridge.py, and knowledge.py for installation instructions, the dependency pin, Settings, and the general/coding profile models. Published reference: https://github.com/basicmachines-co/basic-memory/blob/feat-tau-1487/integrations/tau/README.md
  • Check executable availability with command -v uv, command -v bm, and command -v tau. Inspect versions/help only for executables that exist. The integration requires Python 3.13+, uv, and a configured Basic Memory CLI.
  • Distinguish the user's installed Tau from the isolated integration environment. Stock Tau 0.4.1 lacks continuity APIs. The upstream contribution is https://github.com/huggingface/tau/pull/687, from Basic Machines. Use the checked-in immutable dependency pin, not an invented version or a moving branch. A version string alone cannot distinguish stock 0.4.1 from its compatible fork.
  • Identify the effective config path: TAU_BASIC_MEMORY_CONFIG if explicitly set, otherwise ~/.tau/basic-memory.json. Inspect only that file, not unrelated Tau catalogs, credentials, logs, or conversation storage. Never dump its contents into output. Do not accept repository-local config as a capture destination.
  • If the extension is loaded, ask the user to run /bm-status. A text reply does not run a slash command or control the current Tau session. Do not start a second Tau process against the current session's storage.

If prerequisites are absent, explain the missing prerequisite and obtain approval for the specific installation. Consult current Basic Memory install docs rather than guessing package versions or changing the user's global Tau installation.

2. Choose destination and policy

Offer tools only, recall only, or full continuity. Recommend full continuity for ordinary coding only after explaining its costs and disclosure.

For recall or continuity, list existing projects using the advertised bm_list_memory_projects tool when available, or bm project list. Check current CLI help or tool schemas for routing arguments. Identify local/cloud/team routing for the exact destination; if routing cannot be established, stop and ask. Do not dump Basic Memory's config or authentication material. Ask the user to choose an existing project explicitly, including its workspace when applicable. Never select the default project or a team workspace on the user's behalf.

Explain:

  • Full continuity sends new public user/final-assistant text and the prior handoff to Tau's active model for synthesis. It adds requests, latency, and model billing.
  • Notes are saved to the selected Basic Memory project. Cloud/team destinations disclose those notes there; get explicit approval for that destination.
  • Recall-only still retrieves note contents into Tau's model context. Local notes do not imply local model inference. It disables automatic writes, not explicit tool calls or /bm-checkpoint and /bm-remember requests.
  • Transcripts stay off unless separately requested. Hidden reasoning, raw tool payloads, and images are excluded from automatic capture. Credential masking is best-effort, not a general secret detector. Recommend tools-only for sensitive sessions; even explicit tool calls can disclose data.

Also ask about optional read_projects (up to six explicit read-only sources). Explain that shared context does not authorize writes back to those projects. Choose placement_conventions based on a small approved inspection of existing notes. Checkpoints belong in their configured folder; durable decisions and tasks belong with their topics, linked from checkpoints rather than duplicated each turn.

Use these policy overlays, replacing CHOSEN_PROJECT only after approval:

Tools only

json
{
  "project": null,
  "auto_recall": false,
  "capture_knowledge": false,
  "checkpoint_on_compact": false,
  "summarize_on_shutdown": false,
  "capture_transcript": false
}

Recall only

json
{
  "project": "CHOSEN_PROJECT",
  "auto_recall": true,
  "capture_knowledge": false,
  "checkpoint_on_compact": false,
  "summarize_on_shutdown": false,
  "capture_transcript": false
}

Full continuity

json
{
  "project": "CHOSEN_PROJECT",
  "auto_recall": true,
  "capture_knowledge": true,
  "checkpoint_on_compact": true,
  "summarize_on_shutdown": true,
  "capture_transcript": false
}

Coding sessions default to tau/{repo name} within the chosen project, using the final component of the confirmed repository identity, not the worktree directory name. General sessions default to tau/checkpoints; separately enabled transcripts use tau/transcripts. Omit checkpoint_folder (or use null) for automatic placement; set it explicitly only for a user-approved override. Preserve existing folder, command, arguments, timeout, and budget settings unless the user approves changing them. Never put API keys in this file; Basic Memory owns authentication and project routing.

General or coding profile

Ask whether this checkout is for coding or general work. Do not infer coding consent merely because Git is present. General checkpoints use session; coding checkpoints use the shared coding_session contract.

For coding, resolve the Git top-level root and stable repository identity, such as owner/name. Inspect remotes narrowly without echoing embedded credentials. Ask the user to confirm both; do not invent an identity when remotes are ambiguous. Explain that branch, SHA, cwd, and optional PR metadata are saved with checkpoints. The repository label is user-confirmed identity, not a write destination.

Store coding profiles only in the user-owned repositories list. Each entry has an absolute checkout root, repository, kind: coding, and its own explicit project/read sources/placement. It does not inherit the global project. The closest matching root wins; Git must confirm that exact root before a coding write. Register another worktree explicitly with the same repository identity. Never silently copy a parent's mapping into a nested Git checkout.

Example configuration for coding in one approved checkout and tools-only elsewhere (the global lifecycle flags still apply to every profile):

json
{
  "project": null,
  "repositories": [
    {
      "kind": "coding",
      "root": "/absolute/path/to/approved-checkout",
      "repository": "owner/repository",
      "project": "CHOSEN_PROJECT",
      "read_projects": [],
      "placement_conventions": "Decisions in decisions/, tasks in tasks/. Search before creating notes."
    }
  ],
  "auto_recall": true,
  "capture_knowledge": true,
  "checkpoint_on_compact": true,
  "summarize_on_shutdown": true,
  "capture_transcript": false
}

Do not replace other repository entries when updating this checkout. A general user-level project applies outside configured coding roots; confirm that broader scope explicitly. Opt-out flags disable automatic operations across profiles. Existing legacy Tau receipts remain usable; old notes are not silently rewritten to retrofit repository metadata.

3. Apply approved configuration

Show a safe summary of the proposed destination, policy, effective config path, and changes. Ask for approval before writing. These examples are overlays, not permission to overwrite an existing config wholesale.

Parse the existing JSON strictly. If malformed or containing unknown fields, stop and explain the problem without printing sensitive values; do not replace it with defaults. Merge the approved fields and validate the complete candidate using tau.bridge.Settings.model_validate in the integration's environment, before writing. Do not print the config, validation input values, or unfiltered exceptions. Report invalid field paths and a safe explanation. Validation must not start MCP or call a model. Preserve the existing file's permissions and use a private file for a new config; avoid leaving backups containing private arguments in the checkout.

Write only after successful validation. Report configuration validation separately from connection or end-to-end verification. If already configured correctly, leave it unchanged and proceed to verification.

Seed shared schemas with approval

Read the schema files in <integration-directory>/schemas/. They are bundled copies of the repository's integrations/shared/schemas/, shared with other hosts.

After restating the exact write project and receiving approval, search for existing schema notes and read any matching definitions. Offer missing schemas only:

  • coding-session.md for coding, or session.md for general use.
  • task.md and decision.md for both profiles.

Use the advertised bm_write_note schema with note_type="schema", directory schemas, the schema frontmatter as metadata, and Markdown body as content. Do not paste YAML frontmatter into the body. Disable overwrite. Do not replace a user's customized schema, even if it differs from the bundle. Explain incompatibilities and ask before making a separate migration. No empty folders, fabricated tasks, or lifecycle-event notes are required. Seeding does not require inventing a new captureEvents setting; Tau does not use the hook CLI's audit inbox.

4. Launch the compatible environment

For a packaged install, with approval for dependency installation, use:

bash
bm install tau --sync

Then give the user this command to run in their terminal:

bash
uv run --project ~/.tau/extensions/basic-memory tau

The installed extension is discovered automatically; do not also pass -e. For source development, with approval, run uv sync --project <integration-directory> and launch uv run --project <integration-directory> tau -e <integration-directory>. Use actual resolved paths, not the placeholder literally. Do not install a second copy alongside an existing source/copy install without choosing which one to keep.

This launches the pinned isolated environment, not the user's global Tau. bm install tau installs this setup skill and the prompt templates separately; loading from source alone does not discover them. Follow the README's manual skill-copy instructions when using source development.

In an already compatible Tau session, ask the user to /reload after config changes. Reload/replacement shuts down the old lifecycle first: if automatic capture was previously enabled, that shutdown can still write using the old settings. Warn before switching destinations or disabling capture. Editing config is not an immediate guarantee that the running session has stopped capturing.

5. Verify in stages

  1. Config: the candidate passes the actual Settings model. This alone proves neither connectivity nor memory persistence.
  2. Connection and structure: /bm-status reports connected and shows the intended project, general/coding profile, read sources, and controls. Confirm the selected schemas exist using read/search tools. If shared sources were configured, verify a read-only query in each approved source.
  3. Recall: for recall/continuity policies, ask permission to retrieve an existing non-sensitive note, then use /bm-orient <topic> and confirm the note content was inserted. An empty project can connect successfully while having nothing to recall; report that distinction.
  4. Optional write/read: obtain approval for a uniquely named, non-sensitive setup test note in the exact project. Use the advertised bm_write_note schema with overwrite disabled, then bm_read_note on the returned path. Compare content. Do not infer a save from a command acknowledgement or a successful search alone. An uncertain write must not be automatically retried.
  5. Optional continuity: explain that /bm-checkpoint summarizes eligible public session content, not just a synthetic test marker, and can incur model charges. Obtain consent before asking the user to invoke it. Verify the saved path by reading it. Use advertised bm_schema_validate on that note when available. For coding, check repository/root/branch/SHA metadata and a repository filter query; then verify recall after an approved reload. Do not compact a working session merely as a setup test. A tool unavailable behind a feature gate is an unverified stage, not permission to enable features silently.

Ask separately before deleting any test note. Never delete checkpoints or receipts as automatic cleanup. Report what was actually tested and leave unrun stages explicitly unverified. Do not declare full continuity verified from write/read alone.

Troubleshooting and handoff

  • Unsupported host: use the pinned environment; never patch installed Tau files.
  • Disconnected: verify the configured executable and arguments, project access, and safe diagnostic status. Do not expose server stderr or credential values.
  • Missing tools: use the advertised inventory and server feature gates. Do not invent tools or silently enable disabled server features.
  • Failed/unconfirmed checkpoint: inspect availability and the confirmed path. /reload reconciles pending intents by reading; it is not a blind write retry.
  • No project: automatic memory is intentionally off, not broken.
  • To disable automatic memory, apply the tools-only overlay with approval and explain the old-lifecycle shutdown caveat before reload. Existing notes remain.

Finish with: chosen policy and destination, config path, compatible launch command, verified stages, remaining blockers, and /bm-status, /bm-orient, /bm-checkpoint, /bm-remember. No invented save confirmations or claims to have changed the current Tau session through a reply.

Frequently asked questions

What does the Basic Memory Setup AI skill do?

Guide Basic Memory setup in Tau. Use when a user wants to install or configure the Tau memory extension, choose a memory destination or capture policy, verify connectivity, or troubleshoot setup. Check compatibility and obtain approval before installation, configuration changes, or test writes.

Why use Basic Memory Setup on TypingMind?

Because you install it once and use it with any model. Basic Memory Setup is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Basic Memory Setup in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/basicmachines-co/basic-memory/tree/main/integrations/tau/skills/basic-memory-setup. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Basic Memory Setup?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Basic Memory Setup?

As many as you like. As long as a model supports skills, you can use Basic Memory Setup with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Basic Memory Setup AI skill free?

Yes. It is published on GitHub by basicmachines-co under the AGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇