agentleFS
alanalvestechalanalvestech/hitank/skills/heroku/SKILL.md

heroku

Skill38 starsChanged 8 months agoMITView on GitHub

Manage Heroku apps, dynos, config and deployments via Platform API

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the output is OK, proceed to the Flow section.

    line 38
  2. Very specific:

    If the output is SETUP_NEEDED, guide the user step by step.

    line 40
  3. Distinctive:

    If the script outputs an error, the token is invalid.

    line 61

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/heroku

Connect to the Heroku Platform API to manage apps, dynos, config vars, releases and more. Pure Ruby, zero gems — stdlib only.

Structure

scripts/
├── auth.rb          # Bearer token + heroku_request helper (required by all scripts)
├── check_setup.rb   # Check if token exists (outputs OK or SETUP_NEEDED)
├── save_token.rb    # Save and validate an API token
├── apps.rb          # List all apps
├── app.rb           # Get app details
├── dynos.rb         # List dynos for an app
├── config_vars.rb   # List config vars (masked by default)
├── releases.rb      # List releases for an app
├── addons.rb        # List add-ons for an app
├── domains.rb       # List domains for an app
├── formation.rb     # List formation (process types/scaling)
├── logs.rb          # Create log session and return URL
├── restart.rb       # Restart all dynos
└── scale.rb         # Scale a process type

Setup (check before using)

ruby ~/.claude/skills/heroku/scripts/check_setup.rb

If the output is OK, proceed to the Flow section.

If the output is SETUP_NEEDED, guide the user step by step. Present ONE step at a time, wait for the user to confirm before moving to the next.

Step 1 — Ask the user to create an API token:

You need a Heroku API token. You can create one with the Heroku CLI:

heroku authorizations:create -d "hitank"

Or go to Account Settings on the Heroku Dashboard and find the API Key section: https://dashboard.heroku.com/account

Copy the token and paste it here.

Step 2 — When the user pastes the token, save it:

ruby ~/.claude/skills/heroku/scripts/save_token.rb 'PASTED_TOKEN'

If the script outputs an error, the token is invalid. Ask the user to double-check and try again.

If setup is not complete, DO NOT proceed to the Flow. Complete all steps first.

Flow

The argument $ARGUMENTS may contain an app name or ID.

Step 1: List apps

ruby ~/.claude/skills/heroku/scripts/apps.rb

Present the apps to the user. If $ARGUMENTS matches an app name, use that app. Otherwise ask which app to work with.

Step 2: Show app details

ruby ~/.claude/skills/heroku/scripts/app.rb APP_NAME

Present the app info and ask what the user wants to do.

Step 3: Actions

List dynos:

ruby ~/.claude/skills/heroku/scripts/dynos.rb APP

List config vars (masked):

ruby ~/.claude/skills/heroku/scripts/config_vars.rb APP

Reveal config vars:

ruby ~/.claude/skills/heroku/scripts/config_vars.rb APP --reveal

List releases:

ruby ~/.claude/skills/heroku/scripts/releases.rb APP

List add-ons:

ruby ~/.claude/skills/heroku/scripts/addons.rb APP

List domains:

ruby ~/.claude/skills/heroku/scripts/domains.rb APP

List formation (scaling info):

ruby ~/.claude/skills/heroku/scripts/formation.rb APP

Get log session URL:

ruby ~/.claude/skills/heroku/scripts/logs.rb APP
ruby ~/.claude/skills/heroku/scripts/logs.rb APP --lines 200

Restart all dynos (requires user confirmation):

Show current dynos first, then ask: "Do you want to restart all dynos for this app?" Only execute after a "yes".

ruby ~/.claude/skills/heroku/scripts/restart.rb APP

Scale a process type (requires user confirmation):

Show current formation first, then ask: "Do you want to scale TYPE to QUANTITY?" Only execute after a "yes".

ruby ~/.claude/skills/heroku/scripts/scale.rb APP TYPE QUANTITY
ruby ~/.claude/skills/heroku/scripts/scale.rb APP TYPE QUANTITY SIZE

Notes

  • Pure Ruby, zero gems — stdlib only (json, net/http, uri, fileutils)
  • Auth via Bearer token with custom Heroku Accept header
  • Token file: ~/.config/heroku/token (outside the repo, never commit)
  • Restarting dynos and scaling require explicit user confirmation
  • Base URL: https://api.heroku.com

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.