Generated banner for Pensyve
Generated logo for Pensyve

Pensyve

Memory serverOfficial Major 7 Apps LLC project

Created by Major 7 Apps LLC

Published in major7apps/pensyve. Publisher page

100 GitHub stars

What it is

Universal memory runtime for AI agents
— the description by Major 7 Apps LLC

AutoGineer overview, from the brain’s own files

Pensyve is an open-source memory runtime designed to provide AI agents with persistent, cross-session recall. It functions as a memory layer that stores facts, conversations, observations, and action outcomes outside of the language model itself. The system is built in Rust and utilizes SQLite for local storage, with optional PostgreSQL support. It supports semantic search via locally run embedding models and provides multiple interfaces, including a Python SDK, an MCP server for integration with tools like Claude Code and Cursor, and an HTTP gateway for REST-based access. Pensyve is designed to be self-hosted, requiring no external accounts or API keys for local operation.

How it works

Memory model: Hybrid

AutoGineer overview, from the brain’s own files

Pensyve operates as a memory server that stores data in a local SQLite database or a PostgreSQL instance. It organizes information into four categories: facts (semantic memory), conversations (episodic memory), action outcomes (procedural memory), and observations. The system uses embedding models to enable semantic search across these records. Agents interact with Pensyve through various SDKs or the MCP protocol to save and retrieve information, which is then injected into the agent's prompt to provide context across different sessions and processes.

Folders
FolderRoleFiles
.githubagent-config10
docsdocs15
scriptsscripts3
teststests11
.agentsfolder1
.claude-pluginfolder1
benchmarksfolder8
integrationsfolder324
loadtestfolder3
pensyve-benchmarksfolder17
pensyve-clifolder3
pensyve-corefolder90
pensyve-gofolder10
pensyve-mcpfolder6
pensyve-mcp-gatewayfolder36
pensyve-mcp-toolsfolder5
pensyve-pythonfolder19
pensyve-tsfolder11
pensyve-wasmfolder4
pensyve_serverfolder3
resultsfolder6

Requirements

Runtimes: Python >=3.10, Rust

Databases: PostgreSQL, SQLite

Works with: Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Kiro, OpenCode, Amp, Cline, JetBrains Junie, Devin (ex-Windsurf)

Set it up

  1. This brain runs code automatically: 8 hooks (claude-code, codex). Review integrations/claude-code/hooks/hooks.json, integrations/codex-plugin/hooks/hooks.json before opening the folder in Claude Code. No step below turns a hook on for you.

    • integrations/claude-code/hooks/hooks.json: cat "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.md"
    • integrations/claude-code/hooks/hooks.json: cat "${CLAUDE_PLUGIN_ROOT}/hooks/post-tool-write-edit.md"
    • integrations/claude-code/hooks/hooks.json: cat "${CLAUDE_PLUGIN_ROOT}/hooks/post-tool-bash.md"
    • integrations/claude-code/hooks/hooks.json: cat "${CLAUDE_PLUGIN_ROOT}/hooks/pre-compact.md"
    • integrations/claude-code/hooks/hooks.json: cat "${CLAUDE_PLUGIN_ROOT}/hooks/stop.md"
    • integrations/claude-code/hooks/hooks.json: cat "${CLAUDE_PLUGIN_ROOT}/hooks/user-prompt-submit.md"
    • integrations/codex-plugin/hooks/hooks.json: cat "${PLUGIN_ROOT}/hooks/session-start.md"
    • integrations/codex-plugin/hooks/hooks.json: cat "${PLUGIN_ROOT}/hooks/user-prompt-submit.md"
  2. Not scanned by AutoGineerThe author’s MCP configuration (README.md) also starts it in a way AutoGineer does not offer. Read that file: AutoGineer did not scan that path; what it runs is listed under “This brain runs”. https://github.com/major7apps/pensyve/blob/d2c56fa44d1ee7b2d504f0008c6b9c860bc7d25f/README.md
  3. Not scanned by AutoGineerThe author’s MCP configuration (smithery.yaml) also starts it in a way AutoGineer does not offer. Read that file: AutoGineer did not scan that path; what it runs is listed under “This brain runs”. https://github.com/major7apps/pensyve/blob/d2c56fa44d1ee7b2d504f0008c6b9c860bc7d25f/smithery.yaml
  4. Not scanned by AutoGineerThe author’s README also describes installing it as the PyPI package pensyve. Read its install section: AutoGineer did not scan that path. https://github.com/major7apps/pensyve/blob/d2c56fa44d1ee7b2d504f0008c6b9c860bc7d25f/README.md#python-quick-start
  5. Not scanned by AutoGineerThe author also offers a container image (ghcr.io/major7apps/pensyve-mcp:5.0.0). https://github.com/major7apps/pensyve/tree/d2c56fa44d1ee7b2d504f0008c6b9c860bc7d25f
  6. Created by Major 7 Apps LLC. Published in major7apps/pensyve. Licence: Apache License 2.0.

Usage

AutoGineer overview, from the brain’s own files

  • Add persistent memory to Python-based AI agents using the Python SDK.
  • Connect AI coding assistants like Claude Code, Cursor, or Codex to a shared memory store via the MCP server.
  • Share a centralized memory store across multiple services using the HTTP gateway.
  • Integrate with LangChain or LangGraph frameworks for enhanced agent memory capabilities.
  • Perform semantic search and retrieval of past conversations or facts via the command-line interface.
“Save a fact about the user's preference for dark mode.”
The agent stores the fact in the local SQLite database, allowing it to recall this preference in future sessions.
“Recall previous editor settings for the current project.”
The agent retrieves relevant facts or conversation history from the memory store and uses them to inform its current task.

Documentation by Major 7 Apps LLC

Image: Pensyve logo

Pensyve

Image: CI Image: License: Apache 2.0 Image: Python 3.10+ Image: Rust 1.94+

Pensyve is an open-source runtime for persistent AI agent memory. It stores facts, conversations, observations, and action outcomes so an agent can retrieve them in later sessions. You can use it through Python, a Model Context Protocol (MCP) server, a command-line tool, or a REST API.

The Rust engine uses SQLite for local storage and runs embedding models locally to search by meaning. TypeScript and Go clients connect to a gateway you run yourself. Local use does not require a Pensyve account or API key. Your application or client integration calls Pensyve to save and retrieve memories.

Choose a setup

Use caseStart here
Add persistent memory to a Python agentPython quick start
Give Claude Code, Cursor, or Codex access to memory toolsMCP server and client setup guides
Share a memory store through TypeScript, Go, or RESTHTTP gateway
Use a LangChain or LangGraph adapterPython integration or TypeScript integration

Project status

Pensyve Cloud closed on October 1, 2026. The open-source project continues in this repository under the Apache 2.0 license, with the engine, SDKs, integrations, and documentation available here.

Pensyve is in maintenance mode. Releases cover security fixes and dependency updates, with no new features planned. See the maintenance policy for contribution and support expectations. If you have a saved Cloud export, the self-hosting guide explains how to use it with your own gateway.

What you can do

  • Store facts about users, projects, or other named entities, and record conversations as episodes.

  • Search memories using text matching, embeddings, and relationships between entities.

  • Record observations and action outcomes, and use consolidation to promote repeated facts and update memory retention.

  • Keep data in local SQLite storage, or run the HTTP gateway with SQLite or PostgreSQL.

Embedding models may download when first loaded unless they are already cached. Running without network access requires preparing the model files first. See the model setup and deployment guide.

How agent memory works

Pensyve stores memory outside the language model. Your application saves facts or conversations, searches for relevant records, and adds the results to a later prompt. Reusing the same storage path and namespace lets the agent retrieve information across processes and sessions. Saving a memory does not train the language model or change its weights.

The store holds four kinds of records: facts (semantic memory), conversations (episodic memory), action outcomes (procedural memory), and observations. Your integration decides what to record and when to retrieve it. Recording a conversation does not automatically turn it into a successful procedure. See how storage and retrieval work and the usage recipes for the APIs and their limits.

Python quick start

Python 3.10 or newer is required.

pip install pensyve

Create a local store, save a fact, and retrieve it:

import pensyve

p = pensyve.Pensyve(path="./memories", namespace="my-agent")
user = p.entity("user", kind="user")

p.remember(
    entity=user,
    fact="Prefers dark mode and vim keybindings",
    confidence=0.95,
)

for memory in p.recall("editor preferences", entity=user):
    print(memory.content)

Reuse the same path and namespace in a later process to retrieve saved memories. The Python SDK runs the engine in your process and does not need the HTTP gateway.

You can also record a conversation with the same p and user:

with p.episode(user) as episode:
    episode.message("user", "Use dark mode in my editor")
    episode.message("agent", "I updated the editor settings")
    episode.outcome("success")

groups = p.recall_grouped("editor settings", limit=10)
for group in groups:
    for memory in group.memories:
        print(memory.content)

recall_grouped() groups results by source session for use in an agent's prompt. See the Python SDK guide and recipes for more examples.

MCP server

Pensyve's local MCP memory server lets clients such as Claude Code, Codex, and Cursor store and retrieve memories across sessions. From a checkout of this repository, install the server with Rust 1.94 or newer:

git clone https://github.com/major7apps/pensyve.git
cd pensyve
cargo install --path pensyve-mcp --locked

Make sure Cargo's binary directory is on your client's PATH, then add a stdio server entry to its MCP configuration:

{
  "mcpServers": {
    "pensyve": {
      "command": "pensyve-mcp",
      "args": ["--stdio"],
      "env": {
        "PENSYVE_NAMESPACE": "my-project"
      }
    }
  }
}

The server provides tools such as pensyve_remember, pensyve_recall, pensyve_observe, and pensyve_inspect. It stores data locally and needs no API key. The configuration file location depends on your client. See the MCP setup guide and integration guides.

HTTP gateway

Run the gateway to access Pensyve over REST or MCP HTTP, including from the TypeScript and Go SDKs. From the repository root, start a local instance:

HOST=127.0.0.1 PENSYVE_API_KEYS=psy_local_example \
  cargo run --release -p pensyve-mcp-gateway

In another terminal, save and recall a fact:

curl http://localhost:3000/v1/remember \
  -H "Authorization: Bearer psy_local_example" \
  -H "Content-Type: application/json" \
  -d '{"entity":"user","fact":"Prefers Python","confidence":0.95}'

curl http://localhost:3000/v1/recall \
  -H "Authorization: Bearer psy_local_example" \
  -H "Content-Type: application/json" \
  -d '{"query":"programming language","entity":"user"}'

The MCP HTTP endpoint is http://localhost:3000/mcp. Use the same API key in your client's Authorization: Bearer header.

The example key is for local testing. For a deployment, choose your own key with the required psy_ prefix and configure HTTPS and allowed hosts. See the self-hosting guide, gateway configuration, and security documentation.

SDKs and integrations

The TypeScript and Go SDKs require a running gateway. Configure its URL and, when authentication is enabled, an API key from that gateway.

InterfaceInstallation or guide
Pythonpip install pensyve, SDK guide
TypeScriptnpm install @pensyve/sdk, SDK guide
Gogo get github.com/major7apps/pensyve/pensyve-go/v5@latest, SDK guide
Claude CodePlugin setup
CursorMCP setup and rules
CodexPlugin setup
LangChain and LangGraphPython adapter, TypeScript adapter
Other clients and frameworksIntegration index

Command-line tool

From the repository root, install the CLI and inspect its commands:

cargo install --path pensyve-cli --locked
pensyve --help
pensyve status
pensyve recall "editor preferences" --entity user

The binary is named pensyve. Its default output is JSON, and --format text selects text output. The CLI uses its own default local storage location; it does not automatically open the ./memories directory from the Python example. See the CLI source and command definitions for storage and namespace options.

Documentation

GuideContents
Documentation indexChoose a setup, find API guides, and identify historical plans
Getting startedSetup by client or SDK
Self-hostingGateway deployment, model files, backups, and saved Cloud exports
RecipesRecall, facts, episodes, observations, and other API examples
ArchitectureStorage, retrieval, and component boundaries
SecurityAuthentication, namespace isolation, and execution limits
ReliabilityTests and runtime guarantees
ChangelogRelease history and breaking changes

Development and contributions

Start with CONTRIBUTING.md for prerequisites and setup. From the repository root:

uv sync --extra dev
make build
make check

make build compiles Rust and builds the Python extension. make check runs the Rust and Python lint and test commands. TypeScript and Go have separate checks documented in the contribution guide.

Issues and pull requests follow the maintenance policy. Report security issues through private vulnerability reporting.

License

Pensyve is licensed under Apache 2.0.

integrations/claude-code/LICENSE

Shown as plain text.

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship made available under
      the License, as indicated by a copyright notice that is included in
      or attached to the work (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean, as submitted to the Licensor for inclusion
      in the Work by the copyright owner or by an individual or Legal Entity
      authorized to submit on behalf of the copyright owner. For the purposes
      of this definition, "submitted" means any form of electronic, verbal,
      or written communication sent to the Licensor or its representatives,
      including but not limited to communication on electronic mailing lists,
      source code control systems, and issue tracking systems that are managed
      by, or on behalf of, the Licensor for the purpose of tracking
      modifications made to the Work.

      "Contributor" shall mean Licensor and any Legal Entity on behalf of
      whom a Contribution has been received by the Licensor and included
      within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent Claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by the combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a cross-claim
      or counterclaim in a lawsuit) alleging that the Work or any other
      Contribution incorporated within the Work constitutes patent or
      contributor infringement, then any patent licenses granted to You
      under this License for that Work shall terminate as of the date such
      litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or Derivative
          Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, You must include a readable copy of the
          attribution notices contained within such NOTICE file, in
          at least one of the following places: within a NOTICE text
          file distributed as part of the Derivative Works; within
          the Source form or documentation, if provided along with the
          Derivative Works; or, within a display generated by the
          Derivative Works, if and wherever such third-party notices
          normally appear. The contents of the NOTICE file are for
          informational purposes only and do not modify the License.
          You may add Your own attribution notices within Derivative
          Works that You distribute, alongside or in addition to the
          NOTICE text from the Work, provided that such additional
          attribution notices cannot be construed as modifying the License.

      You may add Your own license statement for Your modifications and
      may provide additional grant of rights to use, copy, modify, merge,
      publish, distribute, sublicense, and/or sell copies of the
      Contribution and such Derivative Works.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or reproducing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or exemplary damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or all other
      commercial damages or losses), even if such Contributor has been
      advised of the possibility of such damages.

   9. Accepting Warranty or Liability. While redistributing the Work or
      Derivative Works thereof, You may choose to offer, and charge a fee
      for, acceptance of support, warranty, indemnity, or other liability
      obligations and/or rights consistent with this License. However, in
      accepting such obligations, You may offer only on behalf of You alone,
      and on a sole responsibility basis, not on behalf of any other
      Contributor, and only if You agree to indemnify, defend, and hold each
      Contributor harmless for any liability incurred by, or claims asserted
      against, such Contributor by reason of your accepting any such
      warranty or additional liability.

   END OF TERMS AND CONDITIONS
512 files · 482 not served here

Advantages

  • Provides persistent, cross-session memory that functions independently of the language model's training. evidence: README.md
  • Supports multiple integration methods including Python, MCP, and REST API for flexibility across different agent architectures. evidence: README.md

Limitations

  • Embedding models may require initial download, and running without network access requires pre-caching model files. evidence: README.md
  • The project is in maintenance mode, meaning no new features are planned, with updates limited to security and dependency maintenance. evidence: README.md

Security

Risk level: No risk found

This brain runs

Agent instructions that run or fetch something (48)

  • AGENTS.md: **`README.md`** — overview, install, quick-start examples.
  • AGENTS.md: **`docs/GETTING_STARTED.md`** — first-run walkthrough for new contributors.
  • AGENTS.md: make build # Full build (Rust + PyO3 into .venv)
  • AGENTS.md: make test # Rust + Python tests
  • AGENTS.md: make lint # clippy --workspace + ruff check + pyright
  • AGENTS.md: make format # cargo fmt + ruff format
  • AGENTS.md: make check # Rust + Python lint and tests; run SDK checks separately
  • AGENTS.md: .venv/bin/pytest tests/python/ -v # Python tests (requires `make build` first)
  • AGENTS.md: cargo run -p pensyve-mcp-gateway # HTTP gateway (port 3000)
  • AGENTS.md: cargo run -p pensyve-cli -- recall "q" # CLI
  • AGENTS.md: cargo run -p pensyve-mcp # MCP stdio server
  • AGENTS.md: Python env setup: `uv sync --extra dev && uv run maturin develop --manifest-path pensyve-python/Cargo.toml`
  • AGENTS.md: Use `git add` with specific filenames.
  • AGENTS.md: Run `make check` before pushing.
  • integrations/antigravity-plugin/skills/context-loader/SKILL.md: If the user explicitly opts into cross-entity discovery, run targeted recall queries with `types: ["episodic", "procedural", "semantic"]`, `limit: 5`, and label the results as top matches ranked by relevance/RRF score.
  • integrations/antigravity-plugin/skills/memory-informed-refactor/SKILL.md: Run multiple `pensyve_recall` queries to gather comprehensive context about the target within the shared recall budget:
  • integrations/antigravity-plugin/skills/memory-review/SKILL.md: If no entity is specified, run a broad `pensyve_recall` query with `"*"` (limit: 50) to discover entities, then inspect the top entities found.
  • integrations/antigravity-plugin/skills/session-memory/SKILL.md: Then run `pensyve_recall` with a query matching the sanitized candidate fact.
  • integrations/claude-code/skills/context-loader/SKILL.md: Run the following `pensyve_recall` queries to gather session context:
  • integrations/claude-code/skills/memory-informed-design/SKILL.md: If the design process revealed a reusable way to evaluate similar decisions (e.g., "run spike vs.
  • integrations/claude-code/skills/memory-informed-longitudinal-work/SKILL.md: | What you learned | Type | Example | |---|---|---| | Per-run outcome (what this run showed) | episodic | "Run N+1: V7r accuracy improved +3.5% with new threshold" | | Stable truth about the system | semantic | "Haiku classifier plateaus above temp 0.3" | | Reusable experiment procedure …[+83 chars]
  • integrations/claude-code/skills/memory-informed-longitudinal-work/SKILL.md: When a run ends with an unresolved question ("X improved but we don't know why"), capture it as an episodic observation with open-question provenance:
  • integrations/claude-code/skills/memory-informed-longitudinal-work/SKILL.md: Before Stop fires, briefly summarize (inline, 3-5 lines): what this run taught us vs.
  • integrations/claude-code/skills/memory-informed-refactor/SKILL.md: Run multiple `pensyve_recall` queries to gather comprehensive context about the target:
  • integrations/claude-code/skills/memory-review/SKILL.md: If no entity is specified, run a broad `pensyve_recall` query with `"*"` (limit: 50) to discover entities, then inspect the top entities found.
  • integrations/claude-code/skills/memory-review/SKILL.md: **Consolidation**: Suggest running `/consolidate` (this skill does not run consolidation directly).
  • integrations/claude-code/skills/session-memory/SKILL.md: Before storing, run `pensyve_recall` with a query matching the candidate fact to check for duplicates.
  • integrations/codex-plugin/AGENTS.md: | What you learned | Type | Call | |---|---|---| | Per-run outcome | episodic | `pensyve_observe(..., content: "[proactive/in-flight/tier-1] Run N+1: ...", source_entity: "codex", about_entity: <entity>, content_type: "text")` | | Stable truth | semantic | `pensyve_remember(entity, fac …[+280 chars]
  • integrations/codex-plugin/AGENTS.md: Before wrapping: summarize what this run taught vs.
  • integrations/codex-plugin/skills/context-loader/SKILL.md: Run the following `pensyve_recall` queries to gather session context:
  • integrations/codex-plugin/skills/memory-informed-refactor/SKILL.md: Run multiple `pensyve_recall` queries to gather comprehensive context about the target:
  • integrations/codex-plugin/skills/memory-review/SKILL.md: If no entity is specified, run a broad `pensyve_recall` query with `"*"` (limit: 50) to discover entities, then inspect the top entities found.
  • integrations/codex-plugin/skills/session-memory/SKILL.md: Before storing, run `pensyve_recall` with a query matching the candidate fact to check for duplicates.
  • integrations/hermes/AGENTS.md: | What you learned | Type | Call | |---|---|---| | Per-run outcome | episodic | `pensyve_observe(..., content: "[proactive/in-flight/tier-1] Run N+1: ...", source_entity: "hermes", about_entity: <entity>, content_type: "text")` | | Stable truth | semantic | `pensyve_remember(entity, fa …[+282 chars]
  • integrations/hermes/AGENTS.md: Before wrapping: summarize what this run taught vs.
  • integrations/openclaw-plugin/AGENTS.md: | What you learned | Type | Call | |---|---|---| | Per-run outcome | episodic | `pensyve_observe(..., content: "[proactive/in-flight/tier-1] Run N+1: ...", source_entity: "openclaw", about_entity: <entity>, content_type: "text")` | | Stable truth | semantic | `pensyve_remember(entity, …[+286 chars]
  • integrations/openclaw-plugin/AGENTS.md: Before wrapping: summarize what this run taught vs.
  • integrations/opencode-plugin/AGENTS.md: | What you learned | Type | Call | |---|---|---| | Per-run outcome | episodic | `pensyve_observe(..., content: "[proactive/in-flight/tier-1] Run N+1: ...", source_entity: "opencode", about_entity: <entity>, content_type: "text")` | | Stable truth | semantic | `pensyve_remember(entity, …[+286 chars]
  • integrations/opencode-plugin/AGENTS.md: Before wrapping: summarize what this run taught vs.
  • pensyve-ts/CLAUDE.md: Use `bun <file>` instead of `node <file>` or `ts-node <file>`
  • pensyve-ts/CLAUDE.md: Use `bun test` instead of `jest` or `vitest`
  • pensyve-ts/CLAUDE.md: Use `bun build <file.html|file.ts|file.css>` instead of `webpack` or `esbuild`
  • pensyve-ts/CLAUDE.md: Use `bun install` instead of `npm install` or `yarn install` or `pnpm install`
  • pensyve-ts/CLAUDE.md: Use `bun run <script>` instead of `npm run <script>` or `yarn run <script>` or `pnpm run <script>`
  • pensyve-ts/CLAUDE.md: Use `bunx <package> <command>` instead of `npx <package> <command>`
  • pensyve-ts/CLAUDE.md: Use `bun test` to run tests.
  • pensyve-ts/CLAUDE.md: Then, run index.ts
  • pensyve-ts/CLAUDE.md: bun --hot ./index.ts

MCP servers (2)

  • README.md (pensyve): pensyve-mcp --stdio
  • integrations/codex-plugin/.mcp.json (pensyve): pensyve-mcp --stdio

Hooks (8)

  • integrations/claude-code/hooks/hooks.json (SessionStart): cat "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.md"
  • integrations/claude-code/hooks/hooks.json (PostToolUse): cat "${CLAUDE_PLUGIN_ROOT}/hooks/post-tool-write-edit.md"
  • integrations/claude-code/hooks/hooks.json (PostToolUse): cat "${CLAUDE_PLUGIN_ROOT}/hooks/post-tool-bash.md"
  • integrations/claude-code/hooks/hooks.json (PreCompact): cat "${CLAUDE_PLUGIN_ROOT}/hooks/pre-compact.md"
  • integrations/claude-code/hooks/hooks.json (Stop): cat "${CLAUDE_PLUGIN_ROOT}/hooks/stop.md"
  • integrations/claude-code/hooks/hooks.json (UserPromptSubmit): cat "${CLAUDE_PLUGIN_ROOT}/hooks/user-prompt-submit.md"
  • integrations/codex-plugin/hooks/hooks.json (SessionStart): cat "${PLUGIN_ROOT}/hooks/session-start.md"
  • integrations/codex-plugin/hooks/hooks.json (UserPromptSubmit): cat "${PLUGIN_ROOT}/hooks/user-prompt-submit.md"

Attribution and licence

Created by
Major 7 Apps LLC
Declared authors
  • Major7 Apps (declared in pyproject.toml)
Publisher
Major 7 Apps LLC (Official Major 7 Apps LLC project)
Source
major7apps/pensyve · commit d2c56fa
Licence
Apache License 2.0 (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Major 7 Apps LLC.

Install from source

482 of its files are not served here, so there is no ZIP. major7apps/pensyve at d2c56fa