Skip to main content

PyGitTools

Hooks, tooling, and pygit2 workflows used by PyGitWeb. Can be used headless for many purposes.

PGT

PGT is a command line curses application you can use to make commits, switch branches and repos, and do other basic git tasks. Keybinds:

  • Arrow keys or j/k to navigate
  • Enter to confirm actions, stage or unstage files or categories
  • Space to collapse menus
  • ctrl-c or esc to exit.

To run from the repo root, use uv run pgt.

Hook framework

pygittools.hooks provides a thin Hook base class plus one subclass per git hook type (client- and server-side). Receive-pack hooks (PreReceive, PostReceive) parse their ref-update lines via parse_ref_updates(stdin).

pygittools.hooks_notify adds PreReceiveNotify / PostReceiveNotify: minimal hook variants that POST ?project=<name> to a pygitweb /_internal/notify endpoint so its long-poll updates=true subscribers wake up immediately on each push. Notification failures never reject the push.

See hook_samples/ for ready-to-use scripts.

MCP task server

Boards, tasks, and comments stored in Git can be exposed to AI tools via MCP.

Configure the repository path with PYGITTOOLS_REPO, or set PYGITWEB_PROJECTROOT and pass a project argument to each tool. When neither is set, the server discovers a repo from the current working directory.

Run locally:

PYGITTOOLS_REPO=/path/to/repo uv run pygittools-mcp

Cursor project config (.cursor/mcp.json):

{
  "mcpServers": {
    "pygittools-tasks": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/pygitweb", "pygittools-mcp"],
      "env": {
        "PYGITTOOLS_REPO": "/path/to/your/repo"
      }
    }
  }
}

Tools: list_boards_tool, list_tasks_tool, get_task_tool, board_by_status_tool. Resources: board://{board_name}, task://{task_ref}.

Download files

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

Source Distribution

pygittools-0.2.2.tar.gz (68.2 kB view details)

Uploaded Source

Built Distribution

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

pygittools-0.2.2-py3-none-any.whl (94.8 kB view details)

Uploaded Python 3

File details

Details for the file pygittools-0.2.2.tar.gz.

File metadata

  • Download URL: pygittools-0.2.2.tar.gz
  • Upload date:
  • Size: 68.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pygittools-0.2.2.tar.gz
Algorithm Hash digest
SHA256 dcbd8af3d49f105518e85b95be1a8f54034e75c62b906f4620109f02ee9704a0
MD5 8e211d6f57840db157014903c768591f
BLAKE2b-256 7c255926346ed64615a8299feda6f1899f0750dbc0c2d1c50b9abd648fd6384b

See more details on using hashes here.

File details

Details for the file pygittools-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pygittools-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 94.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pygittools-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 075e5ccf6cbb3ff4700680f2ea0860e4e8180a617d2bad8c64067558d83a7d3b
MD5 34fb6695cd1fab5c5f9f46e65ef37e86
BLAKE2b-256 e9f39b2c7b539e9460b2074a3acfda8f4c8aca68dea2dd44e44279fe1319dd66

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