Skip to main content
AI/MLjeremylongshore

flyio-install-auth

'Install flyctl CLI and configure Fly.io authentication with API tokens.

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--flyio-install-auth
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/flyio-pack/skills/flyio-install-auth/SKILL.md -o .claude/skills/flyio-install-auth.md

Drops the SKILL.md into .claude/skills/flyio-install-auth.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Fly.io Install & Auth

Overview

Install flyctl CLI and configure authentication for Fly.io edge compute platform. Two auth methods: interactive login (opens browser) and API tokens (CI/CD and Machines API). The Machines API base URL is https://api.machines.dev.

Prerequisites

  • Fly.io account at fly.io
  • macOS, Linux, or WSL2

Instructions

Step 1: Install flyctl

# macOS / Linux
curl -L https://fly.io/install.sh | sh

# Or via Homebrew
brew install flyctl

# Verify
fly version

Step 2: Authenticate

# Interactive login (opens browser)
fly auth login

# Or with token (CI/CD)
fly auth token  # Get current token
export FLY_API_TOKEN="fo1_your_token_here"

# Verify auth
fly auth whoami

Step 3: Create API Token for Machines API

# Create deploy token (scoped to an app)
fly tokens create deploy -a my-app

# Create org-level token
fly tokens create org

# Use with Machines API
curl -s -H "Authorization: Bearer $FLY_API_TOKEN" \
  https://api.machines.dev/v1/apps | jq '.[].name'

Step 4: Verify Machines API Access

const FLY_API = 'https://api.machines.dev';

async function verifyFlyAccess() {
  const res = await fetch(`${FLY_API}/v1/apps`, {
    headers: { 'Authorization': `Bearer ${process.env.FLY_API_TOKEN}` },
  });
  const apps = await res.json();
  console.log(`Connected. Found ${apps.length} apps.`);
  apps.forEach((app: any) => console.log(`  ${app.name} (${app.organization.slug})`));
}

Token Types

Token Type Scope Lifetime Use Case
User token All orgs/apps Until revoked Development, personal
Deploy token Single app Until revoked CI/CD per app
Org token All apps in org Until revoked Org-wide automation
Machines token API access Until revoked Machines API calls

Error Handling

Error Cause Solution
Error: not authenticated No token set Run fly auth login or set FLY_API_TOKEN
401 Unauthorized Invalid/expired token Regenerate with fly tokens create
Could not find app Wrong app name Check with fly apps list
flyctl not found CLI not installed Run install script above

Resources

Next Steps

After auth, proceed to flyio-hello-world for your first deployment.