Projects & Apps
List your projects, create apps, inspect their configuration, and control the app lifecycle — all from the terminal.
What you'll be able to do after this module
Create apps, check what's running, and control app lifecycle (start, stop, restart, redeploy) without opening a browser.
Prerequisites
skytells logincompleted- A project access key linked with
skytells link <key>
Projects
List all your projects
skytells projects ls┌──────────┬──────────────┬────────────┬──────────────────┐
│ ID │ Name │ Type │ Created │
├──────────┼──────────────┼────────────┼──────────────────┤
│ abc123 │ my-project │ production │ 2026-01-15 │
│ def456 │ staging │ staging │ 2026-02-01 │
└──────────┴──────────────┴────────────┴──────────────────┘Filter by type:
skytells projects ls --type productionCreate a project
skytells projects add my-new-project
skytells projects add staging-env --type stagingAfter creating a project, go to console.skytells.ai, open the new project's Settings, and copy the access key. Then link it:
skytells link sk_proj_the_new_keyView the currently linked project
skytells projectUpdate project settings
skytells project set name "Better Name"
skytells project set description "Production environment"
skytells project set network_mode privateNetwork mode controls whether apps in this project are publicly reachable. public means internet-accessible. private means internal only.
Apps
Apps are the deployable units inside a project — a web server, a background worker, a cron job. Each app has its own deployment history, environment variables, and lifecycle.
List apps
skytells apps ls┌──────────┬──────────────┬──────────┬──────────┬──────────────────┐
│ ID │ Name │ Type │ Status │ Created │
├──────────┼──────────────┼──────────┼──────────┼──────────────────┤
│ abc123 │ api-server │ web │ running │ 2026-01-20 │
│ def456 │ worker │ worker │ stopped │ 2026-02-10 │
└──────────┴──────────────┴──────────┴──────────┴──────────────────┘Create an app
skytells apps add my-api
skytells apps add my-frontend --type webInspect an app
skytells apps inspect abc123This shows full detail about the app: its configuration, current status, resource allocation, and connected settings.
Rename an app
skytells apps set abc123 name "api-server-v2"Delete an app
# With confirmation prompt
skytells apps rm abc123
# Skip the prompt
skytells apps rm abc123 --forceDeleting an app is permanent. Its deployment history and configuration are gone. If you just want to stop it without losing anything, use skytells apps stop instead.
App lifecycle
Every app moves through a simple state machine: stopped → running → stopped. These commands control where it is.
Start
skytells apps start abc123Starts a stopped app.
Stop
skytells apps stop abc123
# or skip confirmation:
skytells apps stop abc123 --forceRestart
skytells apps restart abc123Equivalent to stop + start. Use this when an app is hanging or you want to flush in-memory state without a full redeploy.
Redeploy
skytells apps redeploy abc123Triggers a fresh deployment using the current configuration — same code, same environment, rebuilt from scratch. Use this after changing environment variables or fixing a broken state.
restart keeps the existing running container and cycles it. redeploy tears it down and builds a fresh one from the current image/config. If in doubt about which caused a problem, redeploy gives you a clean slate.
A real workflow: create, configure, and run your first app
# 1. Create the app
skytells apps add my-api --type web
# 2. Grab the app ID from the output (or from skytells apps ls)
APP_ID="abc123"
# 3. Set environment variables (Module 4 covers this in depth)
skytells env set --app "$APP_ID" NODE_ENV=production PORT=3000
# 4. Deploy it
skytells deploy "$APP_ID"
# 5. Watch the deployment logs in real time
skytells logs "$APP_ID" --type deployment --follow
# 6. Verify it's running
skytells statusGet JSON output for any command
Every single command in this module accepts --json. This is useful when you want to process output in a script:
skytells apps ls --json
skytells apps inspect abc123 --json
skytells project --json# Example: get just the app names with jq
skytells apps ls --json | jq '.[].name'Quick reference
| What you want to do | Command |
|---|---|
| List all projects | skytells projects ls |
| Create a project | skytells projects add <name> |
| View linked project | skytells project |
| List apps | skytells apps ls |
| Create an app | skytells apps add <name> |
| Inspect an app | skytells apps inspect <id> |
| Rename an app | skytells apps set <id> name <value> |
| Start an app | skytells apps start <id> |
| Stop an app | skytells apps stop <id> |
| Restart an app | skytells apps restart <id> |
| Redeploy an app | skytells apps redeploy <id> |
| Delete an app | skytells apps rm <id> |
Up next: Module 3 — Deploy & Logs →