QuipNetwork/quip-validatorPublic

A rust implementation of the Quip Protocol forked from Substrate

AI summary: The Rust reference implementation of the Quip Network protocol.

Stars
5.7K
Forks
32
Watchers
7
Open issues
2
Open PRs
0
Contributors
~5
Commits
169
Branches
45

RustUnlicenseCreated Apr 2, 2026Last push 10d ago

Star history

since Apr 5, 2026
02K4KApr 2026May 2026Jun 2026Jul 2026
5.7K stars as of Jul 28, 2026, tracked back to Apr 5, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-02: 0 commits2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 1 commit2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 2 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 1 commit2026-04-08: 1 commit2026-04-09: 0 commits2026-04-10: 1 commit2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 1 commit2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 3 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 2 commits2026-05-14: 0 commits2026-05-15: 2 commits2026-05-16: 0 commits2026-05-17: 4 commits2026-05-18: 4 commits2026-05-19: 0 commits2026-05-20: 8 commits2026-05-21: 6 commits2026-05-22: 3 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 1 commit2026-05-26: 0 commits2026-05-27: 1 commit2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 2 commits2026-06-02: 0 commits2026-06-03: 1 commit2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 1 commit2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 3 commits2026-06-11: 5 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 4 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 11 commits2026-06-23: 9 commits2026-06-24: 8 commits2026-06-25: 1 commit2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 5 commits2026-06-29: 10 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 13 commits2026-07-04: 2 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 2 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 1 commit2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 1 commit2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
120 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Permissive license

    Unlicense

What quip-validator does

This repository contains the core Rust implementation of the Quip Network's peer-to-peer protocol layer. It defines the message formats, cryptographic handshake procedures, and routing logic necessary for nodes to communicate securely on the network. The implementation leverages asynchronous I/O and standard libp2p components to ensure low-latency and high-throughput data transfer. It serves as the foundation for other Quip network services, such as validators and node managers, by abstracting the complexities of distributed networking.

Systems programmers, blockchain developers, and network engineers building infrastructure for the Quip Network.

  • Asynchronous networking: built on Tokio to handle thousands of concurrent peer connections.
  • Secure handshakes: utilizes modern cryptographic protocols to establish authenticated and encrypted channels.
  • Modular architecture: separates message routing, peer discovery, and transport layers for easy integration.
  • Libp2p integration: builds on standard peer-to-peer libraries for robust NAT traversal and multiplexing.
  • High throughput: optimized serialization and zero-copy data passing for fast message propagation.

Where teams use it

Building a Custom Quip Node

Developers use this library as the base layer when building specialized nodes or validators for the Quip ecosystem.

Network Analysis and Tooling

Security researchers can leverage the protocol implementation to write network crawlers and monitoring tools.

Cross-Platform Clients

Engineers can build robust desktop or mobile clients by binding this Rust core to other languages.

Protocol Development

Contributors to the Quip Network test and implement new networking features directly in this core repository.

Getting started: cargo build --release

README

main branch

Substrate Node Template

A fresh Substrate node, ready for hacking 🚀

A standalone version of this template is available for each release of Polkadot in the Substrate Developer Hub Parachain Template repository. The parachain template is generated directly at each Polkadot release branch from the Solochain Template in Substrate upstream

It is usually best to use the stand-alone version to start a new project. All bugs, suggestions, and feature requests should be made upstream in the Substrate repository.

Getting Started

Depending on your operating system and Rust version, there might be additional packages required to compile this template. Check the Install instructions for your platform for the most common dependencies. Alternatively, you can use one of the alternative installation options.

Fetch solochain template code:

git clone https://github.com/paritytech/polkadot-sdk-solochain-template.git solochain-template

cd solochain-template

Build

🔨 Use the following command to build the node without launching it:

cargo build --release

Embedded Docs

After you build the project, you can use the following command to explore its parameters and subcommands:

./target/release/solochain-template-node -h

You can generate and view the Rust Docs for this template with this command:

cargo +nightly doc --open

Single-Node Development Chain

The following command starts a single-node development chain that doesn't persist state:

./target/release/solochain-template-node --dev

To purge the development chain's state, run the following command:

./target/release/solochain-template-node purge-chain --dev

To start the development chain with detailed logging, run the following command:

RUST_BACKTRACE=1 ./target/release/solochain-template-node -ldebug --dev

Development chains:

  • Maintain state in a tmp folder while the node is running.
  • Use the Alice and Bob accounts as default validator authorities.
  • Use the Alice account as the default sudo account.
  • Are preconfigured with a genesis state (/node/src/chain_spec.rs) that includes several pre-funded development accounts.

To persist chain state between runs, specify a base path by running a command similar to the following:

// Create a folder to use as the db base path
$ mkdir my-chain-state

// Use of that folder to store the chain state
$ ./target/release/solochain-template-node --dev --base-path ./my-chain-state/

// Check the folder structure created inside the base path after running the chain
$ ls ./my-chain-state
chains
$ ls ./my-chain-state/chains/
dev
$ ls ./my-chain-state/chains/dev
db keystore network

Connect with Polkadot-JS Apps Front-End

After you start the node template locally, you can interact with it using the hosted version of the Polkadot/Substrate Portal front-end by connecting to the local node endpoint. A hosted version is also available on IPFS. You can also find the source code and instructions for hosting your own instance in the polkadot-js/apps repository.

Quip uses hybrid BABE and GRANDPA consensus keys. Polkadot.js Apps does not require custom types for Quip anymore; for usage notes, see docs/polkadotjs/README.md.

Multi-Node Local Testnet

A scripted three-validator local network is available two ways:

  • Native build: scripts/start-local3.sh builds the debug binary and starts three validators (Alice/Bob/Charlie) against the embedded local3 chain spec.
  • Docker: docker compose up --build starts the same three-validator topology in containers. See the Docker section below.

Both paths use the same hardcoded libp2p node-keys and bootnode peer ID, so they're interchangeable for development.

For background on multi-node consensus, see Simulate a network.

Template Structure

A Substrate project such as this consists of a number of components that are spread across a few directories.

Node

A blockchain node is an application that allows users to participate in a blockchain network. Substrate-based blockchain nodes expose a number of capabilities:

  • Networking: Substrate nodes use the libp2p networking stack to allow the nodes in the network to communicate with one another.
  • Consensus: Blockchains must have a way to come to consensus on the state of the network. Substrate makes it possible to supply custom consensus engines and also ships with several consensus mechanisms that have been built on top of Web3 Foundation research.
  • RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes.

There are several files in the node directory. Take special note of the following:

  • chain_spec.rs: A chain specification is a source code file that defines a Substrate chain's initial (genesis) state. Chain specifications are useful for development and testing, and critical when architecting the launch of a production chain. Take note of the development_config and testnet_genesis functions. These functions are used to define the genesis state for the local development chain configuration. These functions identify some well-known accounts and use them to configure the blockchain's initial state.
  • service.rs: This file defines the node implementation. Take note of the libraries that this file imports and the names of the functions it invokes. In particular, there are references to consensus-related topics, such as the block finalization and forks and other consensus mechanisms such as BABE for block authoring and GRANDPA for finality.

Runtime

In Substrate, the terms "runtime" and "state transition function" are analogous. Both terms refer to the core logic of the blockchain that is responsible for validating blocks and executing the state changes they define. The Substrate project in this repository uses FRAME to construct a blockchain runtime. FRAME allows runtime developers to declare domain-specific logic in modules called "pallets". At the heart of FRAME is a helpful macro language that makes it easy to create pallets and flexibly compose them to create blockchains that can address a variety of needs.

Review the FRAME runtime implementation included in this template and note the following:

  • This file configures several pallets to include in the runtime. Each pallet configuration is defined by a code block that begins with impl $PALLET_NAME::Config for Runtime.
  • The pallets are composed into a single runtime by way of the #[runtime] macro, which is part of the core FRAME pallet library.

Pallets

The runtime in this project is constructed using many FRAME pallets that ship with the Substrate repository and a template pallet that is defined in the pallets directory.

A FRAME pallet is comprised of a number of blockchain primitives, including:

  • Storage: FRAME defines a rich set of powerful storage abstractions that makes it easy to use Substrate's efficient key-value database to manage the evolving state of a blockchain.
  • Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched) from outside of the runtime in order to update its state.
  • Events: Substrate uses events to notify users of significant state changes.
  • Errors: When a dispatchable fails, it returns an error.

Each pallet has its own Config trait which serves as a configuration interface to generically define the types and parameters it depends on.

Alternatives Installations

Instead of installing dependencies and building this source directly, consider the following alternatives.

Nix

Install nix and nix-direnv for a fully plug-and-play experience for setting up the development environment. To get all the correct dependencies, activate direnv direnv allow.

Docker

A multi-stage Dockerfile builds the quip-network-node binary on top of debian:bookworm-slim (~80 MB runtime image). The image exposes the binary directly as ENTRYPOINT, so any Substrate CLI flag works at docker run time.

Build

docker build -t quip-network-node:local .

The first build compiles the full workspace and takes a while. BuildKit cache mounts (declared in the Dockerfile) keep the cargo registry and target directory between local rebuilds.

Pre-built images

Every push to main and every git tag publishes an image to the project's GitLab Container Registry, so you don't have to build locally:

docker pull registry.gitlab.com/quip.network/quip-protocol-rs/quip-network-node:latest

Tag scheme:

  • :latest — tip of main. Floating, advances on every merge.
  • :sha-<short> — pinned to a specific commit on main or to a tagged release.
  • :<git-tag> — pinned to a release tag (e.g. :v0.1.0).

Run as a validator

docker run --rm -v quip-data:/data -p 9944:9944 -p 30333:30333 \
  quip-network-node:local \
  --chain=local3 --base-path=/data \
  --validator --alice \
  --unsafe-rpc-external --rpc-cors=all

--unsafe-rpc-external is required because Substrate refuses to combine --rpc-external with --validator by default (a safety guard against exposing a validator's RPC to the public internet). For local development the unsafe flag is fine; for production validators you almost certainly do not want any external RPC at all.

Run as a full node

Same command, omit --validator (and the --alice/--bob/--charlie shortcut):

docker run --rm -v quip-data:/data -p 9944:9944 -p 30333:30333 \
  quip-network-node:local \
  --chain=local3 --base-path=/data \
  --bootnodes=/dns/<bootnode-host>/tcp/30333/p2p/<peer-id> \
  --rpc-external --rpc-cors=all

Local 3-node network via docker-compose

docker-compose.yml reproduces scripts/start-local3.sh in containers:

docker compose up --build           # start
docker compose down                 # stop, keep chain state
docker compose down -v              # stop and wipe state

Then connect Polkadot.js Apps to ws://localhost:9944 (node1), ws://localhost:9945 (node2), or ws://localhost:9946 (node3).

Public testnet

quip-testnet is the public testnet ("AGLS" tokens, 12 decimals). The canonical genesis is baked into the v0.2.0+ binary as the quip-testnet chain spec preset and also published as a raw JSON file at nodes.quip.network/chain-specs/quip-testnet.json.

Quickstart (Docker)

# Pull the matching release image
docker pull registry.gitlab.com/quip.network/quip-protocol-rs/quip-network-node:v0.2.0

# Join the testnet as a full node (no validator key required)
docker run --rm -v quip-data:/data -p 9944:9944 -p 30333:30333 \
  registry.gitlab.com/quip.network/quip-protocol-rs/quip-network-node:v0.2.0 \
  --chain=quip-testnet --base-path=/data \
  --name="my-quip-node"

The three canonical bootnodes (bootnode-{1,2,3}.testnet.quip.network) are embedded in the chain spec, so peer discovery happens automatically.

Using the hosted raw chain spec

Alternatively, fetch the published JSON spec from nodes.quip.network and pass its path to --chain:

curl -fsSL https://gitlab.com/quip.network/nodes.quip.network/-/raw/main/chain-specs/quip-testnet.json \
    -o quip-testnet.json

docker run --rm -v "$PWD:/spec" -v quip-data:/data -p 9944:9944 -p 30333:30333 \
  registry.gitlab.com/quip.network/quip-protocol-rs/quip-network-node:v0.2.0 \
  --chain=/spec/quip-testnet.json --base-path=/data

Running a validator

Operator validator slots are committed at genesis (see docs/genesis-quip-testnet.md). To rotate or add a slot, follow docs/testnet-keys.md and the scripts/derive-operator-keys.sh helper.

View on GitHub

Recent activity

commits and pull requests

Code frequency

additions and deletions
+16.7K-16.7KWeek of 2026-03-08: +16,749 linesWeek of 2026-03-08: -0 linesWeek of 2026-03-15: +0 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +0 linesWeek of 2026-03-22: -0 linesWeek of 2026-03-29: +731 linesWeek of 2026-03-29: -3 linesWeek of 2026-04-05: +3,792 linesWeek of 2026-04-05: -3,145 linesWeek of 2026-04-12: +374 linesWeek of 2026-04-12: -39 linesWeek of 2026-04-19: +0 linesWeek of 2026-04-19: -0 linesWeek of 2026-04-26: +7,872 linesWeek of 2026-04-26: -213 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +1,046 linesWeek of 2026-05-10: -59 linesWeek of 2026-05-17: +4,786 linesWeek of 2026-05-17: -1,715 linesWeek of 2026-05-24: +5,555 linesWeek of 2026-05-24: -1,370 linesWeek of 2026-05-31: +237 linesWeek of 2026-05-31: -6 linesWeek of 2026-06-07: +1,617 linesWeek of 2026-06-07: -179 linesWeek of 2026-06-14: +2,560 linesWeek of 2026-06-14: -411 linesWeek of 2026-06-21: +5,623 linesWeek of 2026-06-21: -657 linesWeek of 2026-06-28: +5,171 linesWeek of 2026-06-28: -649 linesWeek of 2026-07-05: +391 linesWeek of 2026-07-05: -246 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +41 linesWeek of 2026-07-19: -29 linesWeek of 2026-07-26: +32 linesWeek of 2026-07-26: -6 linesMar 8, 2026Jul 26, 2026
+56.6K lines added, -8.7K removed over the last year.

Commits per week

last 52 weeks
300Week of 2025-08-02: 0 commitsWeek of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 1 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 2 commitsWeek of 2026-04-05: 3 commitsWeek of 2026-04-12: 1 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 3 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 4 commitsWeek of 2026-05-17: 25 commitsWeek of 2026-05-24: 2 commitsWeek of 2026-05-31: 4 commitsWeek of 2026-06-07: 8 commitsWeek of 2026-06-14: 4 commitsWeek of 2026-06-21: 29 commitsWeek of 2026-06-28: 30 commitsWeek of 2026-07-05: 2 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 1 commitsWeek of 2026-07-26: 1 commitsAug 2, 2025Jul 26, 2026
120 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 1 commitsSun 14:00 — 0 commitsSun 15:00 — 1 commitsSun 16:00 — 0 commitsSun 17:00 — 0 commitsSun 18:00 — 1 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 0 commitsSun 22:00 — 5 commitsSun 23:00 — 1 commitsMon 0:00 — 3 commitsMon 1:00 — 1 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 0 commitsMon 12:00 — 4 commitsMon 13:00 — 4 commitsMon 14:00 — 1 commitsMon 15:00 — 0 commitsMon 16:00 — 1 commitsMon 17:00 — 2 commitsMon 18:00 — 0 commitsMon 19:00 — 2 commitsMon 20:00 — 5 commitsMon 21:00 — 3 commitsMon 22:00 — 2 commitsMon 23:00 — 0 commitsTue 0:00 — 2 commitsTue 1:00 — 1 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 1 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 0 commitsTue 11:00 — 0 commitsTue 12:00 — 0 commitsTue 13:00 — 0 commitsTue 14:00 — 0 commitsTue 15:00 — 0 commitsTue 16:00 — 2 commitsTue 17:00 — 0 commitsTue 18:00 — 0 commitsTue 19:00 — 0 commitsTue 20:00 — 0 commitsTue 21:00 — 3 commitsTue 22:00 — 4 commitsTue 23:00 — 0 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 5 commitsWed 9:00 — 3 commitsWed 10:00 — 0 commitsWed 11:00 — 7 commitsWed 12:00 — 1 commitsWed 13:00 — 1 commitsWed 14:00 — 1 commitsWed 15:00 — 2 commitsWed 16:00 — 4 commitsWed 17:00 — 0 commitsWed 18:00 — 1 commitsWed 19:00 — 0 commitsWed 20:00 — 1 commitsWed 21:00 — 1 commitsWed 22:00 — 2 commitsWed 23:00 — 0 commitsThu 0:00 — 2 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 2 commitsThu 4:00 — 0 commitsThu 5:00 — 2 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 0 commitsThu 9:00 — 4 commitsThu 10:00 — 0 commitsThu 11:00 — 0 commitsThu 12:00 — 0 commitsThu 13:00 — 0 commitsThu 14:00 — 0 commitsThu 15:00 — 0 commitsThu 16:00 — 0 commitsThu 17:00 — 0 commitsThu 18:00 — 0 commitsThu 19:00 — 1 commitsThu 20:00 — 0 commitsThu 21:00 — 0 commitsThu 22:00 — 0 commitsThu 23:00 — 0 commitsFri 0:00 — 1 commitsFri 1:00 — 1 commitsFri 2:00 — 3 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 1 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 0 commitsFri 11:00 — 3 commitsFri 12:00 — 1 commitsFri 13:00 — 2 commitsFri 14:00 — 0 commitsFri 15:00 — 2 commitsFri 16:00 — 2 commitsFri 17:00 — 1 commitsFri 18:00 — 2 commitsFri 19:00 — 2 commitsFri 20:00 — 0 commitsFri 21:00 — 0 commitsFri 22:00 — 0 commitsFri 23:00 — 5 commitsSat 0:00 — 1 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 0 commitsSat 14:00 — 0 commitsSat 15:00 — 1 commitsSat 16:00 — 0 commitsSat 17:00 — 0 commitsSat 18:00 — 0 commitsSat 19:00 — 0 commitsSat 20:00 — 0 commitsSat 21:00 — 0 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Apr 10, 2026daily#9+332
  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    125.4K stars · Rust

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.2K stars · Rust

  • openai/codex

    Lightweight coding agent that runs in your terminal

    104.6K stars · Rust