Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a74bebc
docs(claude-code): add design doc for the Claude Code plugin
Sep 10, 2026
e59d108
docs(claude-code): add the implementation plan and transcript fixture
Sep 10, 2026
b73282e
feat(claude-code): scaffold plugin manifests, constants and test harness
Sep 10, 2026
17887bc
feat(claude-code): resolve config from env, userConfig and defaults
Sep 10, 2026
aa104ae
feat(claude-code): derive app, project, user and agent ids
Sep 10, 2026
1053ce9
feat(claude-code): add the EverOS v2 memory API client
Sep 10, 2026
02ec91b
feat(claude-code): build search queries and render the memory block
Sep 10, 2026
bf80f9f
feat(claude-code): map Claude Code transcripts to EverOS messages
Sep 10, 2026
d5d9e62
feat(claude-code): add session state and the fail-open hook runtime
Sep 10, 2026
e0eb1bc
feat(claude-code): recall memory into every prompt
Sep 10, 2026
5ec3348
feat(claude-code): capture each turn and seal the session buffer
Sep 10, 2026
7e135d1
feat(claude-code): detect or start a local EverOS at session start
Sep 10, 2026
96830fc
feat(claude-code): add the status and search skills
Sep 10, 2026
aae2490
test(claude-code): add end-to-end acceptance against a real EverOS
Sep 10, 2026
36e5cc0
fix(claude-code): capture the reply, widen recall, seal abandoned ses…
Sep 10, 2026
519e3c9
docs(claude-code): document install, config and verification
Sep 10, 2026
78f3cd1
fix(claude-code): close a prompt-injection escape and eight review fi…
Sep 10, 2026
112e97a
fix(claude-code): run the test files by path, not by glob
Sep 10, 2026
2d8c848
fix(claude-code): say so when EverOS is not on this machine
Sep 10, 2026
8e62a2e
docs(claude-code): align the recorded constants with the code
Sep 10, 2026
49d8f56
docs: drop the implementation plan from the tree
Sep 10, 2026
065021e
fix(claude-code): warn once per session, not once per hook
Sep 10, 2026
e96d5f2
ci(claude-code): validate the manifests, and fix design-doc drift
Sep 11, 2026
8afde7e
fix(claude-code): drop the warm-up, correct two claims I had not veri…
Sep 11, 2026
1771014
fix(claude-code): record the seal before sending it, and correct why
Sep 14, 2026
d98544a
test(claude-code): make the double enforce the contract, pin what mut…
Sep 14, 2026
97765b6
test(claude-code): an end-to-end suite driven by real Claude Code
Sep 14, 2026
ae0d532
fix(claude-code): stop injecting the same memory three times
Sep 15, 2026
fe7c64a
fix(claude-code): defects an adversarial pass and a real run turned up
Sep 15, 2026
e6bf577
fix(claude-code): four defects a three-angle self-review turned up
Sep 15, 2026
aea81f8
fix(claude-code): report a half-dead recall, and stop the harness lying
Sep 15, 2026
f30f75c
fix(claude-code): seal abandoned sessions concurrently, not one by one
Sep 15, 2026
c0e265f
fix(claude-code): ask for the developer profile every tenth turn, not…
Sep 15, 2026
7b15789
test(claude-code): never let a test fall through to the real data dir…
Sep 15, 2026
89cd6f2
test(claude-code): drive /clear, a compaction, and a whole conversati…
Sep 16, 2026
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
19 changes: 19 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "everos",
"description": "Official EverMind AI plugins for Claude Code, backed by a local EverOS memory server.",
"owner": {
"name": "EverMind AI",
"email": "support@evermind.ai",
"url": "https://evermind.ai/"
},
"plugins": [
{
"name": "everos",
"source": "./claude-code",
"description": "EverOS memory for Claude Code - automatic recall, capture and session seal against a local EverOS server.",
"version": "0.1.0",
"homepage": "https://github.com/EverMind-AI/Plugins/tree/main/claude-code",
"license": "Apache-2.0"
}
]
}
77 changes: 77 additions & 0 deletions .github/workflows/claude-code.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Claude Code plugin

on:
push:
branches: [main]
paths:
- "claude-code/**"
- ".claude-plugin/**"
- ".github/workflows/claude-code.yml"
pull_request:
paths:
- "claude-code/**"
- ".claude-plugin/**"
- ".github/workflows/claude-code.yml"
workflow_dispatch:

permissions:
contents: read

concurrency:
group: claude-code-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: Node ${{ matrix.node }}
runs-on: ubuntu-24.04
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
node: ["20.19.0", "22.22.3"]
defaults:
run:
working-directory: claude-code
steps:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: ${{ matrix.node }}
- name: Assert zero dependencies
run: |
node -e '
const p = require("./package.json");
for (const k of ["dependencies", "devDependencies", "peerDependencies"]) {
if (p[k] && Object.keys(p[k]).length) {
console.error(`${k} must stay empty, found: ${Object.keys(p[k])}`);
process.exit(1);
}
}
'
- name: Run tests
run: npm test

validate:
name: Plugin manifests
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: "22.22.3"
- name: Install the Claude Code CLI
run: npm install -g @anthropic-ai/claude-code
- name: Validate the plugin and the marketplace
run: |
claude plugin validate ./claude-code --strict
claude plugin validate ./.claude-plugin/marketplace.json --strict
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ app.
| Plugin | Host | Install | Status |
|---|---|---|---|
| [`openclaw/`](./openclaw) | [OpenClaw](https://docs.openclaw.ai) | [`@everos-ai/openclaw-plugin`](https://www.npmjs.com/package/@everos-ai/openclaw-plugin) on npm — one-command setup: `npx --yes --package @everos-ai/openclaw-plugin everos-setup` | 🚚 scope move — first `@everos-ai` publish pending (previously `@evermind-ai/openclaw-plugin`, 3.0.2) |
| [`claude-code/`](./claude-code) | [Claude Code](https://code.claude.com) | `claude plugin marketplace add EverMind-AI/Plugins` then `claude plugin install everos@everos --scope user` | 🧪 built — pre-release verification |
| [`hermes/`](./hermes) | [Hermes Agent](https://github.com/NousResearch/hermes-agent) | `hermes plugins install EverMind-AI/plugins/hermes` | 🧪 built — pre-release verification |
| [`dsh/`](./dsh) | [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) | `dsh plugin --profile web add @everos-ai/dsh-plugin` | 🧪 built — pre-release verification |
| [`dify/`](./dify) | [Dify](https://dify.ai) | Package with the Dify CLI, then upload the `.difypkg` in Dify | 🧪 built — Marketplace submission pending |
| [`dify_cloud/`](./dify_cloud) | [Dify](https://dify.ai) | Configure an EverOS Cloud API URL and API Key after installation | 🧪 built — Marketplace submission pending |

## Integration models

- **Agent hosts** such as OpenClaw, Hermes, and DSH automate the recall → capture →
seal lifecycle and fail open when EverOS is unavailable.
- **Agent hosts** such as Claude Code, OpenClaw, Hermes, and DSH automate the
recall → capture → seal lifecycle and fail open when EverOS is unavailable.
- **Workflow platforms** such as Dify expose explicit search and add tools, so
builders decide exactly where memory runs in a workflow.

Expand Down Expand Up @@ -78,6 +79,10 @@ integrations into one open-source ecosystem.
<th colspan="2"><a href="https://github.com/EverMind-AI/plugins">Integrations</a></th>
</tr>
<tr>
<td><strong><a href="https://code.claude.com">Claude Code</a></strong></td>
<td><a href="https://github.com/EverMind-AI/plugins/tree/main/claude-code">Claude Code plugin</a> for automatic recall, full-trajectory capture, and session sealing.</td>
</tr>
<tr>
<td><strong><a href="https://docs.openclaw.ai">OpenClaw</a></strong></td>
<td><a href="https://github.com/EverMind-AI/plugins/tree/main/openclaw">OpenClaw plugin</a> for automatic recall, capture, and session-memory lifecycle management.</td>
</tr>
Expand Down
25 changes: 25 additions & 0 deletions claude-code/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "everos",
"version": "0.1.0",
"description": "EverOS memory for Claude Code. Recalls relevant memories before every prompt, saves each finished turn with its full tool-call trajectory, and seals the session on exit. Backed by a local EverOS server.",
"author": {
"name": "EverMind AI",
"url": "https://evermind.ai/"
},
"homepage": "https://github.com/EverMind-AI/Plugins/tree/main/claude-code",
"license": "Apache-2.0",
"keywords": ["memory", "recall", "persistence", "everos", "local-first"],
"userConfig": {
"base_url": {
"type": "string",
"title": "EverOS base URL",
"description": "Address of your local EverOS server. Leave as-is unless you moved it.",
"default": "http://127.0.0.1:8000"
},
"everos_dir": {
"type": "directory",
"title": "EverOS checkout directory",
"description": "Only needed when 'everos' is not on your PATH - point this at your EverOS checkout and set EVEROS_CC_START_CMD to 'uv run everos server start'. Leave empty otherwise."
}
}
}
Loading