OctoTrack
An async CLI client for GitHub, built to track commits, pull requests, issues, releases, and general repository activity — straight from your terminal.
OctoTrack talks directly to the GitHub REST API using httpx, so there's no dependency on the gh CLI or any GitHub SDK.
Table of Contents
Installation
Install via pip:
pip install octotrack
Requires Python 3.13+.
Quick Start
# One-time setup: creates config/data directories
octotrack setup
# Add a GitHub personal access token
octotrack config edit-token
# Set a default repo so you don't have to type it every time
octotrack repo default JKG-cpu/OctoTrack
# Pull general info on a repo
octotrack repo info
Commands
All commands are grouped under three top-level subcommands: setup, config, and repo. Run octotrack --help, or --help on any subcommand, to see this reference from the CLI itself.
setup
Manages the local files OctoTrack needs to run (config directory, data directory, and env file for your token).
| Command | Description |
|---|---|
octotrack setup |
Creates the config and data directories, and the settings file, if they don't already exist. Safe to run again — existing valid setups are left untouched. |
octotrack setup validate |
Checks that all required paths exist and reports whether a GitHub token is set. |
octotrack setup remove |
Deletes all data and config files created by OctoTrack, after a confirmation prompt. |
config
Reads and writes local configuration, including your GitHub token.
| Command | Description |
|---|---|
octotrack config show |
Prints all current config values. |
octotrack config edit-token |
Prompts for a GitHub token and stores it as a local environment variable. Never written to the config file. |
octotrack config set <key> <value> |
Sets a config value directly. Valid keys: default_owner, default_repo, default_pr_state, api_base_url. |
octotrack config clear [--key/-k <key>] |
Resets a single config key to its default. Omit --key to reset the entire config. |
octotrack config path |
Prints the path to the config settings file. |
repo
Fetches and displays information about a GitHub repository.
| Command | Description |
|---|---|
octotrack repo info [owner/repo] |
Shows general repository info: description, language, visibility, stars, forks, license, and README preview. |
octotrack repo default <owner/repo> |
Sets a default owner and/or repo, used whenever owner/repo is omitted from other repo commands. |
octotrack repo readme [owner/repo] |
Fetches and renders just the repository's README. |
octotrack repo contents [owner/repo] [options] |
Lists the contents of a repository. |
repo contents options:
| Flag | Description |
|---|---|
-p, --path <path> |
List contents of a specific folder in the repository. |
-h, --hidden |
Include hidden files (dotfiles) in the listing. |
-l, --list |
Print as a flat list instead of a tree. |
--depth <int> |
How many levels deep to recurse into subdirectories (default: 3). |
Every repo command that accepts owner/repo will fall back to your configured default (set via octotrack repo default) for whichever part — owner, repo, or both — you omit.
Configuration
OctoTrack stores its config in an OS-appropriate location via platformdirs. Run octotrack config path to see the exact file on your system.
Your GitHub token is never stored in the config file — it lives exclusively in a local .env file managed by octotrack config edit-token, and is loaded as an environment variable at runtime.
License
MIT — see LICENSE for details.
Contributing
See Contributing.md for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file octotrack-0.1.0.tar.gz.
File metadata
- Download URL: octotrack-0.1.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e39ed8d63445665f57a2b0aceb463f7f7204ebf0c725a61acf4233242e449e7
|
|
| MD5 |
964283ac0a242f29f99130004067729c
|
|
| BLAKE2b-256 |
66328d91df2cb899b031cfad4c22587c9c570009587b975d5ec73f29a91212d3
|
Provenance
The following attestation bundles were made for octotrack-0.1.0.tar.gz:
Publisher:
publish.yaml on JKG-cpu/OctoTrack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
octotrack-0.1.0.tar.gz -
Subject digest:
8e39ed8d63445665f57a2b0aceb463f7f7204ebf0c725a61acf4233242e449e7 - Sigstore transparency entry: 2287975457
- Sigstore integration time:
-
Permalink:
JKG-cpu/OctoTrack@b5da237ad1eeb9c0646633f2e1afdc2e3d90d952 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/JKG-cpu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@b5da237ad1eeb9c0646633f2e1afdc2e3d90d952 -
Trigger Event:
push
-
Statement type:
File details
Details for the file octotrack-0.1.0-py3-none-any.whl.
File metadata
- Download URL: octotrack-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5070e891116771eca0ea38b92c26d4ac192a9ab6fc86295bf7af6688e74d7674
|
|
| MD5 |
090ae87f46b685de8f848d1bc10c6f9e
|
|
| BLAKE2b-256 |
d9c9deee3ee7e9da9c04ed76c290329271b9ca25b1b75664ca44f9719d2bc903
|
Provenance
The following attestation bundles were made for octotrack-0.1.0-py3-none-any.whl:
Publisher:
publish.yaml on JKG-cpu/OctoTrack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
octotrack-0.1.0-py3-none-any.whl -
Subject digest:
5070e891116771eca0ea38b92c26d4ac192a9ab6fc86295bf7af6688e74d7674 - Sigstore transparency entry: 2287975508
- Sigstore integration time:
-
Permalink:
JKG-cpu/OctoTrack@b5da237ad1eeb9c0646633f2e1afdc2e3d90d952 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/JKG-cpu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@b5da237ad1eeb9c0646633f2e1afdc2e3d90d952 -
Trigger Event:
push
-
Statement type: