Skip to main content

Git-based package manager CLI

Project description

zyt

A simple GitHub repository manager and git command wrapper from the terminal


๐Ÿ“– About

zyt is a lightweight command-line tool that simplifies common GitHub workflows such as cloning, forking, updating, syncing, and managing repositories.
It acts as a small wrapper around git, ssh, and (optionally) the GitHub CLI (gh) to reduce repetitive commands and decision-making.

The goal of zyt is to let you work with repositories using short, memorable commands while automatically choosing the best authentication method available.


๐Ÿ”ง The Problem It Solves

Working with GitHub repositories often involves:

  • Remembering and typing long git commands
  • Manually setting upstream for forks
  • Handling SSH vs HTTPS vs GitHub CLI
  • Keeping forks up-to-date with upstream
  • Cloning private repositories reliably
  • Managing cloned and forked repositories

zyt solves these by:

  • Auto-detecting authentication (GitHub CLI โ†’ SSH โ†’ HTTPS)
  • Automatically configuring origin and upstream
  • Providing one-command workflows for common tasks
  • Keeping track of cloned and forked repositories

โœจ Features

  • ๐Ÿ“ฅ Clone public and private repositories
  • ๐Ÿด Fork repositories with upstream automatically configured
  • ๐Ÿ”„ Sync forks with upstream (rebase โ†’ merge fallback)
  • โฌ†๏ธ Update repositories safely
  • ๐Ÿ—‘๏ธ Uninstall cloned repositories
  • ๐Ÿ” Authentication auto-detection
  • โš™๏ธ Minimal dependencies
  • โฑ Track cloned and forked repositories with timestamp and auth method

๐Ÿ›  Requirements

  • Python >=3.8
  • git
  • One of the following for authentication:
    • GitHub CLI (gh) (recommended)
    • SSH key configured with GitHub
    • HTTPS credentials / token

Optional but recommended:

  • gh authenticated via:
    gh auth login
    

๐Ÿš€ Getting started

  • Install with pipx:
     pipx install zyt-si
    

[!NOTE] zyt hasn't yet tested on Windows, if any error occurs, please notify by creating an issue or start a pull request.

๐Ÿ”ฅ Usage

zyt <command> <username/repository>
  • Commands
    • clone a repository

      zyt in <username/repository>
      
      • Works for public repositories
      • Works for private repositories if authenticated
    • delete a repository

      zyt un <username/repository>
      
      • Removes the local directory after confirmation
    • update a repository (re-clone)

      zyt up <username/repository>
      
      • Deletes old local copy
      • Clones a fresh copy
      • Useful for corrupted or outdated directories
      • works if in the directory that contains the repo's directory
    • fork a repository

      zyt f <username/repository>
      

      Automatically:

      • Forks the repository
      • Clones your fork
      • Sets:
        • origin โ†’ your fork
        • upstream โ†’ original repository
    • sync fork with upstream

      zyt sync <username/repository>
      

      Performs:

      • git fetch upstream
      • Attempts git rebase upstream/<branch>
      • Falls back to git merge if rebase fails
    • see cloned(in), forked(f) or all(a) repositories

      zyt l <cmd(in/f/a)>
      
    • see info of a repository

      zyt info <repo>
      

##๐Ÿ“‚ Project structure:

zyt/
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ .gitignore
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ zyt/
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ”œโ”€โ”€ __main__.py        โ† python -m zit
โ”‚       โ”œโ”€โ”€ cli.py             โ† argument parsing, command dispatch
โ”‚       โ”œโ”€โ”€ config.py          โ† config paths (XDG / AppData)
โ”‚       โ”œโ”€โ”€ registry.py        โ† JSON registry (cloned/forked)
โ”‚       โ”œโ”€โ”€ auth.py            โ† auth detection (gh / ssh / https)
โ”‚       โ”œโ”€โ”€ gitops.py          โ† clone, fork, sync etc. git based operations
โ”‚       
โ”‚
โ””โ”€โ”€ .github/
    โ””โ”€โ”€ workflows/
        โ”œโ”€โ”€ release.yaml


๐Ÿ’ป Updating zyt

  • Zyt would get updates in future with new features.
  • When new versions of zyt would be available, it can be updated by pipx upgrade zyt-si.
      pipx upgrade zyt-si
    

๐Ÿ“„ License

Zyt is licensed under the GNU General Public License v3

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

zyt_si-2.0.2.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

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

zyt_si-2.0.2-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file zyt_si-2.0.2.tar.gz.

File metadata

  • Download URL: zyt_si-2.0.2.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for zyt_si-2.0.2.tar.gz
Algorithm Hash digest
SHA256 a84797d513a7669c62bfe90dd6fe8dedaa3b676a26e1e86f2796aca7ee0c12ca
MD5 b9c3d4c62053ef41dfe9c8c1fc3ca47d
BLAKE2b-256 d536a0aa7ce3c4e93309115214584d6fc93d6b8a34976497cd1862a37c1c60e9

See more details on using hashes here.

File details

Details for the file zyt_si-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: zyt_si-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for zyt_si-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d49f4b85795731abb71f026be5d762f5120ad60c4a3ca673e6a45c96e919ed1b
MD5 7b5cd9dbf99ef535c1b7baab4bd49512
BLAKE2b-256 8acedee5df7714ab122e58c5805d1b2b824e2108fd078104e9edb4b4662337c9

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