CLI Usage
Complete command reference for the Forge CLI.
Site Management
List Sites
forge sites # List all your sites
forge sites --org personal # Personal sites only
forge sites --org 123 # Sites under an organisation
forge sites --environment production # Filter by environment
forge sites --page 1 --limit 20 # Paginate results
| Option | Description |
|---|---|
| --environment |
Filter by environment (production, staging, development) |
| --org |
Filter by organisation ID (personal or 0 for personal sites) |
| --page |
Page number (shows single page instead of all results) |
| --limit |
Results per page (default: 100, max: 500) |
Create a Site
forge create --name my-site # Create a site at my-site.getforge.io
forge create --name my-app --custom mysite.com # With a custom domain
forge create --name my-site --org 123 # Under an organisation
| Option | Description |
|---|---|
| --name |
Site name, 3–63 chars, alphanumeric and hyphens (required) |
| --custom |
Custom domain to assign |
| --org |
Create under an organisation |
Link a Directory
forge add my-site.getforge.io # Link current directory to a site
This writes the site URL to forge.json so subsequent commands know which site to target.
Site Info
forge info # Show info for linked site
forge info --site my-site.getforge.io # Show info for a specific site
Displays site configuration including SSL, compiler, build settings, environment variables, current version, and deploy status.
Delete a Site
forge destroy # Delete the linked site (with confirmation)
forge destroy --site my-site.getforge.io # Delete a specific site
forge destroy --force # Skip confirmation prompt
Deployment
forge deploy # Deploy the linked site
forge deploy -m "added new page" # Deploy with a version message
forge deploy -d ./build # Deploy a specific directory
forge deploy --site my-site.getforge.io # Deploy to a specific site
forge deploy --no-watch # Skip real-time deploy tracking
| Option | Description |
|---|---|
| -s, --site |
Site name to deploy to |
| -m, --message |
Version description |
| -d, --directory |
Directory to deploy (overrides forge.json) |
| --no-watch | Skip real-time deploy log streaming |
Deploys create a zip archive of your project, upload it, and stream real-time build logs back to the terminal. Use --no-watch to fire and forget.
Versions & Rollback
List Versions
forge versions # List version history for linked site
forge versions --site my-site # For a specific site
forge versions --limit 50 --page 2 # Paginate results
| Option | Description |
|---|---|
| -s, --site |
Site name |
| --limit |
Versions per page (default: 20, max: 100) |
| --page |
Page number |
Rollback
forge rollback --version-id 789 # Rollback to a specific version
forge rollback -s my-site --version-id 789
| Option | Description |
|---|---|
| -s, --site |
Site name |
| --version-id |
Version ID to rollback to (required, from forge versions output) |
Site Settings
forge settings --ssl on # Enable SSL
forge settings --ssl off # Disable SSL
forge settings --force-ssl on # Force HTTPS redirects
forge settings --compiler jekyll # Set compiler mode
forge settings --build-command "npm run build" # Set custom build command
forge settings --build-folder dist # Set build output folder
forge settings --squish on # Enable TurboJS minification
Multiple settings can be updated in one call:
forge settings --ssl on --force-ssl on --compiler webpack --build-folder dist
| Option | Description | |
|---|---|---|
| -s, --site |
Site name | |
--ssl | off> |
Enable or disable SSL |
|
--force-ssl | off> |
Enable or disable forced HTTPS redirects |
|
| --compiler |
Compiler (nothing, hammer, jekyll, middleman, webpack) | |
| --build-command |
Custom build command | |
| --build-folder |
Build output folder | |
--squish | off> |
Enable or disable TurboJS minification |
|
Environment Variables
forge env # List environment variables
forge env set NODE_ENV=production # Set a variable
forge env set KEY1=val1 KEY2=val2 # Set multiple at once
forge env unset API_KEY # Remove a variable
forge env unset KEY1 KEY2 # Remove multiple
| Command | Description |
|---|---|
| forge env | List all environment variables for the site |
| forge env set |
Set one or more KEY=VALUE pairs |
| forge env unset |
Remove one or more variables by key |
All env commands accept -s, --site
Domain Management
Check DNS
forge domain check --domain mysite.com # Verify DNS is configured correctly
Returns the current DNS records and instructions for configuring your domain if they don't match.
Set Custom Domain
forge domain set --site-token abc123 --domain mysite.com
| Option | Description |
|---|---|
| --site-token |
Site token for the target site (required) |
| --domain |
Custom domain to assign (required) |
Usage & Bandwidth
forge usage # Show bandwidth and build usage
forge usage --days 7 # Include daily breakdown for last 7 days
| Option | Description |
|---|---|
| -s, --site |
Site name |
| --days |
Days of daily breakdown (default: 30, max: 365) |
Displays bandwidth (today, this week, this month, last 30 days), build minutes, and monthly history.
Organisations
List Organisations
forge orgs # List your organisations
Switch Context
forge org switch --id 123 # Switch to an organisation
forge org switch --id personal # Switch back to personal context
When you switch context, subsequent commands like forge sites and forge create operate within that organisation.
CI/CD Usage
GitHub Actions with CLI token:
- name: Deploy to Forge
env:
FORGETOKEN: ${{ secrets.FORGETOKEN }}
run: |
npm install -g @beachio/forge-cli
forge deploy --json
GitHub Actions with site token (deploy-only access):
- name: Deploy to Forge
env:
FORGESITETOKEN: ${{ secrets.FORGESITETOKEN }}
run: |
npm install -g @beachio/forge-cli
forge deploy --json
Command Reference
| Command | Description |
|---|---|
| forge login | Authenticate with Forge |
| forge logout | Clear stored credentials |
| forge whoami | Show current auth status |
| forge token create | Create a scoped CLI token |
| forge token list | List active CLI tokens |
| forge token revoke |
Revoke a CLI token |
| forge sites | List your sites |
| forge create | Create a new site |
| forge add |
Link directory to a site |
| forge info | Show site details |
| forge destroy | Delete a site |
| forge deploy | Deploy to Forge |
| forge versions | List version history |
| forge rollback | Rollback to a previous version |
| forge settings | Update site settings |
| forge env | List environment variables |
| forge env set | Set environment variables |
| forge env unset | Remove environment variables |
| forge domain check | Check DNS configuration |
| forge domain set | Assign a custom domain |
| forge usage | Show bandwidth and build usage |
| forge orgs | List organisations |
| forge org switch | Switch organisation context |
| forge init | Create forge.json |
Ask AI About This Page
Get AI-powered answers about this topic. Ask any of these models with full context about Forge documentation to help you understand concepts, troubleshoot issues, and find related resources.
Ask Forge AIJoin the Discussion
Have questions or want to share your experience? Join our community discussion to connect with other developers and get help from the Forge team.
Visit Forum Discussion