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.1.tar.gz (192.1 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.1-cp313-cp313-win_amd64.whl (12.2 MB view details)

Uploaded CPython 3.13Windows x86-64

pensyve-1.3.1-cp313-cp313-manylinux_2_28_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pensyve-1.3.1-cp313-cp313-manylinux_2_28_aarch64.whl (17.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pensyve-1.3.1-cp313-cp313-macosx_11_0_arm64.whl (13.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pensyve-1.3.1-cp312-cp312-win_amd64.whl (12.2 MB view details)

Uploaded CPython 3.12Windows x86-64

pensyve-1.3.1-cp312-cp312-manylinux_2_28_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pensyve-1.3.1-cp312-cp312-manylinux_2_28_aarch64.whl (17.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pensyve-1.3.1-cp312-cp312-macosx_11_0_arm64.whl (13.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pensyve-1.3.1-cp311-cp311-win_amd64.whl (12.2 MB view details)

Uploaded CPython 3.11Windows x86-64

pensyve-1.3.1-cp311-cp311-manylinux_2_28_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pensyve-1.3.1-cp311-cp311-manylinux_2_28_aarch64.whl (17.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pensyve-1.3.1-cp311-cp311-macosx_11_0_arm64.whl (13.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pensyve-1.3.1-cp310-cp310-win_amd64.whl (12.2 MB view details)

Uploaded CPython 3.10Windows x86-64

pensyve-1.3.1-cp310-cp310-manylinux_2_28_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pensyve-1.3.1-cp310-cp310-manylinux_2_28_aarch64.whl (17.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pensyve-1.3.1-cp310-cp310-macosx_11_0_arm64.whl (13.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pensyve-1.3.1.tar.gz
  • Upload date:
  • Size: 192.1 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.1.tar.gz
Algorithm Hash digest
SHA256 6a7a75ab114c79d0c2f790f45687a7aa2deae042505e87b05b6ea1e1afe75363
MD5 d266b783e885a9b4dc89c01393a5ec72
BLAKE2b-256 dd8b5f0df33ecd7b305879ffb25966f0ee079115e8710e432022d271f8569488

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.2 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d188b29cc42385684ddee9302eb616b9ea88ed1d152772a301d82e08683f00a5
MD5 5465e0c9e9c9aa0e6999a722b7d75a64
BLAKE2b-256 27847ce93cb5c71fa590eb398da1bec048a2fbd9cfe9803f26d0b4c03745dcf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2383144e7b60c18875b9fb48df6166c56ca7f0bc940cb9a5eeef9ef231c7e2f0
MD5 6608cc3da3cf09f2c133e4c24dcd7c0b
BLAKE2b-256 e5e91d36e7d09be0cc35bfaaa302f736f087809f7b38b9f05f6bf6e72da85a77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f2848b67d8c00fc44906fb8d5b6223144e3076c6db24b15a2b39b0186df6669b
MD5 f2be9c23bc6c366040a020586e635c40
BLAKE2b-256 7a6147d934202751c56c3749bf825a987652d0db24bf44c4f4f3f32a9fd4f057

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 543fd02fedc379fce4827760be2114528bf80fc5f5d3e156ec19a0f5b195cb6a
MD5 ac7e310c8823e759afb26987e043547b
BLAKE2b-256 38a86681971a12316a0c686b2552ef3172938d610a71eccd024ed58b07bf9bda

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.2 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 41be7b8f5a3a11e5d7943bdef8d7e3bf886b76b5e859922f9a3d99bb123b9e82
MD5 6fc4ce506bfba09095087c5c77d31f0c
BLAKE2b-256 3b804aedfe7eee3f2077deb17d6c42b940fbbfe8d8aea859eee5b5e7b8ba4a9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66ee254fc20feedf1c9a46d2b27fa4ec215719d953b9042c22904c51e07b5c1e
MD5 41bbfafbf826cd758843096bbba08961
BLAKE2b-256 94bb996d676ac3f37b27fc43419dcb69fd1dae265b8a5fafc020f716a2ee3930

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a5ebe144dcd5000ef4d719ca870164a8dd59ad31998d8e48cd316c41190044f6
MD5 2a6f4a3e8f0f8dd368f56a1c93a39fa3
BLAKE2b-256 4df300633edbbcf2e2f74b819d059676c855be07cb9c9c5f3874533c450c0044

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08d46cbe04606b57ebf6731332c179cebd02a9f783840b6ef2f24a7efa85835e
MD5 5a1db0a2e0f54ed4963d2fe73e089d33
BLAKE2b-256 0b0a8d0315598ce5a83c23a89de9c61701746edabf336d4fe11b4150788fc69d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 12.2 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ad4ca6b579a989a36ccd4123df90a37cca0693b083d4849a1a3ee6f3ff9c7aaa
MD5 2b72db3c9b282f95437b4ca65b494fe8
BLAKE2b-256 07f4ef1e661ff5e5f2c9a27a4d094cc33dea9b0d5f1ccbffac6a65c7708c09aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 958962545bbd53fa7a4ec09842a952cba8ff536c1d1a23ca42dbf243d8b53235
MD5 f66baed87c480a264ba72f8e0158bfa0
BLAKE2b-256 370e20d2b1028d811599c219d327e7268fa63b7b4dd2c44af6acf557b313fbff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0d1b1a0a7b2988e27ff5ff00951e237755311b269f9a77261d9bf0ef0cdb953d
MD5 e87c551b66caacafb9610627fe78d93f
BLAKE2b-256 f7ee47773a37f7be46ea0fb2cd84ab1a7f4c8e25c51870f9b87c9fad6d5437a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a613b3e5019422b5cd27e24f3ea210d4fd12903cce0f7bd872f8016e8733b0f8
MD5 2f10ccbebad4f715e96392b489f09c3b
BLAKE2b-256 851be921fce9765ab922c05e7cb1517eee92f7d0e47a70a491fe53746f3aab46

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pensyve-1.3.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 12.2 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0e7042c8856b7dd9671f03c552d186d1c8ecc762e9db2d6630592cec0921e46a
MD5 2ab9fccdca0601ea78e8c29baba9099c
BLAKE2b-256 984d3a21a0ab4ef1d919da93ca89da480e08bfd41a24813532db187230ec2209

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 28300a3f8019bd8ed7e7a4ef2dfce612d25e1c464e2c5d0e96b1fdbce327f3d4
MD5 f245de1a3ce500eda46baa6e63e56a41
BLAKE2b-256 7f98a2590bac4e7c3bb23dd9294d882d079fc21beefffbdcf02b8f5ff270bba1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7c16d732d704f8603ddf512934a277903a14d3014cef02eb49d55ec0456fd885
MD5 2de1b446521ace6298ca32e247d1be6a
BLAKE2b-256 87887315b07042a339d8b1e6af2e77fb05f7efdd53901afa143197f0a06ab036

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pensyve-1.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 402143ce82f17b2f67e94fa00f8ed393309fa918aebfe91d52e92de09fb406d3
MD5 1c52754a827e4b5c910bbdbad7ce763a
BLAKE2b-256 fa41cee5a9d8449dbef06810c5cb4f5829eb64f6566420384aeb8e5bf87843fb

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