Beginner25 minModule 2 of 5

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 login completed
  • 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 production

Create a project

skytells projects add my-new-project
skytells projects add staging-env --type staging

After 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_key

View the currently linked project

skytells project

Update project settings

skytells project set name "Better Name"
skytells project set description "Production environment"
skytells project set network_mode private

Network 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 web

Inspect an app

skytells apps inspect abc123

This 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 --force

App lifecycle

Every app moves through a simple state machine: stopped → running → stopped. These commands control where it is.

Start

skytells apps start abc123

Starts a stopped app.

Stop

skytells apps stop abc123
# or skip confirmation:
skytells apps stop abc123 --force

Restart

skytells apps restart abc123

Equivalent 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 abc123

Triggers 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.


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 status

Get 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 doCommand
List all projectsskytells projects ls
Create a projectskytells projects add <name>
View linked projectskytells project
List appsskytells apps ls
Create an appskytells apps add <name>
Inspect an appskytells apps inspect <id>
Rename an appskytells apps set <id> name <value>
Start an appskytells apps start <id>
Stop an appskytells apps stop <id>
Restart an appskytells apps restart <id>
Redeploy an appskytells apps redeploy <id>
Delete an appskytells apps rm <id>

Up next: Module 3 — Deploy & Logs →

On this page