Seedfast CLI

AI-powered PostgreSQL database seeding tool
Seedfast CLI generates realistic test data for PostgreSQL databases. It connects to a backend service that uses AI to understand your database schema and create meaningful, contextually appropriate seed data.
Features
- AI-Powered Planning: Automatically analyzes your database schema and generates an intelligent seeding plan
- Realistic Data: Creates contextually appropriate test data based on table relationships and constraints
- Interactive UI: Rich terminal interface with real-time progress tracking
- Concurrent Execution: Multi-worker architecture for fast data generation
- Secure Authentication: OAuth-style device flow with OS-level credential storage
- Schema-Aware: Respects foreign keys, constraints, and relationships between tables
Installation
npm (Node.js/JavaScript projects)
npm install -g seedfast
npx seedfast seed
Homebrew (macOS and Linux)
brew install argon-it/tap/seedfast
Download Binary
Download the latest release for your platform from the releases page.
From Source
Requires Go 1.25+:
git clone <repository-url>
cd cli
go build -o seedfast
Quick Start
1. Authenticate
seedfast login
Opens your browser for authentication. The CLI waits until you complete the login.
2. Connect to Database
seedfast connect
Enter your PostgreSQL connection string:
postgres://user:password@localhost:5432/dbname?sslmode=disable
3. Seed Your Database
seedfast seed
The CLI will:
- Analyze your database schema
- Present a seeding plan for your approval
- Generate and insert realistic test data
- Show real-time progress for each table
Commands
seedfast login
seedfast connect
seedfast seed
seedfast me
seedfast logout
seedfast --version
Configuration
Environment Variables
SEEDFAST_DSN - PostgreSQL connection string (overrides stored value)
DATABASE_URL - Alternative PostgreSQL connection string (fallback)
SEEDFAST_VERBOSE - Enable verbose logging (1 to enable)
Database Connection
You can configure the database connection in three ways (in order of priority):
- Environment variable
SEEDFAST_DSN
- Environment variable
DATABASE_URL
- Stored value from
seedfast connect command (saved in OS keychain)
How It Works
- Authentication: OAuth-style device flow securely authenticates with the backend
- Schema Analysis: Backend analyzes your PostgreSQL schema (tables, relationships, constraints)
- AI Planning: AI planner determines optimal seeding strategy and generates realistic data
- Execution: CLI receives SQL tasks via gRPC and executes them locally
- Progress Tracking: Real-time UI shows progress for each table being seeded
Troubleshooting
Authentication Issues
seedfast me
seedfast logout
seedfast login
Database Connection Issues
seedfast connect
export SEEDFAST_DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable"
Verbose Logging
export SEEDFAST_VERBOSE=1
seedfast seed
Development
For local development and testing with custom backends, see DEVELOPMENT.md.
Quick summary:
- Production builds: Connect to production backend only
- Dev builds (
go build -tags dev): Support --backend-url and --grpc-url flags for local testing
Requirements
- PostgreSQL database with
app schema
- Active internet connection for backend communication
- OS keychain support (macOS Keychain or Windows Credential Manager)
Platform Support
- macOS (x64, ARM64)
- Linux (x64, ARM64)
- Windows (x64, ARM64)
Note: Linux systems don't support keychain storage. Use environment variables for credentials.
Contributing
This is a private repository. For contributions, please contact the maintainers.
License
See LICENSE file for details.
Built With
- Cobra - CLI framework
- pterm - Terminal UI
- pgx - PostgreSQL driver
- gRPC - RPC framework