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-1.2.0.tar.gz (157.7 kB view details)

Uploaded Source

Built Distributions

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

pensyve-1.2.0-cp313-cp313-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.13Windows x86-64

pensyve-1.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pensyve-1.2.0-cp313-cp313-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pensyve-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pensyve-1.2.0-cp312-cp312-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.12Windows x86-64

pensyve-1.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pensyve-1.2.0-cp312-cp312-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pensyve-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pensyve-1.2.0-cp311-cp311-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.11Windows x86-64

pensyve-1.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pensyve-1.2.0-cp311-cp311-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pensyve-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pensyve-1.2.0-cp310-cp310-win_amd64.whl (10.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pensyve-1.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pensyve-1.2.0-cp310-cp310-manylinux_2_28_aarch64.whl (16.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pensyve-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pensyve-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8dad85a4ab72e0330b494182f6a2e90fff38620d93d95d98c45362e341b5a88f
MD5 70ea2bd8ddb4a827927152818dd71392
BLAKE2b-256 6916df84f4216de8c7ff86cb0282c9c462ba34fdf9e988b22ebbf8f5ca12a742

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.9 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-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 48763b0bde4d6cd379e20980b03714a6abf609e2fa977d52135c9947757ee2e4
MD5 8fec4a9724410df0a5d9cc9849c55ed2
BLAKE2b-256 ca32928ba1f0eafcdd393dbcb2b0d89389a946aa50593f80951769ecd45d9679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83ca9f0e7893ff1495c9633cf4e4f51ba10bccbbafdea3137c4b3709912c0db1
MD5 5b1ab38c8263176e6d6e42a915012d24
BLAKE2b-256 074a6bc28d95d9c719a218d3dbd4531cebc11a8e1cedc088e6cf7ad2b2597c21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 96aa5838ee5832fc4888a209791b1bf3ba0aed19a869b9b434e261dea2b449c2
MD5 d01b43fb8eaf18c7644ca8969848554b
BLAKE2b-256 c66c41a13272c813337449cf55b6094ca92d17a5132e934f7d02a047ecbd5b43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c7bbbcf424df0a1071613a00cca9f1f8c286f7868e2ad2455b7c2f0917a5501
MD5 3f3c8586b14fa94f46e129364c5dbae2
BLAKE2b-256 3fcf0fce5d75e19461b95698df52782e1143074290549c921e7ab3703eb0671c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 10.9 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-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 941466644f86122f4dacd647322d5247f7611667034e95ac4daac1c78caea330
MD5 17bcee3494521b38db49f35a5724c447
BLAKE2b-256 32acdf85a854e8fca3b093fba68b110a89508faa433c123405b506c47bef1a28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f7b1e0f37890d55687531463432f06d6fd47d6545ab63a58c069ae835b572b4a
MD5 a74be6b1c24d23fdd73983459ed1d95f
BLAKE2b-256 7b5ca81dddaddb9322beec82814c5675fbc0f5ece923a40d4257f8fbd4752389

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 27f791fcc08f1e16b0a561477c157f5e51c6bc5d86c97accc6c7a32d97220fe1
MD5 e2b68f49a583bef2dc37c2c8823b2178
BLAKE2b-256 afcd94da7fcb7e36741a1e31ae17da985b0e280c736b91a3691fcdf42a3e5a9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72d8b64e39bf9eb7e17b8d553a37f00de64b8352af99e280b379173e7719e69e
MD5 8031322b182df580efd0360d657f9c0c
BLAKE2b-256 c35d17945443271104f2a5b3c5e643ad7b3e480a8ec830c9769776132252ed0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 10.9 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-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 607fd73bdd3d311d084cf2f5b28b3361be50922faa88e7dcbe311a569a0a4064
MD5 5960f3e82c79f69b49a3c65d38c073e4
BLAKE2b-256 1c7c01165b27c226721639231cfc51a9eef9d63f27488a6ac7e55f1e2c8a1d20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ddb491f793ec3e4c267baf01b781e21e1d34458dad8c9d553efe2c9ed30fb801
MD5 6773fedaaed23c5e9d5f378cc677728e
BLAKE2b-256 1be0216c67749b9d40dc5522463b2002fdfd3a812c42645ece36576c4b14c1f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e2b9f9b9e40b6e1d758ccf188a8856f127d12684c6636f6772e47dbe337d1522
MD5 228e8899761026d4faaedb18c082d6e7
BLAKE2b-256 c6bd8d1b515974fd2c24e999eaf681cfa6cf868b46fe73c28d2cdd1d71d2057a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 560aa1f7a9d76856c20befd646c6c4349e90f83f92ed1dfcc842f0c299e8ec82
MD5 e3c0a74c8b882ec04045e3c462f1108f
BLAKE2b-256 0bc74cfd4e90f0ffa0c53ca54a24b61bb47f598c73a219d14921282023b5fcb7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 10.9 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-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 06ace6096772e4e73672773788642408d095da32dbc74a5ba4b4ac2e5ffd46f2
MD5 b9417133d16ba83224cfd01aca89c60e
BLAKE2b-256 26b38bc6d77925a6fbe83afaffce1dfd9e811839bc4db875cea136910599f413

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6af6951738c8f0f35baf83d4d0427681740fa5f44afe31400df0d14e52ad51f7
MD5 6a8b4819ad8d119b60fd3bcf09c42830
BLAKE2b-256 a8c691bb8695e12ce29b8e7fee101cc03481bf9b68eefa5ce83176f499e53384

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 36fc9bf49a6bff6383ff2c60cba0429bd1ab4ac1ca8040dff7e14dad29e7e90b
MD5 218526284eddddc412b7d088ad7d09ec
BLAKE2b-256 3dd589040bd49bdb04cf58ede97f9d8ad5fd2aa6d8a7f379a4dc0ec2a74982b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3730e19b18d61a669dc4781fe7ace812c6aac4188e965cdc32ed951349f25b32
MD5 0acc31391634319b984fe9908074ddb4
BLAKE2b-256 d3081950df5aad92fc3c99590b25858b845c8dca29184e36585f018cd91003aa

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