Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "tree-ring-memory",
"interface": {
"displayName": "Tree Ring Memory"
},
"plugins": [
{
"name": "tree-ring-memory",
"source": {
"source": "local",
"path": "./plugins/tree-ring-memory"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Developer Tools"
}
]
}
42 changes: 42 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"name": "tree-ring-memory",
"owner": {
"name": "TerminallyLazy",
"url": "https://github.com/TerminallyLazy"
},
"description": "Claude Code marketplace for Tree Ring Memory v0.14 local-first recall and receipt-backed harness readiness.",
"version": "0.3.0",
"plugins": [
{
"name": "tree-ring-memory",
"source": "./plugins/tree-ring-memory",
"displayName": "Tree Ring Memory",
"description": "Local-first memory lifecycle and receipt-backed harness guidance for Claude Code using Tree Ring Memory v0.14+.",
"author": {
"name": "TerminallyLazy",
"url": "https://github.com/TerminallyLazy"
},
"homepage": "https://terminallylazy.github.io/Tree-Ring-Memory/",
"repository": "https://github.com/TerminallyLazy/Tree-Ring-Memory",
"license": "MIT",
"category": "Workflow Orchestration",
"tags": [
"agent-memory",
"harness-activation",
"multi-agent",
"local-first",
"privacy",
"recall",
"claude-code"
],
"keywords": [
"agent-memory",
"ai-memory",
"local-first",
"privacy",
"recall",
"sqlite"
]
}
]
}
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v5

- name: Plugin packages
run: python3 scripts/validate-plugin-packages.py

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
Expand Down
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,36 @@ same-host local filesystem with matching project-store identity. It does not
claim safe SQLite sharing across hosts, NFS/network filesystems, or containers
on different hosts.

### Install the agent guidance plugin (optional)

The repository includes an instruction-only package for ChatGPT/Codex and
Claude Code under `plugins/tree-ring-memory/`. It adds the reviewed Tree Ring
workflow, DOX dry-run guidance, and installed-runtime certification commands;
it does not bundle the CLI, the full source certification script, or an MCP
server.

Add the marketplace to Codex:

```bash
codex plugin marketplace add TerminallyLazy/Tree-Ring-Memory
```

Then restart the ChatGPT desktop app and install Tree Ring Memory from the
Plugins Directory. The repo-local `.agents/plugins/marketplace.json` is also
available automatically when this repository is open in a supported Work or
Codex surface.

Add and install the same package in Claude Code:

```text
/plugin marketplace add TerminallyLazy/Tree-Ring-Memory
/plugin install tree-ring-memory@tree-ring-memory
```

The plugin still requires Tree Ring Memory CLI v0.14.0 or newer. See the
[plugin README](plugins/tree-ring-memory/README.md) for the platform manifests,
commands, DOX contract flow, and certification boundary.

### Agent Zero uses its separate plugin

Agent Zero is intentionally a two-part setup. `tree-ring init` creates the
Expand Down
26 changes: 26 additions & 0 deletions plugins/tree-ring-memory/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "tree-ring-memory",
"displayName": "Tree Ring Memory",
"version": "0.3.0",
"description": "Local-first memory lifecycle and receipt-backed harness guidance for Claude Code using Tree Ring Memory v0.14+.",
"author": {
"name": "TerminallyLazy",
"url": "https://github.com/TerminallyLazy"
},
"homepage": "https://terminallylazy.github.io/Tree-Ring-Memory/",
"repository": "https://github.com/TerminallyLazy/Tree-Ring-Memory",
"license": "MIT",
"keywords": [
"claude-code",
"agent-memory",
"ai-memory",
"local-first",
"harness-activation",
"multi-agent",
"privacy",
"recall",
"sqlite",
"skills"
],
"skills": "./skills/"
}
48 changes: 48 additions & 0 deletions plugins/tree-ring-memory/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"name": "tree-ring-memory",
"version": "0.3.1",
"description": "Local-first memory lifecycle and receipt-backed harness guidance for coding agents using Tree Ring Memory v0.14+.",
"author": {
"name": "TerminallyLazy",
"url": "https://github.com/TerminallyLazy"
},
"homepage": "https://github.com/TerminallyLazy/Tree-Ring-Memory",
"repository": "https://github.com/TerminallyLazy/Tree-Ring-Memory",
"license": "MIT",
"keywords": [
"codex",
"memory",
"agent-memory",
"multi-agent",
"harness-activation",
"idempotency",
"local-first",
"recall",
"sqlite",
"skills"
],
"skills": "./skills/",
"interface": {
"displayName": "Tree Ring Memory",
"shortDescription": "Local-first memory lifecycle guidance for Codex agents.",
"longDescription": "Tree Ring Memory gives coding agents a lifecycle-aware practice for project recall, durable decisions, receipt-backed harness readiness, same-host fan-out/fan-in, idempotent worker writes, coordinator-authorized shared publication, explicit forgetting, and privacy-safe memory capture using Tree Ring Memory v0.14 or newer.",
"developerName": "TerminallyLazy",
"category": "Developer Tools",
"capabilities": [
"Read",
"Write",
"Interactive"
],
"websiteURL": "https://terminallylazy.github.io/Tree-Ring-Memory/",
"privacyPolicyURL": "https://github.com/TerminallyLazy/Tree-Ring-Memory/blob/main/plugins/tree-ring-memory/PRIVACY.md",
"termsOfServiceURL": "https://github.com/TerminallyLazy/Tree-Ring-Memory/blob/main/plugins/tree-ring-memory/TERMS.md",
"defaultPrompt": [
"Recall durable project context before changing release behavior.",
"Capture this validated lesson without storing a transcript.",
"Check Tree Ring harness readiness and explain any non-active state."
],
"brandColor": "#2F7D5C",
"composerIcon": "./assets/tree-ring-memory-logo.png",
"logo": "./assets/tree-ring-memory-logo.png"
}
}
21 changes: 21 additions & 0 deletions plugins/tree-ring-memory/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 TerminallyLazy

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
24 changes: 24 additions & 0 deletions plugins/tree-ring-memory/PRIVACY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Tree Ring Memory Plugin Privacy Notice

Effective August 23, 2026

The Tree Ring Memory plugin is an instruction package for AI coding agents. It
does not operate a hosted service, create a user account, collect analytics,
send telemetry, or include a remote MCP server.

When an agent runs the separately installed Tree Ring Memory CLI, the CLI stores
the memory content the user chooses in a local SQLite database under the
configured Tree Ring root. The project does not receive that database or its
contents. Data leaves the local environment only when the user or another tool
explicitly exports, syncs, publishes, or otherwise transmits it.

The plugin instructs agents to avoid transcripts, credentials, secrets, private
keys, raw chain-of-thought, and unnecessary sensitive personal data. It also
provides explicit redaction, deletion, supersession, audit, and consolidation
workflows. These safeguards do not replace the privacy and data-use terms of the
AI host, operating system, source-control provider, or any other tool the user
chooses to invoke.

Support and privacy questions may be filed at
<https://github.com/TerminallyLazy/tree-ring-memory-codex-plugin/issues>.
Do not include secrets or private memory content in a public issue.
83 changes: 83 additions & 0 deletions plugins/tree-ring-memory/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Tree Ring Memory Agent Plugin

This directory is the repository-distributed Tree Ring Memory plugin for
ChatGPT/Codex and Claude Code. It packages instruction files only; the local
Tree Ring Memory CLI remains the runtime and data owner.

The Codex manifest is version `0.3.1`. The Claude Code manifest is version
`0.3.0`. Both target Tree Ring Memory CLI `0.14.0` or newer and share the same
reviewed wrapper skill.

The package does not run a background service, scrape chats, install hooks, or
ship an MCP server. The active agent decides when a local, source-linked,
privacy-safe memory action is warranted.

## Install Tree Ring Memory

On macOS ARM64:

```bash
brew tap TerminallyLazy/tree-ring
brew install tree-ring
tree-ring --version
```

For other platforms, use the
[canonical installation guide](https://github.com/TerminallyLazy/Tree-Ring-Memory#install).
The plugin must not install or upgrade the CLI, edit shell configuration, or
claim a memory action ran without explicit permission and observed output.

## Install In ChatGPT And Codex

Add this repository as a marketplace:

```bash
codex plugin marketplace add TerminallyLazy/Tree-Ring-Memory
```

Restart the ChatGPT desktop app, open the Plugins Directory, select the Tree
Ring Memory marketplace, and install Tree Ring Memory. When the repository is
already open in Work mode or Codex, `.agents/plugins/marketplace.json` also
exposes the repo-scoped package.

OpenAI ZIP submission remains a separate public-directory channel. Its
skills-only package intentionally includes the logo and composer icon but no
`interface.screenshots` field.

## Install In Claude Code

From Claude Code:

```text
/plugin marketplace add TerminallyLazy/Tree-Ring-Memory
/plugin install tree-ring-memory@tree-ring-memory
```

The package adds the `tree-ring-memory` skill and these commands:

- `/tree-ring-memory:tree-ring-recall`
- `/tree-ring-memory:tree-ring-capture`
- `/tree-ring-memory:tree-ring-audit`
- `/tree-ring-memory:tree-ring-status`
- `/tree-ring-memory:tree-ring-dox-sync`
- `/tree-ring-memory:tree-ring-certify`

## DOX And Certification Boundaries

The wrapper skill includes a DOX contract flow. It reads the applicable live
`AGENTS.md` chain, previews `tree-ring dox sync` before persistence, keeps
source contracts authoritative, and never rewrites them.

Installed runtimes can produce bounded evidence with
`tree-ring integrations certify` and `tree-ring recall-quality`. The full
`scripts/certify-tree-ring.sh` release suite depends on the Rust workspace,
fixtures, installer, and build tools in a complete Tree Ring Memory source
checkout. It is intentionally not copied into this plugin. The TUI and plugin
may point to that command, but neither silently runs it nor turns its absence
into a false certification claim.

## Security

This plugin ships instructions and local assets only. It includes no remote MCP
server, webhooks, analytics, credentials, or networked runtime code. See
[PRIVACY.md](PRIVACY.md), [SECURITY.md](SECURITY.md), and [TERMS.md](TERMS.md).
30 changes: 30 additions & 0 deletions plugins/tree-ring-memory/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Security Policy

## Supported Versions

The `main` branch is the supported version of this Codex plugin wrapper.

The Tree Ring Memory framework and CLI are maintained in the canonical
repository:

<https://github.com/TerminallyLazy/Tree-Ring-Memory>

## Reporting A Vulnerability

Open a private security advisory on GitHub when available, or open a public
issue with sensitive details removed:

<https://github.com/TerminallyLazy/tree-ring-memory-codex-plugin/issues>
Comment thread
coderabbitai[bot] marked this conversation as resolved.

Do not include secrets, tokens, private memory contents, or personal data in a
public issue.

## Data Handling

This wrapper plugin contains guidance files only. It does not run a background
service, include remote MCP servers, collect telemetry, or store credentials.

Tree Ring Memory is designed for explicit agent-mediated memory actions. Store
only concise decisions, lessons, warnings, and evidence references that are
useful, source-linked, and privacy-safe. Do not store raw transcripts, secrets,
private keys, tokens, or raw chain-of-thought.
20 changes: 20 additions & 0 deletions plugins/tree-ring-memory/TERMS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Tree Ring Memory Plugin Terms of Use

Effective August 23, 2026

The Tree Ring Memory plugin is open-source software distributed under the MIT
License. By using it, you agree to the license and these operational terms.

The plugin provides agent instructions only. It is not a hosted memory service,
backup service, access-control system, medical or legal record system, or
guarantee that an AI host will follow every instruction. The user is responsible
for choosing what to store, maintaining backups, controlling local filesystem
access, reviewing agent actions, and complying with applicable policies and
law.

Tree Ring Memory is provided without warranty, including warranties of fitness,
availability, accuracy, non-infringement, or data durability, to the maximum
extent permitted by law. The limitations in the included MIT License apply.

Questions may be filed at
<https://github.com/TerminallyLazy/tree-ring-memory-codex-plugin/issues>.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading