@@ -494,12 +494,19 @@ fn print_grouped_help() -> std::io::Result<()> {
494494
495495 // Define command groupings and their order (excluding MISC)
496496 let groups = [
497- ( "Inspection" . yellow ( ) , vec ! [ "status" , "log" ] ) ,
497+ ( "Inspection" . yellow ( ) , vec ! [ "status" ] ) ,
498498 (
499499 "Branching and Committing" . yellow ( ) ,
500- vec ! [ "commit" , "push" , "new" , "branch" , "base" , "mark" , "unmark" ] ,
500+ vec ! [ "commit" , "new" , "branch" , "base" , "mark" , "unmark" ] ,
501+ ) ,
502+ (
503+ "Server Interactions" . yellow ( ) ,
504+ vec ! [ "push" , "review" , "forge" ] ,
505+ ) ,
506+ (
507+ "Editing Commits" . yellow ( ) ,
508+ vec ! [ "rub" , "describe" , "absorb" ] ,
501509 ) ,
502- ( "Editing Commits" . yellow ( ) , vec ! [ "rub" , "describe" ] ) ,
503510 (
504511 "Operation History" . yellow ( ) ,
505512 vec ! [ "oplog" , "undo" , "restore" , "snapshot" ] ,
@@ -515,6 +522,24 @@ fn print_grouped_help() -> std::io::Result<()> {
515522 writeln ! ( stdout, "Usage: but [OPTIONS] <COMMAND>" ) ?;
516523 writeln ! ( stdout, " but [OPTIONS] [RUB-SOURCE] [RUB-TARGET]" ) ?;
517524 writeln ! ( stdout) ?;
525+ writeln ! (
526+ stdout,
527+ "The GitButler CLI can be used to do nearly anything the desktop client can do (and more)."
528+ ) ?;
529+ writeln ! (
530+ stdout,
531+ "It is a drop in replacement for most of the Git commands you would normally use, but Git"
532+ ) ?;
533+ writeln ! (
534+ stdout,
535+ "commands (blame, log, etc) can also be used, as GitButler is fully Git compatible."
536+ ) ?;
537+ writeln ! ( stdout) ?;
538+ writeln ! (
539+ stdout,
540+ "Checkout the full docs here: https://docs.gitbutler.com/cli-overview"
541+ ) ?;
542+ writeln ! ( stdout) ?;
518543
519544 // Keep track of which commands we've already printed
520545 let mut printed_commands = HashSet :: new ( ) ;
@@ -567,6 +592,24 @@ fn print_grouped_help() -> std::io::Result<()> {
567592 writeln ! ( stdout) ?;
568593 }
569594
595+ // Add command completion instructions
596+ writeln ! (
597+ stdout,
598+ "To add command completion, add this to your shell rc: (for example ~/.zshrc)"
599+ ) ?;
600+ writeln ! ( stdout, " eval \" $(but completions zsh)\" " ) ?;
601+ writeln ! ( stdout) ?;
602+
603+ writeln ! (
604+ stdout,
605+ "To use the GitButler CLI with coding agents (Claude Code hooks, Cursor hooks, MCP), see:"
606+ ) ?;
607+ writeln ! (
608+ stdout,
609+ " https://docs.gitbutler.com/features/ai-integration/ai-overview"
610+ ) ?;
611+ writeln ! ( stdout) ?;
612+
570613 writeln ! ( stdout, "{}:" , "Options" . yellow( ) ) ?;
571614 // Truncate long option descriptions if needed
572615 let option_descriptions = [
0 commit comments