Skip to main content

Universal memory runtime for AI agents — framework-agnostic, protocol-native, offline-first

Project description

Pensyve Banner Logo

Pensyve

CI License: Apache 2.0 Python 3.10+ Rust 1.88+

Universal memory runtime for AI agents. Framework-agnostic, protocol-native, offline-first.

Agents use Pensyve to remember across sessions, learn from outcomes, and share knowledge — all backed by a Rust core engine with zero cloud dependencies required.

Why Pensyve

Most AI agents lose all context between sessions. Pensyve gives them durable, intelligent memory:

  • Three memory types — Episodic (what happened), Semantic (what is known), Procedural (what works)
  • Multimodal content — Text, code, images, tool outputs, structured data
  • 8-signal fusion retrieval — Vector similarity, BM25 lexical, graph proximity, intent classification, recency, access frequency, confidence, type boost
  • Learns from outcomes — Bayesian tracking on action→outcome procedures automatically surfaces what works
  • Forgetting curve — FSRS-based memory decay with retrieval-induced reinforcement (memories you use get stronger)
  • Consolidation — Background "dreaming" promotes repeated episodic facts to semantic knowledge
  • Offline-first — SQLite storage, ONNX embeddings, optional local LLM extraction. No API keys needed.
  • Scales to Postgres — Feature-gated Postgres backend with pgvector for multi-node deployments
  • Cross-encoder reranking — BGE reranker on top-k results for precision
  • Access control — RBAC memory mesh with owner/writer/reader roles and private/shared/public visibility

Install

pip install pensyve          # Python (PyPI)
npm install pensyve          # TypeScript (npm)
go get github.com/major7apps/pensyve/pensyve-go@latest  # Go

Or use the MCP server directly with Claude Code, Cursor, or any MCP client — see MCP Setup.

Quick Start

Prerequisites (building from source)

  • Rust 1.88+
  • Python 3.10+ with uv
  • Bun (optional, for TypeScript SDK)
  • Go 1.21+ (optional, for Go SDK)

Install

git clone https://github.com/major7apps/pensyve.git && cd pensyve

# Set up Python environment and install deps
uv sync --extra dev

# Build the Python SDK (compiles Rust → native Python module)
uv run maturin develop --release -m pensyve-python/Cargo.toml

# Verify
uv run python -c "import pensyve; print(pensyve.__version__)"

5-Line Demo

import pensyve

p = pensyve.Pensyve()
with p.episode(p.entity("agent", kind="agent"), p.entity("user")) as ep:
    ep.message("user", "I prefer dark mode and use vim keybindings")
print(p.recall("what editor setup does the user prefer?"))

Interfaces

Pensyve exposes its core engine through multiple interfaces — use whichever fits your stack.

Python SDK

Direct in-process access via PyO3. Zero network overhead.

import pensyve

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

# Remember a fact
p.remember(entity=entity, fact="User prefers Python", confidence=0.95)

# Recall memories (flat list)
results = p.recall("programming language", entity=entity)

# Recall memories clustered by source session — the canonical entry point
# for "memory as input to an LLM reader" workflows. Each SessionGroup
# corresponds to one conversation episode and is sorted chronologically.
groups = p.recall_grouped("programming language", limit=50)
for g in groups:
    for m in g.memories:
        print(f"[{g.session_time}] {m.content}")

# Record an episode
with p.episode(entity) as ep:
    ep.message("user", "Can you fix the login bug?")
    ep.message("agent", "Fixed — the session token was expiring early")
    ep.outcome("success")

# Consolidate (promote repeated facts, decay unused memories)
p.consolidate()

MCP Server

Works with Claude Code, Cursor, and any MCP-compatible client.

cargo build --release --bin pensyve-mcp
{
  "mcpServers": {
    "pensyve": {
      "command": "./target/release/pensyve-mcp",
      "env": { "PENSYVE_PATH": "~/.pensyve/default" }
    }
  }
}

Tools exposed: recall, remember, episode_start, episode_end, forget, inspect

Claude Code Plugin

Full cognitive memory layer for Claude Code — install from the marketplace or manually.

pensyve-plugin/
├── 6 slash commands   /remember, /recall, /forget, /inspect, /consolidate, /memory-status
├── 4 skills           session-memory, memory-informed-refactor, context-loader, memory-review
├── 2 agents           memory-curator (background), context-researcher (on-demand)
└── 4 hooks            SessionStart, Stop, PreCompact, UserPromptSubmit

See integrations/claude-code/README.md for details.

REST API

Rust/Axum gateway serving REST + MCP with auth, rate limiting, and usage metering.

cargo build --release --bin pensyve-mcp-gateway
./target/release/pensyve-mcp-gateway  # listens on 0.0.0.0:3000
# Remember
curl -X POST http://localhost:3000/v1/remember \
  -H "Content-Type: application/json" \
  -d '{"entity": "seth", "fact": "Seth prefers Python", "confidence": 0.95}'

# Recall
curl -X POST http://localhost:3000/v1/recall \
  -H "Content-Type: application/json" \
  -d '{"query": "programming language", "entity": "seth"}'

Endpoints: POST /v1/entities, POST /v1/episodes/{start,message,end}, POST /v1/recall, POST /v1/remember, POST /v1/inspect, GET /v1/stats, DELETE /v1/entities/{name}, POST /v1/consolidate, GET /v1/health, GET /metrics

TypeScript SDK

HTTP client with timeout, retry, and structured errors.

import { Pensyve } from "pensyve";

const p = new Pensyve({
  baseUrl: "http://localhost:3000",
  timeoutMs: 10000,
  retries: 2,
});
await p.remember({ entity: "seth", fact: "Likes TypeScript", confidence: 0.9 });
const memories = await p.recall("programming", { entity: "seth" });

Go SDK

Context-aware HTTP client with structured errors.

import pensyve "github.com/major7apps/pensyve/pensyve-go"

client := pensyve.NewClient(pensyve.Config{BaseURL: "http://localhost:3000"})
ctx := context.Background()
client.Remember(ctx, "seth", "Likes Go", 0.9)
memories, _ := client.Recall(ctx, "programming", nil)

CLI

cargo build --bin pensyve-cli

# Recall memories
./target/debug/pensyve-cli recall "editor preferences" --entity user

# Show stats
./target/debug/pensyve-cli stats

# Inspect an entity
./target/debug/pensyve-cli inspect --entity user

Architecture

Pensyve Architecture

Data Model

Namespace (isolation boundary)
  └── Entity (agent | user | team | tool)
        ├── Episodes (bounded interaction sequences)
        │     └── Messages (role + content)
        └── Memories
              ├── Episodic  — what happened (timestamped, multimodal content type)
              ├── Semantic  — what is known (SPO triples with temporal validity)
              └── Procedural — what works (action→outcome with Bayesian reliability)

Retrieval Pipeline

  1. Embed query via ONNX (Alibaba-NLP/gte-base-en-v1.5, 768 dims)
  2. Classify intent — Question/Action/Recall/General (keyword heuristics)
  3. Vector search — cosine similarity against stored embeddings
  4. BM25 search — FTS5 lexical matching
  5. Graph traversal — petgraph BFS from query entity
  6. Fusion scoring — weighted sum of 8 signals (vector, BM25, graph, intent, recency, access, confidence, type boost)
  7. Cross-encoder reranking — BGE reranker on top-20 candidates
  8. FSRS reinforcement — retrieved memories get stability boost

Project Structure

pensyve/
├── pensyve-core/       Rust engine (rlib) — storage, embedding, retrieval, graph, decay, mesh, observability
├── pensyve-python/     Python SDK via PyO3 (cdylib)
├── pensyve-mcp/        MCP server binary (stdio, rmcp)
├── pensyve-cli/        CLI binary (clap)
├── pensyve-ts/         TypeScript SDK (bun) — timeout, retry, PensyveError
├── pensyve-go/         Go SDK — context-aware HTTP client
├── pensyve-wasm/       WASM build — standalone minimal in-memory Pensyve
├── pensyve_server/       Shared Python utilities — billing, extraction
├── integrations/       All integrations — IDE plugins, framework adapters, code harnesses
│   ├── claude-code/    Claude Code plugin (commands, skills, agents, hooks)
│   ├── vscode/         VS Code sidebar extension
│   ├── openclaw-plugin/ OpenClaw native memory plugin (TypeScript)
│   ├── opencode-plugin/ OpenCode native memory plugin (TypeScript)
│   ├── cursor/         Cursor MCP setup guide
│   ├── cline/          Cline MCP setup guide
│   ├── windsurf/       Windsurf MCP setup guide
│   ├── continue/       Continue MCP setup guide
│   ├── vscode-copilot/ VS Code Copilot Chat MCP setup guide
│   ├── langchain/      LangChain/LangGraph Python (PensyveStore + legacy PensyveMemory)
│   ├── langchain-ts/   LangChain.js/LangGraph.js TypeScript (PensyveStore)
│   ├── crewai/         CrewAI (PensyveStorage + standalone PensyveCrewMemory)
│   └── autogen/        Microsoft AutoGen multi-agent memory
├── tests/python/       Python integration tests
├── benchmarks/         LongMemEval_S evaluation + weight tuning
├── website/            Astro + Tailwind static site for pensyve.com
└── docs/               Architecture, roadmap, design specs, implementation plans

Development

First-Time Setup

# Install dependencies (creates .venv automatically)
uv sync --extra dev

# Build the native Python module (required before running any Python code)
uv run maturin develop --release -m pensyve-python/Cargo.toml

# Verify the module loads
uv run python -c "import pensyve; print(pensyve.__version__)"

Note: The pensyve Python package is a native Rust extension built with PyO3. You must run uv run maturin develop before pytest or any Python import of pensyve, otherwise you will get ModuleNotFoundError: No module named 'pensyve'.

Build & Test

make build      # Compile Rust + build PyO3 module
make test       # Run all tests (Rust + Python)
make lint       # clippy + ruff + pyright
make format     # cargo fmt + ruff format
make check      # lint + test (CI gate)

To run test suites individually:

cargo test --workspace                                       # Rust tests
uv run maturin develop --release -m pensyve-python/Cargo.toml  # Build PyO3 module first
uv run pytest tests/python/ -v                               # Python tests
cd pensyve-ts && bun test                                    # TypeScript tests
cd pensyve-go && go test ./...                               # Go tests

Additional SDKs

cd pensyve-ts && bun test          # TypeScript (38 tests)
cd pensyve-go && go test ./...     # Go (17 tests)
cd pensyve-wasm && cargo check     # WASM (standalone)

Benchmarks

# Synthetic recall smoke test (planted facts, no external dataset required)
python benchmarks/synthetic/run.py --generate --evaluate --verbose

Competitive Landscape

Feature Pensyve Mem0 Zep Honcho
Offline-first (no cloud required) Yes No No No
Procedural memory (learns from outcomes) Yes No No No
Multi-signal fusion scoring 8 signals 1 3 1
Retrieval-induced reinforcement (FSRS) Yes No No No
Intent-aware retrieval Yes No No No
Multimodal content types Yes Text only Text only Text only
RBAC memory mesh Yes No No No
Cross-platform local LLM extraction Yes No Cloud only Cloud only
MCP server Yes No No Plugin
Claude Code plugin Yes No No No
VS Code extension Yes No No No
Framework integrations 5 3 1 1
Postgres backend Yes (feature-gated) Yes Yes Yes
Go SDK Yes No No No
WASM build Yes No No No
Open source engine Apache 2.0 Yes Partial Yes

License

Apache 2.0

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

pensyve-2.6.0.tar.gz (496.5 kB view details)

Uploaded Source

Built Distributions

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

pensyve-2.6.0-cp313-cp313-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pensyve-2.6.0-cp313-cp313-manylinux_2_28_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pensyve-2.6.0-cp313-cp313-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pensyve-2.6.0-cp313-cp313-macosx_11_0_arm64.whl (13.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pensyve-2.6.0-cp312-cp312-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.12Windows x86-64

pensyve-2.6.0-cp312-cp312-manylinux_2_28_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pensyve-2.6.0-cp312-cp312-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pensyve-2.6.0-cp312-cp312-macosx_11_0_arm64.whl (13.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pensyve-2.6.0-cp311-cp311-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pensyve-2.6.0-cp311-cp311-manylinux_2_28_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pensyve-2.6.0-cp311-cp311-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pensyve-2.6.0-cp311-cp311-macosx_11_0_arm64.whl (13.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pensyve-2.6.0-cp310-cp310-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pensyve-2.6.0-cp310-cp310-manylinux_2_28_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pensyve-2.6.0-cp310-cp310-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pensyve-2.6.0-cp310-cp310-macosx_11_0_arm64.whl (13.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pensyve-2.6.0.tar.gz.

File metadata

  • Download URL: pensyve-2.6.0.tar.gz
  • Upload date:
  • Size: 496.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pensyve-2.6.0.tar.gz
Algorithm Hash digest
SHA256 48ae650413c3da2ac0b8f2e86159dfbe3624cea5d523623f972fd5a28bb9319f
MD5 19a4962afe90f8987807e32c17b9f085
BLAKE2b-256 8f4d1b7772c2ea38aeea09edb28165fd512fe0b2ab6eff1433b70fc9e136980e

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pensyve-2.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pensyve-2.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fc66bb17c2995774ebd701e6db25a5ed0cc201bb1de03420325a60ad8bca15e8
MD5 c90d6404e3c4c0afad2c57a817423cec
BLAKE2b-256 717cbc246a1c38b7dd753b3fb77491b982c39d270dedfd966ad44f2842469112

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6894e13d1fba96d5a13a298cdb156c8a0431235a45ccf28cc082f36c6ddc3f3
MD5 6f320c8b99e01a6fcfd8549999c0e5e8
BLAKE2b-256 9c9f023eceff4a84320a3594d0b29f4fa939acf19dc719c7163c5e37a5097988

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1a03cbe58e3fcc420481b536e20fb339399e36318edeae818d70555c220190e6
MD5 15427ece1d59f03e674dd81208968f97
BLAKE2b-256 b0ba5859d0cc8e5deba608558ac010e492fc81160afc39221e63ac4e901c3854

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a34dd5baaccc2617da10fbfcf790a3cc73217daad66245e683064866a31912b0
MD5 7364bd9f9cce8a688c8b9aff8a884fd3
BLAKE2b-256 dd51b9ec3eb09ad7af78c34152f59f217ca2c17885da1ae27f3ed9b8e8a23914

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pensyve-2.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pensyve-2.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c3cea872d256411d14d4fab50c9420a2d21f88213763f5fca7dd1bbadb474a21
MD5 a175b01f0ef1589f898f6a66e5f224df
BLAKE2b-256 9aaa5891099df16964722d609bd069ed877aaa06622bdde602013148066a9be6

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3c164490b767f814e2f08eda951fc4fad9929842ecbf4d15a79d55faf7e0fc8
MD5 fb9fb8623bf678605fed76ad3a5f73bb
BLAKE2b-256 24b03799914755e60a5f421a3aab89fa3b3282a538eab2e4912f121259343356

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7891b8a11eec01773e586291c64d9432a1f6b11b65f1cd384c2a2a38b0ff2f5c
MD5 92d18bf1b7b875e83afbe3068f1988cd
BLAKE2b-256 4003f5d776317a4cd4c4c77398e4c64e7753faa44984e38cf0fda1b1209ced8a

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1aa493b041189a583afb63a267a3c8067f1a6c5371553c54aacf7994c7138e9f
MD5 88040b2b9fc0bb521def48789495926b
BLAKE2b-256 c04018dc8014347809e6431b87e43782bb47a8e717ca7a3470aff0da898d4d78

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pensyve-2.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pensyve-2.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c96167af6e916d0b1d7c97ebaece14b73763c3ef4dce629a8accfe33121f53c6
MD5 c3e3c1da901de3f42f6f375a94303201
BLAKE2b-256 f02818848e89cce708bfd13717e053554e56d40fae840dc9b65a68d40030e509

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 860591d7f7ce0413c9c9f4e4139d25d6ba834a304581708c5d90afe39b044fd3
MD5 9fdcc737227e8951394aa8649ea6a6db
BLAKE2b-256 d81c99efb36bc5089bc9f1b305d6f4eff1867608ba4c40652c2fa095f79a03e8

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1b8b9dd7b82c10ba3a44106c0301473b5734876262e28dbd4ea0a76faa4bc87b
MD5 698743a9b4d62046882380b6ed70d0ea
BLAKE2b-256 a8681e4ff61aa01a85aa2544061b4d278400f8eca75c89961adede740e09f53a

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c44c75ea68b7d0d171dec908a2026c5e78a7830b7c01ca2283b0c24b370beb65
MD5 bd7f6c98ec19ed584060464380e4593b
BLAKE2b-256 cfb43498345cc65b49c04bc99137f0a89c605afe5c005a560100ff4e5ae97a26

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pensyve-2.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pensyve-2.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2867a2b84df9ce11930f19582ba82e60b9b1b6323314842f007c7d2077e1ad37
MD5 fc38e361d5cd5664e0c5aabdd2a2ecb7
BLAKE2b-256 8892f375c779e07a0791efac76d8d3626d0d0e8610e8aec1ed64216a76fcb50b

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6b80dd2e5f27be2e49c8b69aed630c24c33db1466bb710ba6e02fdbcc802792
MD5 a2fe326db6cd1b089e9f626eaf511844
BLAKE2b-256 180d2a9ecb9342a4d983fc59022a34d248b83cae59877b2943d8162bc25d5e41

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7197852fb4ac038eaae998bc94298be70d51bfecb1877283e93a6a10963e51e5
MD5 5c0943a8465c0386e41d267f276ea1d3
BLAKE2b-256 767e27c789102eaa00a51cfc1f20f42c9af8579d939133a9d2c728aa645aee9e

See more details on using hashes here.

File details

Details for the file pensyve-2.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pensyve-2.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2b5c9a198e28e2bb65de842dfc4b187f9d49da3324c705c55c406fb6454c90f
MD5 338107a543e0ab4b4e64af55ef72197b
BLAKE2b-256 914f8f0a6b0abb95ec6203f5157524a2616c745479f1d7a49cc671d4525aabfd

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