@ramp-sh/cli
v0.1.3
Published
Ramp CLI
Readme
Ramp CLI
Public command-line client for Ramp.
This repository contains the CLI only. It talks to the hosted Ramp API, while the main Ramp application/backend remains private and is not included here.
Open Source Boundary
- This repo is the public CLI source code.
- The Ramp web app, API internals, and deployment platform are not part of this repository.
- End users can install and use the CLI normally against Ramp.
- Some local development flows in this repo expect access to a Ramp backend instance.
Install
Requires Node 24+.
pnpm add -g @ramp-sh/cliOr run it without installing:
pnpm dlx @ramp-sh/cli --helpLogin
ramp loginYou can also provide email up front:
ramp login --email [email protected]Or use an existing API token (useful for CI):
ramp login --token rmp_cli_... --api-url https://api.ramp.shCheck current identity:
ramp whoamiLink current project (creates .ramp/config.json):
ramp linkAdd .ramp/ to your app repo .gitignore so local project links do not get committed.
Unlink current project:
ramp unlinkShow app status (auto-resolves project):
ramp statusList account apps and servers:
ramp apps
ramp serversFetch logs and execute commands:
ramp logs --type laravel
ramp exec "php artisan about"
ramp run migrate
ramp run --listManage env vars:
ramp env list
ramp env set APP_ENV production
ramp env delete APP_ENV
ramp env pull --output .env
ramp env push --file .envCreate app and auto-link current directory:
ramp createInitialize a new ramp.yaml:
ramp init
ramp init --template laravel
ramp init --template rails
ramp init --template ruby
ramp init --template bun
ramp init --template elysia
ramp init --template rust
ramp init --template axum
ramp init --template reverb
ramp init --template laravel-octane
ramp init --template adonis
ramp init --template nextjs
ramp init --template static
ramp init --template worker
ramp init --template node-api --yes --print
ramp init --template laravel --yes --jsonTrigger deploy (auto-resolves project):
ramp deployRollback app (latest successful deploy by default):
ramp rollbackLogout:
ramp logoutUsage
pnpm dlx @ramp-sh/cli validatevalidate uses remote API validation only.
Default API URL is https://api.ramp.sh (or RAMP_API_URL if set).
Remote validation requires a CLI token from ramp login.
Use --server <id-or-name> to include server-level collision checks (ports/domains).
CI/CD auth can use RAMP_TOKEN directly (takes precedence over local credentials file).
Auto project resolution (used by status and deploy) priority:
--app/--serverflags.ramp/config.jsonlink file- nearest
ramp.yamlstack lookup via API
Remote validation against local app:
pnpm dlx @ramp-sh/cli validate --api-url http://localhost:8000Validate a specific file:
pnpm dlx @ramp-sh/cli validate ./path/to/ramp.yamlJSON output:
pnpm dlx @ramp-sh/cli validate --jsonStrict mode (warnings fail with exit code 2):
pnpm dlx @ramp-sh/cli validate --strictInit templates
ramp init supports:
customlaravelrailsrubybunelysiarustaxumreverblaravel-octanenode-apinextjsadonisstaticworker
When ramp.yaml already exists, interactive mode offers overwrite, merge, or cancel.
With --yes, existing files default to a safe merge; use --force to overwrite.
Use --json to emit metadata for scripting. The JSON payload includes the generated YAML.
Local development
Use Node 24+ for local development in this repository.
pnpm install
pnpm build
pnpm test
node dist/bin.js validate fixtures/valid.ramp.yamlFor local development against a Ramp backend, point the CLI at a reachable API
instance with --api-url or RAMP_API_URL.
If you need to refresh the bundled schema from another checkout, provide the source explicitly:
RAMP_SCHEMA_SOURCE=../app/docs/ramp/ramp.schema.json pnpm sync-schemaQuality Checks
pnpm format
pnpm lint
pnpm check
pnpm verifypnpm install also configures repo-local git hooks via .githooks/:
pre-commitruns Biome formatting checks on staged filespre-pushrunspnpm typecheckandpnpm test
The repository uses Biome as a formatter baseline in CI today. The lint
command is available for deeper cleanup as the codebase evolves.
