Skip to main content

Godfather CLI

Command-line client for Godfather, free compute for ASU students run by the AI Society at ASU. Log in with your Discord account and SSH into a GPU or CPU machine the club pays for, with your own private workspace.

Python License

Installation

Install from PyPI:

pip install godfather-cli

Or install straight from GitHub:

pip install git+https://github.com/theaisocietyasu/godfather.git#subdirectory=cli

For local development:

git clone https://github.com/theaisocietyasu/godfather.git
cd godfather/cli
pip install -e .

Getting started

  1. Run godfather with no arguments. On first run you won't be logged in yet, so it'll walk you into the login flow.
  2. It prints a link to the admin portal's /cli-auth page. Open it, sign in with Discord, and copy the token shown there.
  3. Paste the token back into the terminal. The CLI verifies it with the backend and stores it in ~/.godfather/config.json.
  4. From the menu (or godfather connect), pick a pod. The CLI creates an SSH key on your machine the first time, asks the server for a 12-hour certificate for that pod, and opens the connection.

A token lasts 30 days. When it expires, or if you leave the Discord server, the CLI asks you to log in again.

You need OpenSSH installed (ssh and ssh-keygen). macOS, Linux and Windows 10+ ship it.

Usage

Interactive menu

Running godfather with no arguments opens a menu to list pods, connect, check status, or log out.

Commands

godfather list                    # List pods you can connect to
godfather connect                 # Connect to a pod, picking from a list
godfather connect <pod-id>        # Connect to a specific pod
godfather status                  # Show login and configuration status
godfather auth                    # Log in, or refresh an expired session
godfather logout                  # Clear the stored session
godfather update                  # Update the CLI to the latest version

# Point the CLI at a non-default backend (mainly for local development)
godfather --api-url https://your-backend.example.com list

Files it keeps

Everything lives in ~/.godfather/:

  • config.json: your token (mode 600). Treat it like a password.
  • ssh/id_ed25519, ssh/id_ed25519.pub: your SSH key, created on first connect. The private key never leaves your machine.
  • ssh/id_ed25519-cert.pub: the certificate for the last pod you connected to.

Delete the folder to reset everything.

Backend URL

By default the CLI talks to https://admin.ais-asu.com. You can override this with, in order of priority: GODFATHER_API_URL, BACKEND_URL, NEXT_PUBLIC_BACKEND_URL, NEXT_PUBLIC_API_URL, or the --api-url flag. This mainly matters if you're running the backend locally.

Troubleshooting

  • "Couldn't reach <url>" — check your internet connection and that the API URL is correct (godfather status shows what's currently configured).
  • "That token is invalid or expired" — get a fresh token from the admin portal's /cli-auth page and try again.
  • "SSH could not log in to the pod" — the pod was created before Godfather 1.1.0 or does not run the godfather-base image. Ask an admin to recreate it.
  • "A valid SSH public key is required" — your CLI is older than the server. Run godfather update.
  • ssh: command not found — install OpenSSH; the CLI uses your system's ssh and ssh-keygen.

Development

The code is in godfather_cli/: cli.py (commands and menu), auth.py (token login), pod_manager.py (API calls), ssh_connector.py (keys, certificate, running ssh), update_checker.py (PyPI version check), ui.py (shared console styling). Tests are in tests/:

pip install -e . pytest
pytest -q tests

Releases go to PyPI when a cli-v<version> tag is pushed; see DEPLOYMENT.md in the repo root.

Contributing

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/your-feature).
  3. Commit your changes and open a Pull Request.

License

MIT — see the LICENSE file for details.

Support

Built by AI Society at Arizona State University.

Metadata

Release files for godfather-cli 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for godfather-cli 1.1.0
File Size Uploaded
godfather_cli-1.1.0.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for godfather-cli 1.1.0
File Interpreter ABI Platform
godfather_cli-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.9 kB

Release files / godfather_cli-1.1.0.tar.gz

Download URL godfather_cli-1.1.0.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e97e17cd5986adb0f1590ca7240c8fcec8ed3eb96c76f518b1a477baf3e0e471
BLAKE2b-256 checksum
How to use checksums
0bff93e578b419cbee800602c82c731ea849abb7c15174f978b260aa60854ebd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / godfather_cli-1.1.0-py3-none-any.whl

Download URL godfather_cli-1.1.0-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3459677873831cd2773c856224a8d023fef34882551af599f87413674c58ce15
BLAKE2b-256 checksum
How to use checksums
00feccc57363af9213c01fffd9b72d31193173f957385b5083df19dbad65463a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page