Skip to content

CLI Command Reference

Complete reference for all smooth CLI commands.

Global Options

These options are available for all commands:

  • --help - Show help message and exit
  • --version - Show version and exit

Command Structure

smooth <command> <subcommand> [options]

Commands Overview

Command Description
commit Generate AI-powered commit messages
pr Generate pull request titles and summaries
release Generate release notes from git history
config Manage configuration settings
auth Authentication and API key management
docs Documentation utilities (coming soon)

smooth commit

Generate conventional commit messages from staged changes.

smooth commit generate

Generate a commit message from staged git changes.

Usage:

smooth commit generate [OPTIONS]

Options:

Option Description Default
--commit Automatically commit with generated message false
--template PATH Custom commit message template file None
--issue TEXT Associated issue number (e.g., "123" or "#123") Auto-detected from branch
--latency-profile TEXT Latency profile: fast, balanced, quality balanced

Examples:

# Generate commit message from staged changes
git add .
smooth commit generate

# Generate and commit immediately
smooth commit generate --commit

# Specify an issue number
smooth commit generate --issue 123

# Use fast generation (lower quality, faster)
smooth commit generate --latency-profile fast

Output Format:

feat: add user authentication with Auth0

- Implement Auth0 device flow authentication
- Add token storage and refresh logic
- Create auth command group with login/logout
- Add secure token file permissions (0600)

smooth pr

Generate pull request titles and summaries from GitHub PR data.

smooth pr generate

Generate PR title and/or summary from GitHub PR data.

Usage:

smooth pr generate [OPTIONS]

Options:

Option Description Default
--owner TEXT GitHub owner/organization Auto-detected from git remote
--repo TEXT GitHub repository name Auto-detected from git remote
--pr-number INTEGER Pull request number Auto-detected from branch name
--title Generate only the title Both title and summary
--summary Generate only the summary Both title and summary
--push Push generated content to GitHub false
--output TEXT Output format: text or json From config or text
--verbose, -v Show detailed progress and context resolution false
--skip-judging Skip quality judging for faster generation false

Examples:

# Auto-detect everything (on branch "pr-42" in a git repo)
smooth pr generate

# Specify PR number explicitly
smooth pr generate --pr-number 42

# Generate and push to GitHub
smooth pr generate --pr-number 42 --push

# Generate only the title
smooth pr generate --pr-number 42 --title

# Verbose mode (shows where values come from)
smooth pr generate --pr-number 42 --verbose

# Fast mode (skip quality judging)
smooth pr generate --pr-number 42 --skip-judging

# JSON output
smooth pr generate --pr-number 42 --output json

Smart Detection:

The CLI automatically detects:

  • Owner/Repo: From git remote URL (e.g., git@github.com:owner/repo.git)
  • PR Number: From branch names like pr-42, 42-feature, feature-pr-42

Output Format (Text):

feat: implement smart defaults and configuration system

# PR Summary

Generated by: *Smoothdev.io*

## Overview

This PR introduces a four-tier configuration precedence system...

## Changes

### Added
- Four-tier configuration precedence
- Auto-detection of owner/repo from git remotes

### Modified
- Updated all commands to support smart defaults

## Testing

- Added 53 new tests
- All existing tests passing

Output Format (JSON):

{
  "title": "feat: implement smart defaults and configuration system",
  "summary": "# PR Summary\n\nGenerated by: *Smoothdev.io*\n\n..."
}

smooth pr create

Create a new pull request on GitHub (coming soon).


smooth release

Generate release notes from git history between two refs.

smooth release generate

Generate structured release notes from commits and PRs.

Usage:

smooth release generate [OPTIONS]

Options:

Option Description Default
--owner TEXT GitHub owner/organization Auto-detected from git remote
--repo TEXT GitHub repository name Auto-detected from git remote
--from-tag TEXT Starting tag/ref Auto-detected (previous tag)
--to-tag TEXT Ending tag/ref Auto-detected (latest tag or HEAD)
--output TEXT Output format: text or json From config or text
--verbose, -v Show detailed progress false
--push Create/update GitHub release false
--tag TEXT Release tag (required with --push) None
--name TEXT Release name override Generated from tag
--draft Create as draft release false
--prerelease Mark as prerelease false
--skip-judging Skip quality judging for faster generation false

Examples:

# Auto-detect latest two tags
smooth release generate

# Specify tags explicitly
smooth release generate --from-tag v1.0.0 --to-tag v1.1.0

# Generate and push to GitHub Releases
smooth release generate --from-tag v1.0.0 --to-tag v1.1.0 --push --tag v1.1.0

# Create draft release
smooth release generate --push --tag v1.1.0 --draft

# Verbose mode
smooth release generate --verbose

# Fast mode for large releases
smooth release generate --skip-judging

Output Format:

# Release v1.1.0

## New Features

- **Smart Defaults**: Four-tier configuration precedence system
- **Auto-Detection**: Automatic owner/repo detection from git remotes

## Bug Fixes

- Fixed issue with large diff handling
- Resolved GitHub API rate limiting edge cases

## Documentation

- Added comprehensive configuration guide
- Updated README with smart defaults examples

## Statistics

- **Commits**: 47
- **Contributors**: 3
- **Files Changed**: 28

smooth config

Manage user and repository configuration for smart defaults.

smooth config show

Display current configuration settings.

Usage:

smooth config show [OPTIONS]

Options:

Option Description Default
--scope TEXT Scope: user, repo, or all all
--format TEXT Output format: text or json text

Examples:

# Show all configurations
smooth config show

# Show only user config
smooth config show --scope user

# Show as JSON
smooth config show --format json

smooth config get

Get a specific configuration value.

Usage:

smooth config get <key> [OPTIONS]

Options:

Option Description Default
--scope TEXT Scope: user or repo user

Examples:

# Get user's default owner
smooth config get defaults.owner

# Get repo's output format
smooth config get defaults.output --scope repo

smooth config set

Set a configuration value.

Usage:

smooth config set <key> <value> [OPTIONS]

Options:

Option Description Default
--scope TEXT Scope: user or repo user

Examples:

# Set default owner
smooth config set defaults.owner my-org

# Set repo-level output format
smooth config set defaults.output json --scope repo

# Set GitHub token
smooth config set github_token ghp_your_token_here

smooth config init

Initialize configuration file with defaults.

Usage:

smooth config init [OPTIONS]

Options:

Option Description Default
--scope TEXT Scope: user or repo user
--owner TEXT Default GitHub owner None
--repo TEXT Default repository name None
--output TEXT Default output format text

Examples:

# Initialize user config
smooth config init --owner my-org --output text

# Initialize repository config
smooth config init --scope repo --owner my-org --repo my-repo

smooth config path

Show the path to the configuration file.

Usage:

smooth config path [OPTIONS]

Options:

Option Description Default
--scope TEXT Scope: user or repo user

Examples:

# Show user config path
smooth config path

# Show repo config path
smooth config path --scope repo

smooth auth

Authentication and API key management.

smooth auth login

Authenticate with Auth0 device flow.

Usage:

smooth auth login

This opens your browser and prompts you to authorize the application. Your token is stored securely at ~/.smoothdevio/token.json.

smooth auth logout

Remove stored authentication credentials.

Usage:

smooth auth logout

smooth auth apikey-set

Store an API key for authentication (alternative to Auth0).

Usage:

smooth auth apikey-set <api-key>

Example:

smooth auth apikey-set sk_live_abc123_xyz789

smooth auth apikey-show

Show the currently stored API key (masked).

Usage:

smooth auth apikey-show

Output:

Stored API key: sk_live_abc123_********

smooth auth apikey-clear

Remove the stored API key.

Usage:

smooth auth apikey-clear

smooth auth mode-show

Show the effective authentication mode.

Usage:

smooth auth mode-show

Output: auto, jwt, or api-key

smooth auth mode-set

Set the authentication mode preference.

Usage:

smooth auth mode-set <mode>

Modes:

  • auto - Automatically choose (API key if present, otherwise JWT)
  • jwt - Force JWT (Auth0) authentication
  • api-key - Force API key authentication

Example:

smooth auth mode-set jwt

smooth docs

Documentation utilities (coming soon).

smooth docs analyze

Analyze repository for missing or outdated documentation.

smooth docs generate

Generate documentation for a repository or directory.

smooth docs feedback

Submit feedback on generated documentation.


Exit Codes

Code Meaning
0 Success
1 General error
2 Authentication error
3 Configuration error
4 Git error
5 GitHub API error

Environment Variables

Variable Description
GITHUB_TOKEN GitHub personal access token
GH_TOKEN Alternative GitHub token variable
SMOOTHDEV_API_KEY SmoothDev API key (alternative to Auth0)

Configuration Files

File Description
~/.smoothdevio/config.json User configuration (personal defaults)
~/.smoothdevio/token.json Auth0 JWT token (secure, 0600 permissions)
.smoothdev.json Repository configuration (team settings)

See Also