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.3.2.tar.gz (233.8 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.3.2-cp313-cp313-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pensyve-1.3.2-cp313-cp313-manylinux_2_28_x86_64.whl (16.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pensyve-1.3.2-cp313-cp313-macosx_11_0_arm64.whl (13.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pensyve-1.3.2-cp312-cp312-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pensyve-1.3.2-cp312-cp312-manylinux_2_28_x86_64.whl (16.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pensyve-1.3.2-cp312-cp312-macosx_11_0_arm64.whl (13.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pensyve-1.3.2-cp311-cp311-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pensyve-1.3.2-cp311-cp311-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pensyve-1.3.2-cp311-cp311-macosx_11_0_arm64.whl (13.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pensyve-1.3.2-cp310-cp310-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pensyve-1.3.2-cp310-cp310-manylinux_2_28_aarch64.whl (18.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pensyve-1.3.2-cp310-cp310-macosx_11_0_arm64.whl (13.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for pensyve-1.3.2.tar.gz
Algorithm Hash digest
SHA256 fd58c6ccaef59028e6fe6e71837e4359fbec42e6f93496a0962ab9f5cd6fccf3
MD5 a13b0c4ec412bfb2be6f91437831b0ca
BLAKE2b-256 6fd7cc8aa64a28b88947c40d207e99c817e9ad8ad2741cdbb8e3f73f6e7d53ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.4 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.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 888d5084ad01bbdc7fc7f482adb9de3dfc828584556b40eae31357238531332f
MD5 8f6c79ea6de1e3882e316e10ac866258
BLAKE2b-256 fbceb685132da63acde4ccfeafd2cc6acaf833bdc37dcfc2059b19f700caa30c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14133b937ee005a7f034a8f25b91604dba839dd34807efee6f99fd4571bd6fa2
MD5 500a8329596abfc72c75c72d7c7047d0
BLAKE2b-256 7c645c098819b44ff424de5e4ab54d9589381fbbf7eb8273cf0e68490e5683c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a5af17ccb4e49d02bdbecbdbdb05de043bf640373ad67f45ba3a7b5dffd479f5
MD5 7a72193d2fea473e9bccc6b48b81f513
BLAKE2b-256 3dabf870996499ef161ca33d948e6737a7071010821027f161bd441c461dfe55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 248c150e549a76559c892bfded1cee7cabb57937dfe16b75e3a0319b06343c63
MD5 ca65e60ff8d6a175340dee2dc11a0106
BLAKE2b-256 aad13fce9e971927e3edda20f29ba1c0fde2b0d239c0508a596c3845caef63b1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.4 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.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5fef00565bcd50db202793d98b621d545940102b9adc37ef582cb351362d8654
MD5 56bcc06a276e27b997ea37124b100921
BLAKE2b-256 981d6d37f2ba546f98f2d0b55eacb76440043fc83497713efece712866ce6a55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ee62b07f1843bf47b18387f484565a8ec8e141641559e1c49985162372c502d
MD5 bd4b205c2ab98f548e5d928051b95381
BLAKE2b-256 fe2c84b3033829fd84eeeed48cad3bdaa1cc06656ef28b3c653d8e585bc3ee85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 23ec806942c722f8d5fae6877e161d6d611e6c691a7ad263412d3c9c0ce15f68
MD5 dc6ac00637a9c278b67342804ac49aad
BLAKE2b-256 077e976c80e27c4debdd7171a6871d14d638f562c4a8be31200bf952ff8a54f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b3ed32b5b0d59a495959c08742a23c18770fd2f81c5c88ce395eeafd5fa35b9
MD5 f847b343fcb950d13efbf3eac47b4159
BLAKE2b-256 b427fa84febf9a743ae6018f064313dc3d90ef603d1b9288cca3392e62f43b87

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.4 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.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e9fa922b86494b57e0c9e49562e1e480be3af4b51829a029b969856c5104fe41
MD5 5c035ad89a842264266403fe17cfe0b3
BLAKE2b-256 88837ea3dd32206ca7cc9e9f9f9e56850c7508d4287764f20a2dd35fc8b792d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34f56086ae264b8eab1bfbe8372373657b342fc6137e7b26307495f2bfbfe8e7
MD5 6b8b90cd87076b36a6a3c5c5bb7be7b3
BLAKE2b-256 383a2cb6e7db3497239700eb31a2ac31b92ae1e96c92ae52aab8731506dc81df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6a41d1dea42a8d4ebd026cd5694986494404ef398960b8f218184a8c71b0dd8a
MD5 f9ecc2eab88bd441276cb1991dcc14b3
BLAKE2b-256 91897212d429de9330e851de6ac667fab50643e3854b19f7688868ef762ee5c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89197c1835c206f609773d3179694256f56dab445f59239a415bda6c6d906dfa
MD5 3f9671fd938f2f262eebf94bc07396f0
BLAKE2b-256 384aa1a042359ec87ec8031a5b16f1581b7f5e1e61bc2a4a74679efabc8dd831

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.4 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.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2a4df003c7b99d7dab793e07acd4bcd8c1a55b1ee5e39fff23326f223bf38d7b
MD5 02f45f8ea56d58cdf484ef4ef9953673
BLAKE2b-256 28742738472bb64ddfc4996540154612768a944127792c5eb92cba724537c15d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cbc1a90d84f90e62741a7e44cf48a14555418140472fa7b7f4ab6b66a1d28d65
MD5 a37baff8aca77cc077d445812261f568
BLAKE2b-256 f33b442ee16b8bfd6620a627ac6597d9026f1ccb5197cc9f87ffd94616560c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0fdb73309f64daffbacb3d5f4a26ec2fe726c9510f44a6fe8fa670790ce6bb04
MD5 1c72ce392f291ea219654d92fc855aba
BLAKE2b-256 f7d8f741af00c4a0134cff7f3cd62e7755caa5728812b4215bca81b424666c56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16737e5d7d84a6ec2a5b32422961a935d03ac81042d61b17956b8298843c0515
MD5 4f77c05348c5273d247fb86e9864717c
BLAKE2b-256 6478fc79e14f0a05fef53916da5f3de1f5d90b8dd2615cc5151f1d1ad8f891f8

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