pip install githost
githost -h
Post the local ssh public key at ~/.ssh/id_rsa.pub to github.
githost github key-post
Each service also has a two-letter alias: gh (github), gl (gitlab) and
bb (bitbucket), e.g. githost gh key-post, and its own command with the
service already selected: ggh, ggl and gbb, e.g.
ggl ls-mr.
Use github's API to list the existing repositories in JSON format:
githost github repo-list
[
...
{
"id": 149032817,
"name": "emacs-buttons",
"full_name": "erjoalgo/emacs-buttons",
"private": false,
"owner": {
"login": "erjoalgo",
"id": 5349288,
"node_id": "MDQ6VXNlcjUzNDkyODg=",
"avatar_url": "https://avatars.githubusercontent.com/u/5349288?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/erjoalgo",
...
},
...
]
Publish the local git repo at the current directory to github:
githost github repo-create
If required authentication is missing or invalid at any time, the tool will prompt and walk the user through how to obtain the appropriate github, gitlab or bitbucket API tokens, and provide the option to cache those tokens locally.
GitLab
The same commands work with gitlab in place of github, using a personal
access token with the api scope:
githost gitlab key-post
githost gitlab repo-list
githost gitlab repo-create
For a self-hosted GitLab instance, pass its API base url:
githost gitlab -b https://gitlab.example.com/api/v4 repo-list
githost gitlab ls-mr lists your open and merged merge requests across all
projects, then the branches you pushed to that have neither, with null in the
first column. Default branches and deleted branches are skipped. Columns: MR,
state, last modified date, url, branch, title.
Inside a clone of a GitLab project (the gitlab remote is used if present,
otherwise origin; override with -R REMOTE):
githost gitlab create-mr opens a merge request from the current branch, which
must already be pushed, into the default branch. The last commit message is
opened in $EDITOR to become the title (first line) and description, unless
--title is given.
Metadata
Release files for githost 2026.11.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| githost-2026.11.9.0.tar.gz | 16.2 kB | Without provenance | Details for githost-2026.11.9.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| githost-2026.11.9.0-py3-none-any.whl | Python 3 | none | any | Details for githost-2026.11.9.0-py3-none-any.whl |
Total release size: 26.7 kB
Release files / githost-2026.11.9.0.tar.gz
| Download URL | githost-2026.11.9.0.tar.gz |
|---|---|
| Size | 16.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10e04c7ecb88eef922dc2126337a87ee5c5020cf80018c613a837d2830b2e610
|
|
BLAKE2b-256 checksum How to use checksums |
c89437f30669a87db5f492bb24e1c9b83074d5d3f87e5faf2ebc9ed978f1d053
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / githost-2026.11.9.0-py3-none-any.whl
| Download URL | githost-2026.11.9.0-py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c92c48d8ba3ce274a69f26015201eaf70d32941040b8848c4289e6320357323b
|
|
BLAKE2b-256 checksum How to use checksums |
8b656c386c88109cbe6e0995188df8adb7dba65e357307dbd24c88b7e9f2d5d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for githost 2026.11.9.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.