Skip to main content

A calm, fast terminal companion for git — AI commit messages, live sync, and one-command onboarding.

Project description

Ryft

A calm, fast terminal companion for git — AI commit messages, live sync, formatting, and health checks, wrapped in a premium terminal UI.

pip install ryft
ryft

That's it. If this is the first time Ryft has been run in this folder, it will walk you through a 10-second setup and drop you straight into a ready-to-use session.

What it does

  • AI commit messages — a small local model (via Ollama) writes conventional commit messages from your diff. Tiny changes skip the AI entirely; identical diffs are cached.
  • Live syncryft watch watches your project and automatically formats, messages, commits, and (optionally) pushes on save.
  • Formatting — strips comments and collapses blank lines for Python and Lua, safely (it verifies the result still parses before writing).
  • AI review & analysis/review and /analyze for a second pair of eyes on your changes, using a larger local model.
  • ryft doctor — a full health check (Python, git, remotes, branch, Ollama, models, config, permissions, repo state) with plain-English explanations and one-command auto-fixes (ryft doctor fix).

Usage

Ryft works two ways:

ryft              # interactive session — type /help for commands
ryft doctor       # run one command and exit, e.g. from a script or CI
ryft commit
ryft watch
ryft --help       # usage summary
ryft --version    # installed version

Running a single command (anything after ryft) never blocks on a prompt — if there's no .src.py yet it proceeds on sane defaults instead of asking, so it's safe to call from scripts and CI. Run ryft init first if you want the interactive setup walkthrough.

Inside the interactive session, everything is a slash command:

/status             project status at a glance
/init                set up Ryft in this project (safe to re-run)
/commit              commit all changed files, AI messages generated in parallel
/push  /pull         publish or fetch
/diff  /diff <file>  GitHub-style diff, scrollable
/review <file>       AI code review
/analyze             AI summary of everything that changed
/sync start|stop     background watch mode
/doctor  /doctor fix  health check + auto-repair
/config init          write a .src.py with the defaults
/help                 full command list

Configuration

Ryft is configured with a .src.py file at your project root — plain Python, not YAML/TOML, so it's just as easy to script as it is to read:

class Project:
    name = "my-app"

class Ollama:
    commit_model = "qwen3:0.6b"
    analysis_model = "qwen2.5-coder:7b-instruct-q4_K_M"

class Git:
    branch = "main"
    remote = "origin"

If no .src.py exists, Ryft offers to create one the first time you run it — you're never left guessing what to do next.

Development

pip install -e ".[dev]"
pytest

The codebase is a small set of focused modules:

module responsibility
config.py .src.py discovery, loading, validation
git.py every git invocation goes through here
ai.py Ollama client, diff summarizer, commit messages
formatter.py comment stripping / blank-line collapsing
doctor.py health checks
recovery.py shared auto-repair helpers (used by doctor + commands)
onboarding.py first-run setup flow
sync.py file-watch → format → commit → push pipeline
commands.py the command registry / dispatcher
ui.py the terminal UI (Rich + Prompt Toolkit)

License

MIT

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

ryft-1.0.1.tar.gz (49.3 kB view details)

Uploaded Source

Built Distribution

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

ryft-1.0.1-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

Details for the file ryft-1.0.1.tar.gz.

File metadata

  • Download URL: ryft-1.0.1.tar.gz
  • Upload date:
  • Size: 49.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for ryft-1.0.1.tar.gz
Algorithm Hash digest
SHA256 dc8ce01ac8dc5cf80f6f246028f2ddcc5c167909c328062252a1fbd84a0feb5f
MD5 3526d96670421cf534b6e050e124bbe4
BLAKE2b-256 a4aa6c55cad20c9031635a3d0ab66ef5005a102592c61c9894487e0d2762412c

See more details on using hashes here.

File details

Details for the file ryft-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ryft-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 48.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for ryft-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14795b35534352ee3d70571269a00de37a84d7629caeaca77635a64c13868f6c
MD5 cc4f7b0256f715c6e9110e658247d437
BLAKE2b-256 e4f2b1cf2f28dffb99f07af82129741d61e60c9fe74a6d04cf9f7a4fedfa7525

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