Agent skill

Deploy

by clacky-ai in clacky-ai/openclacky

Deploy Rails applications to Railway. An agent skill from clacky-ai/openclacky.

MITAuto-check passedDevOps & Cloud

Install Deploy

skills CLI
$ npx skills add clacky-ai/openclacky --skill deploy -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install clacky-ai/openclacky deploy --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/clacky-ai/openclacky.git skills-src && mkdir -p .claude/skills && cp -r skills-src/lib/clacky/default_skills/deploy .claude/skills/deploy && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
deploy
GitHub stars
1.2k
Token cost
~1.9k tokens
SKILL.md length
701 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Deploy Rails applications to Railway. An agent skill from clacky-ai/openclacky.

  • Works in 9 steps: Prepare for Linux Build → Check Link Status → Deploy Immediately… → Set Environment Variables → …
  • Deploy to railway
  • SKILL.md covers Prerequisites Check, Step 0: Prepare for Linux Build, Step 1: Check Link Status →… and Step 2: Set Environment…, plus 7 more sections
  • Calls railway, bundle and rails; reaches railway.com; needs STORAGE_BUCKET_ACCESS_KEY_ID and STORAGE_BUCKET_SECRET_ACCESS_KEY

What it does

Deploy is an agent skill from clacky-ai/openclacky. Deploy Rails applications to Railway. Handles first-time setup and re-deploys idempotently using Railway CLI. Trigger on: "deploy", "deploy to railway", "railway deploy", "发布", "部署", "上线".

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Backend development and Deployment. It works with PostgreSQL, Railway, Linux and Docker. The repository describes itself as: The most Token-efficient open-source AI Agent. The licence is MIT.

When your agent uses it

  • Deploy to railway
  • Tasks that involve Backend development
  • Tasks that involve Deployment

Example prompts

  • “deploy”
  • “deploy to railway”
  • “railway deploy”
  • “/deploy”

Requirements

  • Docker
  • A credential in STORAGE_BUCKET_SECRET_ACCESS_KEY

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Prepare for Linux Build
  2. Check Link Status → Deploy Immediately if Already Linked
  3. Set Environment Variables
  4. Ensure PostgreSQL Service (Idempotent)
  5. Get Domain (Idempotent)
  6. Configure Storage Bucket (if needed)
  7. Deploy
  8. Verify Deployment
  9. Done

What it can do on your machine

Read from SKILL.md and the folder at commit acd54fd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • railway
    • bundle
    • rails
    • ruby
    • bash
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • railway.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • STORAGE_BUCKET_ACCESS_KEY_ID
    • STORAGE_BUCKET_SECRET_ACCESS_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Deploy loads about 1.9k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 701 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from clacky-ai/openclacky at commit acd54fd, republished under its MIT licence (© clacky-ai). 701 words, ~1,863 tokens.

Download SKILL.mdSave it as .claude/skills/deploy/SKILL.md (or your agent's skills folder).
name
deploy
description
Deploy Rails applications to Railway. Handles first-time setup and re-deploys idempotently using Railway CLI. Trigger on: "deploy", "deploy to railway", "railway deploy", "发布", "部署", "上线".
name_zh
一键部署
description_zh
把 Rails 应用部署到 Railway,首次配置和后续更新都能自动完成。
agent
coding
disable-model-invocation
false

Deploy Rails App to Railway

Deploy the current Rails project to Railway using the Railway CLI. Works for both first-time deploys and re-deploys.

Prerequisites Check

Before starting, verify:

bash
# 1. Railway CLI installed?
railway --version

# 2. Logged in?
railway whoami

If not logged in, instruct the user:

Please run: railway login
Then retry deployment.

Step 0: Prepare for Linux Build

Railway runs on Linux. Ensure Gemfile.lock includes the linux platform:

bash
bundle lock --add-platform x86_64-linux

If the project uses a Dockerfile builder (check railway.toml for builder = "DOCKERFILE"), no Procfile is needed — skip creating one.

Only create a Procfile if there is no Dockerfile:

web: bundle exec puma -C config/puma.rb

First: check if already linked:

bash
railway status 2>&1

If output contains Project: → project is already linked. Skip Steps 2–5 entirely and jump to Step 6 (Deploy).

If output contains "not linked" or an error → not linked yet. Try linking to an existing project first — list available projects:

bash
railway list 2>&1 | grep -i "<app-name>"

If a matching project is found, link it:

bash
railway link --project <project-name> --service <service-name> 2>&1

Only if no existing project is found, init a new one:

bash
railway init -n <app-name>

The app-name should match the current directory name (e.g., my-rails-app).

⚠️ NEVER run railway init when already linked or when an existing project exists. It silently creates a brand-new Railway project. If this happens by mistake:

  1. Find the correct project name from railway list
  2. Re-link: railway link --project <project-name> --service <service-name>

Step 2: Set Environment Variables

Set required Rails production variables. Use --skip-deploys to avoid triggering premature deploys:

bash
# Generate a secret key base
SECRET_KEY_BASE=$(bundle exec rails secret)

railway variable set SECRET_KEY_BASE=$SECRET_KEY_BASE --skip-deploys
railway variable set RAILS_ENV=production --skip-deploys
railway variable set RAILS_LOG_TO_STDOUT=true --skip-deploys
railway variable set RAILS_SERVE_STATIC_FILES=true --skip-deploys

If the project uses any other env vars (check .env.example or config/application.yml.example if they exist), prompt the user to provide values and set them too.

If the project uses config/application.yml (Figaro gem), read it and set all values as Railway variables:

bash
# Read application.yml and set each key=value pair
ruby -ryaml -e "
  data = YAML.safe_load(File.read('config/application.yml')) || {}
  data.each { |k, v| puts %(railway variable set #{k}=#{v} --skip-deploys) unless v.to_s.empty? }
" | bash

Step 3: Ensure PostgreSQL Service (Idempotent)

Check if Postgres already exists:

bash
railway status --json

Parse the JSON output. If a service with type postgres or name containing postgres/Postgres is already found, skip with: ✅ PostgreSQL already provisioned

⚠️ IMPORTANT: railway add --database postgres has a known CLI bug that always returns Unauthorized. Do NOT attempt to run this command. Instead, instruct the user to add PostgreSQL manually via the Railway Web UI:

  1. Open your Railway project: https://railway.com/project/<project-id> (Get the project ID from the Railway dashboard or cat .railway/config.json)
  2. Click "+ New" → "Database" → "PostgreSQL"
  3. Wait for the database to provision
  4. Come back and continue

After Postgres is provisioned, set the DATABASE_URL variable:

bash
railway variable set DATABASE_URL='${{Postgres.DATABASE_URL}}' --skip-deploys

Step 4: Get Domain (Idempotent)

Check if a domain is already set:

bash
railway domain --json

If no domain exists yet:

bash
railway domain

Capture and display the domain URL to the user. Also set it as PUBLIC_HOST:

bash
railway variable set PUBLIC_HOST=<domain-without-https> --skip-deploys
Show full SKILL.md (299 more words)Show less

Step 5: Configure Storage Bucket (if needed)

Check if the project uses S3-compatible storage by reading config/storage.yml. If it contains an amazon or s3 service section, storage bucket configuration is required.

⚠️ Storage bucket requires Railway Hobby plan ($5/month minimum). Confirm with the user before proceeding.

Check if bucket env vars are already set:

bash
railway variables --json | grep STORAGE_BUCKET

If not set, create a bucket and configure the variables:

bash
# Create bucket (choose region: iad=US East, sjc=US West, ams=EU, sin=Asia)
railway bucket create <app-name>-storage --region iad --json

# Get credentials
railway bucket credentials --bucket <app-name>-storage --json

The credentials JSON will contain: accessKeyId, secretAccessKey, region, endpoint, bucketName.

Set them as environment variables:

bash
railway variables set \
  STORAGE_BUCKET_ACCESS_KEY_ID=<accessKeyId> \
  STORAGE_BUCKET_SECRET_ACCESS_KEY=<secretAccessKey> \
  STORAGE_BUCKET_REGION=<region> \
  STORAGE_BUCKET_NAME=<bucketName> \
  STORAGE_BUCKET_ENDPOINT=<endpoint> \
  --skip-deploys

⚠️ Missing these variables will cause a hard crash at boot (Aws::Errors::MissingRegionError) because the AWS SDK initializes at startup, not lazily.

If the project does not use S3 storage, skip this step entirely.

Step 6: Deploy

Upload and deploy the project:

bash
railway up --detach

Show the user the deployment is in progress and they can monitor it with:

bash
railway logs

No manual migration needed. The bin/docker-entrypoint script runs rails db:prepare automatically on container startup. Just wait for the deployment to complete.

Step 7: Verify Deployment

After deployment completes (wait ~30 seconds), verify the app is running:

bash
# Should return 200
curl -s -o /dev/null -w "%{http_code}" https://<domain>/

If it returns 200, deployment is successful. If not, check logs:

bash
railway logs --tail 50

Step 8: Done

Print a summary:

✅ Deployment complete!
🌐 Platform URL: https://<domain>
📋 Monitor: railway logs
🔄 Re-deploy: just run deploy again

Notes

  • Idempotency: Running this skill multiple times is safe. Each step checks current state before acting.
  • Link detection: Use railway status to check if already linked — it's more reliable than checking .railway/config.json (works across machines and fresh clones).
  • Re-deploy: On subsequent runs, Steps 1–5 are all skipped or no-ops. Only Step 6 (upload) actually runs.
  • Secret key: Only set SECRET_KEY_BASE if not already set (check with railway variable list).
  • Database migrations: Handled automatically by bin/docker-entrypoint via rails db:prepare — never run railway run bundle exec rails db:migrate as Railway's internal DB IP is not accessible from local machine.
  • PostgreSQL CLI bug: railway add --database postgres always fails with Unauthorized — always use the Web UI instead.

© clacky-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in lib/clacky/default_skills/deploy of clacky-ai/openclacky.

Open the folder on GitHubat commit acd54fd

Compare with similar skills

Deploy next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Deploy compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Deploy this skillclacky-ai/openclacky1.2k—~1.9kAutomated safety check: PassMIT
Self-Hosted n8n Deploymentczlonkowski/n8n-skills6.4k—~3.5kAutomated safety check: NotesMIT
AI ServerOpentrons/opentrons521—~2.5kAutomated safety check: NotesApache-2.0
Monstermq Broker Configvogler75/monster-mq142—~2.2kAutomated safety check: PassGPL-3.0
Django Deployment Test Loophashgraph-online/awesome-codex-plugins1.2k—~851Automated safety check: PassMIT
Minimegasandia-minimega/minimega160—~3.2kAutomated safety check: PassGPL-3.0-only

Similar skills

  • Self-Hosted n8n Deployment

    czlonkowski/n8n-skills

    Deploys a production n8n instance to a fresh Linux server over SSH with Docker Compose and Caddy HTTPS, in single or queue mode, and covers updates, backups and hardening.

    6.4k GitHub stars~3.5k tokensUpdated 21 days ago
    DevOps & CloudAuto-check: notes
  • AI Server

    Opentrons/opentrons

    Conventions for the opentrons-ai-server FastAPI service — project structure, uv dependency management, settings, testing, Docker, and deployment.

    521 GitHub stars~2.5k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Monstermq Broker Config

    vogler75/monster-mq

    Guide for configuring, deploying, and operating the MonsterMQ broker.

    142 GitHub stars~2.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Django Deployment Test Loop

    hashgraph-online/awesome-codex-plugins

    Make Django deployment changes test-driven across Docker, production settings, Gunicorn, WhiteNoise/static files, environment variables, Ansible/server setup, staging smoke tests, and release checks.

    1.2k GitHub stars~851 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Minimega

    sandia-minimega/minimega

    This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API…

    160 GitHub stars~3.2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Work out why the blot-container-{blue,green,yellow} Docker containers from the most recent production deployment have restarted — distinguishing a normal deploy-triggered restart from a crash (V8…

    2k GitHub stars~4.7k tokensUpdated today
    DevOps & CloudAuto-check passed

More from clacky-ai/openclacky

All 20 skills in this repo
  • Skill Add

    clacky-ai/openclacky

    Install skills from a zip URL or local zip file path. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~560 tokensUpdated today
    Auto-check passed
  • Media Gen

    clacky-ai/openclacky

    Generate or edit images, videos, or audio in the current task.

    1.2k GitHub stars~7.3k tokensUpdated today
    Auto-check passed
  • Browser Setup

    clacky-ai/openclacky

    Configure the browser tool for Clacky. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~3.1k tokensUpdated today
    Auto-check: notes
  • Cron Task Creator

    clacky-ai/openclacky

    Create, manage, and run scheduled automated tasks (cron jobs) in Clacky.

    1.2k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • MCP Manager

    clacky-ai/openclacky

    Manage MCP (Model Context Protocol) servers for openclacky: add, list, probe, remove, reconfigure.

    1.2k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • New

    clacky-ai/openclacky

    Create a new project to start development quickly. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~1.2k tokensUpdated today
    Auto-check passed

Questions about Deploy

What does Deploy do?

Deploy Rails applications to Railway. An agent skill from clacky-ai/openclacky. Deploy is an agent skill from clacky-ai/openclacky. Deploy Rails applications to Railway.

When should I use Deploy?

Deploy fits situations like: deploy to railway; tasks that involve Backend development; tasks that involve Deployment.

How do I install Deploy in Claude Code?

Run `npx skills add clacky-ai/openclacky --skill deploy -a claude-code`. Or copy the skill folder (lib/clacky/default_skills/deploy in clacky-ai/openclacky) into .claude/skills/deploy in your project. Claude Code loads it when a task matches its description.

How do I install Deploy in Codex?

Run `npx skills add clacky-ai/openclacky --skill deploy -a codex`. Or copy the skill folder (lib/clacky/default_skills/deploy in clacky-ai/openclacky) into .agents/skills/deploy in your project. Codex loads it when a task matches its description.

Can I use Deploy in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add clacky-ai/openclacky --skill deploy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deploy, .gemini/skills/deploy, .github/skills/deploy and .opencode/skills/deploy in your project.

What does Deploy need to run?

Going by SKILL.md and its folder, Deploy needs the command-line tools its instructions call (railway, bundle, rails, ruby, bash and curl) and credentials named STORAGE_BUCKET_ACCESS_KEY_ID and STORAGE_BUCKET_SECRET_ACCESS_KEY. Our summary lists: Docker; A credential in STORAGE_BUCKET_SECRET_ACCESS_KEY.

Does Deploy access the network?

SKILL.md names 1 domain. In commands or code: railway.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Deploy safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Deploy use?

Deploy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Deploy use?

About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Deploy?

Skills that share tags, products or a category with Deploy: Self-Hosted n8n Deployment (czlonkowski/n8n-skills, 6.4k stars), AI Server (Opentrons/opentrons, 521 stars), Monstermq Broker Config (vogler75/monster-mq, 142 stars) and Django Deployment Test Loop (hashgraph-online/awesome-codex-plugins, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Deploy?

clacky-ai (a GitHub organization) maintains it in clacky-ai/openclacky, which has 1,204 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

Source: clacky-ai/openclacky on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.