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.2.0.tar.gz (269.9 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.2.0-cp313-cp313-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pensyve-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pensyve-2.2.0-cp313-cp313-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pensyve-2.2.0-cp313-cp313-macosx_11_0_arm64.whl (13.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pensyve-2.2.0-cp312-cp312-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pensyve-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pensyve-2.2.0-cp312-cp312-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pensyve-2.2.0-cp312-cp312-macosx_11_0_arm64.whl (13.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pensyve-2.2.0-cp311-cp311-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pensyve-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pensyve-2.2.0-cp311-cp311-manylinux_2_28_aarch64.whl (18.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pensyve-2.2.0-cp311-cp311-macosx_11_0_arm64.whl (13.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pensyve-2.2.0-cp310-cp310-win_amd64.whl (12.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pensyve-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pensyve-2.2.0-cp310-cp310-manylinux_2_28_aarch64.whl (18.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pensyve-2.2.0-cp310-cp310-macosx_11_0_arm64.whl (13.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pensyve-2.2.0.tar.gz
Algorithm Hash digest
SHA256 99b235b918b972ff66a276a98ab338fef8fdae92804c75eb4703181b8be9172f
MD5 5d73ebec2e1117851be80db4bfaabaaf
BLAKE2b-256 4d8edada6c8e3cd2358fb821352a3cc08e929051c5920344cdfafe16275a6269

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.5 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.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 396cc8c6b30e146f0ddd441caef2861e3d73df379eba3e33edb63dd16322d262
MD5 aca9b5992f32b6c267a8a186cb89ba8a
BLAKE2b-256 de096ce7a2d1ce26a1b20bbb12f42d1ea176f54df0ff3be253f23931c9b15df5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b39456e671b73976442d9c806a78f9358d17cd91f1c0dee08a048cc3c24a742a
MD5 80155ad92dc48bd5b4fb3aa56c339a92
BLAKE2b-256 64f5dbd91cea4224050f74e6294dbaec9f24e683b22660dcc2ee617bbc423eee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f2c030bb7171a4495ce2b63130fde351dd6bb61bbc2a82b909d2ae7c8495116
MD5 85c32acd362a5bfb53fd7fb4bde35c9c
BLAKE2b-256 bcdf52ca37a622f57b5fa9c1b5303dc2178817240d541ce113813b1a7c422298

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b10d83444ebd5c642ba17561ac87fdb4f164eeadf515748abc0cec7906d999a
MD5 198948782d7915dceaddb6b2ccc1b55d
BLAKE2b-256 fcde0689a95913add6b6fbddb5a202ab5d76a1656392aa111c7a7684b13a7d41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.5 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.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9a4af5853a10d137e5de3be756993dad15f422c8a8796755f861adba7af954d1
MD5 a9caac8cf5933a587c94af7692e360ef
BLAKE2b-256 48a39653426c62ba75ab92ee87d574da3ee612657e46a5a2f9cc17e3ebf28f4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1c91d1868cb41cc807ad09de3573b2ab9032aa3be73f32bc840f5a206576221
MD5 237200e37c5322cc7563c0f26896e7b5
BLAKE2b-256 50446f581aa018197cbf3c758b9b9f169b7fe64d82a540ce178762cf4911e1ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 06e6442c811196ca7cc751fa036ed717e80929e61065b642689ce56b9b2fef7f
MD5 cb49aaffda3ea293196f510537a6a868
BLAKE2b-256 87627441187696236c2de5c3877ad8581db7864e654a927dff5508d7b7a09f5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c21863e3d223a1f5e87d9d18d2ed5557ffde1ffeba0a284b07d47cbfd966f2f9
MD5 5509fc9ae0bdc4eda3ffbb12ad119a7a
BLAKE2b-256 738a272f68570c214f163be556d5474aca80234d6deb907b0f5db95b17fda700

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.5 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.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6c92164136bfa9f12c0493e5953671d867fbffe4a5e6c3b560a4876e1f6db7fd
MD5 294509bee704c37d48d363811e60c240
BLAKE2b-256 7737404f3cbd9cbd15d5d5d9c3881d94a6b3aa36e92be51c1058c9ecf681c378

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bfc2b15c0e9a82f981afb710bb97437fb6303dfb04be98bbc3b87113cb9e99fb
MD5 398efa2a6f6f498b40230aee93d5587b
BLAKE2b-256 e06e72ff037f8e69c5e9f3b396710a989f8364877681de81e9fa0d4180273c82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c75254958048c4f8d250d951c9fa93ac308561cab585f2c5c051ba11f5a6e67
MD5 76ed6cb4e04ec6ef497f030706c7895f
BLAKE2b-256 51cbff1dcb57972f9d7f7e40bfef03e58cafa6db8b6f8381ca0253e1547fd458

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c0bab49f273b16b0804f98723bb98d792d067edb17f53aaa1d370bb74ac9ce1
MD5 a36035ca711fb5c2769f8dd5b7c255eb
BLAKE2b-256 9cc9970bdc32246ba640872ae2e07b98d3df6fc68d6df4057d78acf7ec68f209

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.5 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.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ea30b55865ee6b7d71c2c2e9a835d1ab45054fedb705e99c9b82b3f03771e7ef
MD5 f75ef44c66e796274362364f268dc4cc
BLAKE2b-256 43e098d676faa5dd27eaf9259748fa0a5923f64dd60aac36f07421b360fc0fa2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea1e4e7450af40803af1ddc519fe5e5a35f4caf680e59ecaf5be0998f549ac12
MD5 515473401923e687a9d6f4b40d38727b
BLAKE2b-256 999c544a048b83ad84ac0ce9c6be68df4224c44d1d5d8a7934fbc30614b73ce9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 09c6cb168618d68dc513bd9659ac2d1416c49517043e6e73ffaa4f758f22b5b9
MD5 bf13b17bba0d8dd17b0081f245dff86d
BLAKE2b-256 23333091a6e031c2b81104e68a83d73331d382bd1537bda04bd366509dcabf95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f03c4a24001af77634396b750a0b61d70aa76976ca91a0e535efbd169f6042c7
MD5 e5ad6f767988852d92c4e7d0b49fcef4
BLAKE2b-256 f2ac6c56d0f300bbeb0fb2e1c3c36ccc97754e9d98474833f61f2d526828e4aa

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