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.5.0.tar.gz (495.3 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.5.0-cp313-cp313-win_amd64.whl (12.7 MB view details)

Uploaded CPython 3.13Windows x86-64

pensyve-2.5.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.5.0-cp313-cp313-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pensyve-2.5.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.5.0-cp312-cp312-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pensyve-2.5.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.5.0-cp311-cp311-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pensyve-2.5.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.5.0-cp310-cp310-manylinux_2_28_aarch64.whl (18.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pensyve-2.5.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.5.0.tar.gz.

File metadata

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

File hashes

Hashes for pensyve-2.5.0.tar.gz
Algorithm Hash digest
SHA256 5a9d118743294a7ea9693cf4bdb5d4e4469b40c597d63f87a2177b4082712392
MD5 7ab726909c977c5fa69b018282390c9d
BLAKE2b-256 8a147141cab1bf6e88048e1c065f69df7a926e902e03d77cbe2e027a3955dd0c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.5.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.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1a87ca4266aa680f54c62ed781428284396e04f0d720369c5c459c6778122239
MD5 d8e59c5b338939b2c638d097745008fd
BLAKE2b-256 1658cded8b8b112d18d29031b7488c48701bc9eade814bc96f90e4623aa75346

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e23abe4b9b314e0fa2b75703fefb092bdb544b7748847cc72bf3bc02e103bdfc
MD5 96c9d0fdcb64e8e07610178cb66435ff
BLAKE2b-256 f14e3cbdf84ddd30ae71ecbb2845ea34990c8aa3eb1a81b8c9f7d4fc4129e48e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba9764b67db991565e76e67f1f51ff86c63ec0f25bd73ffe970871d926dfd296
MD5 465c2ec0ccecf239cae0743d1bc85617
BLAKE2b-256 8f85518b0b52d03422603307d04daf65612a1bf408f9036e6357fda1efb5a313

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 68ae8c477788484441e80fa42efe45bd2248b8e7cd40be834eb929da22f0280c
MD5 7dfe0c749132227c774d97fcf92b1c3c
BLAKE2b-256 56f7ee8ac253a2f525052ea82e5a8c292336d40b9e8521bc8951ec8ec402088e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.5.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.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0cb84620f2022066f2ee2064b046e82b62b089a7b130cff5b268b27dfeb93869
MD5 0b1a566242352aab2638ee3c9281b6ea
BLAKE2b-256 1dd27b23e88c243bc3e01dc9822bcce37858e753f21a05d162a0c12d15c797e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19a9fa3bdd3da13d35aba012a6593c5b76c9233dddca35dec9f788ea2e7db26e
MD5 e50dcceebdcfeff6c07cbf7f583aa2d3
BLAKE2b-256 ff9decb619fd4383e7cf015132fdbaef7f966641f935b062ca28f03bbaadca64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cfc4823e30fbcf5954bb018a3d0bfa93ab8c442381424bd5b2bbc5c53507f435
MD5 9bc0069bb515a8ddbb3ace34138e37f1
BLAKE2b-256 70978dcc87ed083164b68b7c1ab12fd829efdd5aa6be28fbb5a91617f939ce52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 74942599bbcfa4b80c98e6ef0f86b45898d24babae3ea12bb01582e19fb2abe8
MD5 d5b9e358b86b157bd7a88820fa8fa573
BLAKE2b-256 e2e60185a65017ed8a08c3b3c5fce8f70ff13c80a0a68cf0eb84c5b076955d0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.5.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.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 08dfdede0d47d39c1cc1ef42b507c2ae9c8bafd31c540573626b503cd80fccfd
MD5 dd4d555a3f68d7d9eeb9ec6bd6c21763
BLAKE2b-256 b42af44f3659f96c09082f7ba74ad9918e0ea2b29e81ea02e182ae1ddea41a11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8e6a0b4028aad2df12a2c466d487468bc9195914e6c6e07163a1de6a870f34b
MD5 b8d17f95681b3d5e8a02b64110c611c1
BLAKE2b-256 224b62b64df1d89a3164379fe5cc2c468b5ce7fe3540aa91d6f24eb019f863b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1735684abd9be24d0f7ab1dec7a71dd069e4867509a72e47bf9fc9d417b3e39b
MD5 6738ac9e1eddf801277e0126a6d46492
BLAKE2b-256 dccf002a7453e01787d01c47fd98bfb4f14f7f8fa9059758fbf5851032c72fd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc279b203fba870aedb5727d0eeb0699ed61d1cc0af2a5633887f84a08d9782b
MD5 aeb6b7f14d9a6b5188731ccde593af3c
BLAKE2b-256 1958681c06f37d1daebd7f853c27dbc3183c73063b48c5228c1564efa8df71be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.5.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.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 45f99ecef897f21e8cbbcfbf47e75c12f7cb5585478f7b0171daf42af99f51f2
MD5 71078dbfa5deaf82cd8377b062025ad4
BLAKE2b-256 b0ec5f2bbe123db14f39a35ad0cbdaabbfb8954638732aa8b1ba297ba302d9e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d920c1a2caddfaba5d584b440305afe9612f1f702f8d45cf877d1c8d51bcff4
MD5 be04ef22c3dc99296c98c184f890b916
BLAKE2b-256 5af79be890b24785f114c45ae248776a2bfb5d3934f1149ecbffe1c14caf5852

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3e6b4e2454e02b5f84da8e2b1c10043018376431190a2303fcc7c08ba8e79967
MD5 0051d4010280a02165ecc8c78c85645b
BLAKE2b-256 eefa4de3f06fc7cb5cdc90bd27e14defae4b3c6dca71c35cd41be0ff0e251d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e17a40fc8aa8eb399f63f69cf1c4e9a60a17d72da77f89cc035e70fe6544b18
MD5 60df952f3bbf415825bd41c725c3ebe2
BLAKE2b-256 e5dcf0f0a858b1f4b4c41a452ca8d29e73f32dea176550284f01d2ac3360851c

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