Skip to main content

GrapeRoot — graph-based context engine for AI coding agents

Project description

Dual-Graph — Compounding Context for Claude Code & Codex CLI

A context engine that makes Claude Code and Codex CLI 30-45% cheaper without sacrificing quality. It builds a semantic graph of your codebase and pre-loads the right files into every prompt — so Claude spends tokens reasoning, not exploring.

Works on macOS, Linux, and Windows. Supports any project size.

Join the community: discord.gg/ptyr7KJz


How It Works

You run: dgc /path/to/project
         ↓
1. Project scanned → semantic graph built (files, symbols, imports)
2. You ask a question
3. Graph identifies the relevant files → packs them into context
4. Claude gets your question + the right code already loaded
5. Fewer turns, fewer tokens, better answers

Token savings compound across a session. The graph remembers which files were read, edited, and queried — each turn gets cheaper.


Results

Benchmarked across 80+ prompts (5 complexity levels) on a real-world full-stack app:

Metric Without Dual-Graph With Dual-Graph
Avg cost per prompt $0.46 $0.27
Avg turns 16.8 10.3
Avg response time 186s 134s
Quality (regex scorer) 82.7/100 87.1/100

Cost wins on 16 out of 20 prompts. Quality equal or better on all complexity levels.


Install

macOS / Linux:

curl -sSL https://raw.githubusercontent.com/kunal12203/Codex-CLI-Compact/main/install.sh | bash
source ~/.zshrc   # or ~/.bashrc / ~/.profile

Windows (PowerShell):

irm https://raw.githubusercontent.com/kunal12203/Codex-CLI-Compact/main/install.ps1 | iex

Windows (Scoop):

scoop bucket add dual-graph https://github.com/kunal12203/scoop-dual-graph
scoop install dual-graph

Prerequisites: Python 3.10+, Node.js 18+, Claude Code or Codex CLI. The installer detects missing tools and offers to install them via winget (Windows) or homebrew (macOS).


Usage

Claude Code (dgc)

dgc                              # scan current directory, launch Claude
dgc /path/to/project             # scan a specific project
dgc /path/to/project "fix the login bug"   # start with a prompt

Codex CLI (dg)

dg                               # scan current directory, launch Codex
dg /path/to/project              # scan a specific project
dg /path/to/project "add tests"  # start with a prompt

Windows

dgc .                            # from inside the project directory
dgc "D:\projects\my-app"         # any drive, any path
dg "C:\work\backend"             # Codex CLI

What It Does Under the Hood

  1. Scans your project — extracts files, functions, classes, import relationships into a local graph.
  2. Pre-loads context — when you ask a question, the graph ranks relevant files and packs them into the prompt before Claude sees it. No extra tool calls needed.
  3. Remembers across turns — files you've read or edited are prioritized in future turns. Context compounds.
  4. MCP tools available — Claude can still explore the codebase via graph-aware tools (graph_read, graph_retrieve, graph_neighbors, etc.) when it needs to go deeper.

All processing is local. No code leaves your machine.


Data & Files

All data lives in <project>/.dual-graph/ (gitignored automatically).

File Description
info_graph.json Semantic graph of the project: files, symbols, edges
chat_action_graph.json Session memory: reads, edits, queries, decisions
context-store.json Persistent store for decisions/tasks/facts across sessions
mcp_server.log MCP server logs

Global files in ~/.dual-graph/:

File Description
dgc.ps1 / dg.ps1 Launcher scripts (auto-updated)
venv/ Python virtual environment for dependencies
version.txt Current installed version

Configuration

All optional, via environment variables:

Variable Default Description
DG_HARD_MAX_READ_CHARS 4000 Max characters per file read
DG_TURN_READ_BUDGET_CHARS 18000 Total read budget per turn
DG_FALLBACK_MAX_CALLS_PER_TURN 1 Max fallback grep calls per turn
DG_RETRIEVE_CACHE_TTL_SEC 900 Retrieval cache TTL (15 min)
DG_MCP_PORT auto (8080-8099) Force a specific MCP server port

Context Store

Decisions, tasks, and facts from your sessions are persisted in .dual-graph/context-store.json and re-injected at the start of the next session. This gives Claude continuity across conversations.

You can also create a CONTEXT.md in your project root for free-form session notes.


Token Tracking

A token-counter dashboard is registered automatically with Claude Code:

http://localhost:8899

Usage from inside a Claude session:

count_tokens({text: "<content>"})   # estimate tokens before reading
get_session_stats()                  # running session cost

Self-Update

The launcher checks for updates on every run and auto-updates if a new version is available. No manual intervention needed.

Current version: 3.8.55


Privacy & Security

  • All project data stays local. Graphs, session data, and code never leave your machine.
  • The only outbound calls are:
    • Version check — fetches a version string (no project data).
    • Heartbeat — sends machine_id and platform only. No file names, no code.
    • One-time feedback — optional rating after first day of use.
  • .dual-graph/ is automatically added to .gitignore.

Community

Have a question, found a bug, or want to share feedback?

Join the Discord: discord.gg/ptyr7KJz

  • Get help with setup
  • Report bugs
  • Share workflows
  • Follow releases

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graperoot-3.9.90.tar.gz (5.0 MB view details)

Uploaded Source

Built Distributions

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

graperoot-3.9.90-cp313-cp313-win_arm64.whl (4.5 MB view details)

Uploaded CPython 3.13Windows ARM64

graperoot-3.9.90-cp313-cp313-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.13Windows x86-64

graperoot-3.9.90-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

graperoot-3.9.90-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

graperoot-3.9.90-cp313-cp313-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

graperoot-3.9.90-cp313-cp313-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

graperoot-3.9.90-cp312-cp312-win_arm64.whl (4.5 MB view details)

Uploaded CPython 3.12Windows ARM64

graperoot-3.9.90-cp312-cp312-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.12Windows x86-64

graperoot-3.9.90-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

graperoot-3.9.90-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

graperoot-3.9.90-cp312-cp312-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

graperoot-3.9.90-cp312-cp312-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

graperoot-3.9.90-cp311-cp311-win_arm64.whl (4.5 MB view details)

Uploaded CPython 3.11Windows ARM64

graperoot-3.9.90-cp311-cp311-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.11Windows x86-64

graperoot-3.9.90-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

graperoot-3.9.90-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

graperoot-3.9.90-cp311-cp311-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

graperoot-3.9.90-cp311-cp311-macosx_10_9_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

graperoot-3.9.90-cp310-cp310-win_arm64.whl (4.5 MB view details)

Uploaded CPython 3.10Windows ARM64

graperoot-3.9.90-cp310-cp310-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.10Windows x86-64

graperoot-3.9.90-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

graperoot-3.9.90-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

graperoot-3.9.90-cp310-cp310-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

graperoot-3.9.90-cp310-cp310-macosx_10_9_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file graperoot-3.9.90.tar.gz.

File metadata

  • Download URL: graperoot-3.9.90.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for graperoot-3.9.90.tar.gz
Algorithm Hash digest
SHA256 9bf140efbffd91aac7753d202634bf712bda71f8e1d7b5c1cce24ee06dbbeeb1
MD5 e36fda74825c83a7cc3c459775c80f0b
BLAKE2b-256 5754619bfce22d374a90574e1a38d78404de050185aed9838812f35f29365ddd

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 7e5cf0a7a51733cabed2c43f9af611c208b6def2aa4195fe871864300ac576bc
MD5 6b30533f5bfdadb0eb535fe184c3d5ec
BLAKE2b-256 15325d0020f28c358d16ca8c1cda9a37ed20c183ec9d3f9b443c6dc0686fe170

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: graperoot-3.9.90-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for graperoot-3.9.90-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a2a2301113e7998fd7b98fc08bd218cc4d73644f2106dc60d1531e1fe0fb3cf8
MD5 c8dc59e40a78b03d2333eed577b7f10b
BLAKE2b-256 071cc7cd3b53c12304406133c2759fda4c643e569d1a34187d3e0708d2982983

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d93f050ef5a86366646fb627c0f543225320ba4c44b0e119c3aea087ece9ad57
MD5 7e1f732def22b8c28ef5dc9e8b889cf9
BLAKE2b-256 f687618fc42ee0039b0af0cbae7dc1d247fead398acbdf53aa10b809330ce096

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3abf9d4f813edade980f81df4fb7088c6e5ababf1554e3cdbcc857e419af3314
MD5 558da09c3f4662b906921b5bda92712b
BLAKE2b-256 1fd19df3e4923b2abaf89462d1e78cb3338e0af569e7cb0570711afc43c6d7dd

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03218ab2ae8b7bb494edd80edc4784541cc50fb6c7752a8a3e8b3a0c513fc760
MD5 b86fd9445514c1c6192745d0cea4911a
BLAKE2b-256 5f39bbd78d220ff5e15dc1b7d812f3b861d30a21c6793b237adaac82afb4b0bd

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 554560a407af6af481e58ff7bdc1dbab9202b651b59f8bf3f335ea919afb3d98
MD5 837fc3de75986f3f29b3aae327f20451
BLAKE2b-256 c7f9d4111fe9b33bb1d2ca19d4d2a31bceb288f9c36f23ab278caaf5ac1ba7d0

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 5e5c6561a30cad6b4f7acf0a6c827006036d954b57b781e23ce4afe337709659
MD5 8146bdff8c171bea12e2d4e8a85d2008
BLAKE2b-256 68ce98890b5c30cbefdd5f7806e0d2ac3f9bd972ef6bdc42096e9166e8d07fbe

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: graperoot-3.9.90-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for graperoot-3.9.90-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ce17e275b5b1ec3ed3c808846a9e948145f0528f098611d6dcab2b8ae517ffea
MD5 19bfa27fb03b240a763626b6684fe4bc
BLAKE2b-256 d8999213e3d32a726c275fcbef8353228e2e3404b007054810ec55f51f65e65d

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d2ee214ed77f47ca47441e7a6c2dbc71405768064b457f44217c0c05675d73e
MD5 b7b3df9608b6f109dcf8c1e43c3fb4f5
BLAKE2b-256 6d28690d21742f670044fe057aed1355f6fc048d20210ec9536a0030677d38bc

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aca2725af8eb75a597af7ffbc71242288fd7aa5a7589348487cbc4efe24e0e87
MD5 871708be17cf883d37a023f4d8fc15a3
BLAKE2b-256 2f71dcae0ea11fd47d7a7249a3678f8e7653b35d8acbcd76e7553eb480a55cd3

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5e0f20adcf9a65904042255c55daf1fa889d461c064422bf21b66ecd59b0257
MD5 9df497a93ec2267eb868f10d46a0b42f
BLAKE2b-256 e095375c2965e3af964c779b2f10e785475aeb44f8d42ae99403f651cbacd7d6

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7d581e4b8cf18b45d126486b16a873b1912f74be48ae1cbbae7c672bcf07dac2
MD5 579e07ff558d70b5e075094e7e9cba9c
BLAKE2b-256 a2e28faa1808afde6fd377e0dfd1c0a8d49e61d094edb0c56e1724d33c78eb64

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 cb26f173e299a7ad8f9307f8b52626541c03eb4c44b749653af56ff99db4001b
MD5 09dac8e1644aeee77823e79c1e643d27
BLAKE2b-256 252c46e3b4cd428f5cafd2808a84584e09405970d837e935d7ce1498894dc8f6

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: graperoot-3.9.90-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for graperoot-3.9.90-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 63ebbc193d016947c6cf52e4702f7bbea03c82fcfc287395bce1a67365b1330c
MD5 e668eae605904dcc8bf3045cb9123944
BLAKE2b-256 496b6150d28b84c0baa57e9708e52ab5576d46a46df46a458cbccaaee41a50df

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 78b9bc5cff694876e77d67f2cb48d7dac099c312778360cb8e1b2125c85a4487
MD5 f68620c41d6aea7bf65f13a40d1364e3
BLAKE2b-256 255bf6696788a2a6fa6914dc54a1186579244b8cae0ae760754b312c00dc850a

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c43d7ad757d7cb2f47e4d6e536fc578638f52dfcd1c2e0a587bdbbaecd4183e0
MD5 aa9e804fb79cf03c67355c2c7116d945
BLAKE2b-256 33b637c9609607edc41777c949d726847735487d4eb058978d8ede0adb32d50b

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77927f21749be1e39ba95090a9dbc0b6ef1133c170c2924a0eabe304c0db1507
MD5 75c905986d127a42d36641b5bf825bb9
BLAKE2b-256 31cfa6c2db22ce46886ba33a991f141c553604b27b0f487c6574da031d2b2888

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f679f54dadd18283a73e74eddd63399ee7f4153f0c61e9377676c00bf6bbb2fa
MD5 977114bf1c7954ef788aa8142db7d35b
BLAKE2b-256 011074b89c2dc2c0b55785f5cd1426930806ec4daad713f22f1a90f3b77acd03

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 1747c88db5828a16bbed5ce08cf82349e14f60368fbb176ab4033bc524a5bb54
MD5 8e90cf9228be49551b704fc9fb4e5a2b
BLAKE2b-256 e47b032795519ba090ad00d62a5eb22b827f925430122134aa63134ad47a938e

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: graperoot-3.9.90-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for graperoot-3.9.90-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4ecf747bf8a6120b3e65f9309bdeb23cd0e1b3d1a9194d3338a88a2445adc7ba
MD5 06ecc1801359e1664eb819e28454ec4a
BLAKE2b-256 6e0883c3e265d334d8c49be88d82b9899491e2798731189c1ff9243a62c85b50

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b8fb4e08d9ca48b638c103f3116eec934060cc4f6dde02f02520fd717583154
MD5 1aabc1ab8570d5584a5c301db8078c59
BLAKE2b-256 ab77d6c5791939e854d1760c6696b82e38a7c1c4768ac8fc6828074e9396e04b

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9bcccbc7b16e4a0c450717464074faf2637f468f3660064cc7a0f3522218278c
MD5 cfeae513a1d99861e71bc3bbb13aa440
BLAKE2b-256 914f032f5794580309efc4217730835c57f66fd920417a48ab911a3c6a521afc

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c47bca5569e60f97a69fc4f4804f0cf86abdf9e7c0e81e22ccb6b27fcd4bee6e
MD5 e1041a323e03d4424cba08c61c71bf6d
BLAKE2b-256 73f90a2d938689f887666543b2f74f2434c56eb38ac50075f3d9bcdfbef02b36

See more details on using hashes here.

File details

Details for the file graperoot-3.9.90-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for graperoot-3.9.90-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 71ba80aea05ebc8dcc565f4fb1044f7876eb9a7028d57489708a857c77f1f99c
MD5 ddd06b7540d3d7eab6dc124fac856308
BLAKE2b-256 108543b8ca27f289a641259c9a58d97ca7a1123bf0fe2a35c58758d98f948e04

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