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
gitcommands - Manually setting
upstreamfor 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
originandupstream - 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
- GitHub CLI (
Optional but recommended:
ghauthenticated via:gh auth login
๐ Getting started
- Install with pipx:
pipx install zyt-si
[!NOTE]
zythasn'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 forkupstreamโ original repository
-
sync fork with upstream
zyt sync <username/repository>Performs:
git fetch upstream- Attempts
git rebase upstream/<branch> - Falls back to
git mergeif 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
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a84797d513a7669c62bfe90dd6fe8dedaa3b676a26e1e86f2796aca7ee0c12ca
|
|
| MD5 |
b9c3d4c62053ef41dfe9c8c1fc3ca47d
|
|
| BLAKE2b-256 |
d536a0aa7ce3c4e93309115214584d6fc93d6b8a34976497cd1862a37c1c60e9
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d49f4b85795731abb71f026be5d762f5120ad60c4a3ca673e6a45c96e919ed1b
|
|
| MD5 |
7b5cd9dbf99ef535c1b7baab4bd49512
|
|
| BLAKE2b-256 |
8acedee5df7714ab122e58c5805d1b2b824e2108fd078104e9edb4b4662337c9
|