Skip to main content

Copilot memory persistence - just an installer, no dependencies

Project description

Canon Keeper

Copilot memory persistence - teach Copilot to remember learnings across sessions.

Zero dependencies! Just an installer that sets up copilot-instructions.md.

Install

pip install canon-keeper
python -m canon_keeper install

Or with pipx (no venv needed):

pipx run canon-keeper

That's it! The installer creates .github/copilot-instructions.md with:

  • Memory Persistence Protocol (@History directive)
  • Best practices template
  • Session Learnings Log table

Usage

In any Copilot chat, say:

@History save what we learned
save this
remember this
add to memory

Copilot will:

  1. Extract learnings from the conversation
  2. Check for duplicates in the Session Learnings Log
  3. Append new learnings to copilot-instructions.md
  4. Report what was saved/skipped

How It Works

No MCP server. No API keys. No runtime dependencies.

The installer just creates a copilot-instructions.md file with a directive that tells Copilot:

  1. When you see @History, extract learnings from the conversation
  2. Read the existing Session Learnings Log
  3. Skip duplicates
  4. Append new rows to the table

Copilot does all the work using its built-in capabilities.

Manual Setup

If you prefer not to use pip, just copy this to .github/copilot-instructions.md:

### Memory Persistence Protocol (@History) - CRITICAL
**Rule:** When the user includes `@History`, `save this`, `remember this`, or `add to memory`:

1. **Extract Learnings:**
   - Analyze the conversation for technical decisions, architectural choices, workarounds
   - Format each as: `| Date | Topic | Decision | Rationale |`

2. **Check for Duplicates:**
   - Read the current `copilot-instructions.md` file
   - Skip any learning semantically equivalent to an existing entry

3. **Append New Learnings:**
   - For each non-duplicate, append a row to the Session Learnings Log table
   - Use today's date (YYYY-MM-DD format)

4. **Report to User:**
   - "✅ Saved X new learning(s): [topics]"
   - "⏭️ Skipped Y duplicate(s): [topics]"

## Session Learnings Log
| Date | Topic | Decision | Rationale |
|------|-------|----------|----------|

Example Session Learnings Log

After a few sessions, your log might look like:

Date Topic Decision Rationale
2026-01-18 MCP Config Format Use "servers" key, not "mcpServers" VS Code MCP expects this format
2026-01-18 Python Venv Use absolute paths in configs ${workspaceFolder} doesn't expand
2026-01-18 Error Handling Fail fast with clear messages Easier debugging

Options

python -m canon_keeper install --workspace /path/to/project  # Specify workspace
python -m canon_keeper install --force                       # Overwrite existing file

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canon_keeper-0.2.0.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

canon_keeper-0.2.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file canon_keeper-0.2.0.tar.gz.

File metadata

  • Download URL: canon_keeper-0.2.0.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for canon_keeper-0.2.0.tar.gz
Algorithm Hash digest
SHA256 87ee351d97dcfeb6416575421d955d88ba9438813d3024642e4dacc8152eb39b
MD5 8fc810a3aa225b3c0907b16983965472
BLAKE2b-256 4ce84f3b84211b97f41679aa40f97db7ad15f51f5a0eb652b9f007e132e2a4e1

See more details on using hashes here.

File details

Details for the file canon_keeper-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: canon_keeper-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for canon_keeper-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ee8ee8d38ee323903ee911fc7335ef5a03a53fc5dc035482a0a6dfb3bdde3ec
MD5 5d1aaa27ac770eb04dba38821573b1a4
BLAKE2b-256 0d4e31dd8dc11d6e5907791eec1e7fb73a27d8d93920450610f3db39e70bb351

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page