Deploy, manage, and monitor applications on AWS via Nullstone CLI. This skill provides commands for deploying Docker containers to AWS ECS Fargate, viewing application logs, checking deployment status, and managing environments.
Deploy, manage, and monitor AWS ECS Fargate applications using Nullstone CLI. Use when you need to push Docker images, deploy to staging/production, stream logs, check deployment status, or SSH into running containers.
/plugin marketplace add iou-financial/nullstone-skill/plugin install nullstone-skill@nullstone-skillThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Deploy, manage, and monitor applications on AWS via Nullstone CLI. This skill provides commands for deploying Docker containers to AWS ECS Fargate, viewing application logs, checking deployment status, and managing environments.
Nullstone CLI must be installed and configured:
# Install via Homebrew
brew install nullstone-io/tap/nullstone
# Configure (one-time setup)
nullstone configure
Required Environment Variables (for CI/CD or automation):
NULLSTONE_ORG - Your Nullstone organization nameNULLSTONE_API_KEY - API key from your Nullstone profile| Command | Description |
|---|---|
nullstone status --app=<app> --env=<env> | Check app status |
nullstone logs --app=<app> --env=<env> -t | Tail live logs |
nullstone deploy --app=<app> --env=<env> | Deploy latest pushed artifact |
nullstone push --app=<app> --source=<image> | Push Docker image |
nullstone launch --app=<app> --env=<env> --source=<image> | Push + Deploy + Wait |
nullstone exec --app=<app> --env=<env> | SSH into running container |
View the status of your application including running tasks and load balancer health:
# Check status for specific app/env
nullstone status --app=proton --env=staging --stack=primary
# Watch status in real-time
nullstone status --app=proton --env=staging --stack=primary -w
Stream logs from your running application:
# Tail live logs
nullstone logs --app=proton --env=staging --stack=primary -t
# View logs from last hour
nullstone logs --app=proton --env=staging --stack=primary -s 1h
# View logs from last 24 hours
nullstone logs --app=proton --env=staging --stack=primary -s 24h
Deploy a previously pushed artifact:
# Deploy latest version
nullstone deploy --app=proton --env=staging --stack=primary
# Deploy and wait for completion
nullstone deploy --app=proton --env=staging --stack=primary -w
# Deploy specific version
nullstone deploy --app=proton --env=staging --stack=primary --version=abc123
Push a Docker image to Nullstone's registry:
# Push local Docker image
nullstone push --app=proton --source=proton:latest --stack=primary
# Push with specific version tag
nullstone push --app=proton --source=proton:latest --version=v1.2.3 --stack=primary
Combined operation that pushes, deploys, and waits for healthy status:
nullstone launch --app=proton --env=staging --source=proton:latest --stack=primary
SSH or run commands inside a running container:
# Open shell
nullstone exec --app=proton --env=staging --stack=primary
# Run specific command
nullstone exec --app=proton --env=staging --stack=primary -- rails console
# Run database migrations
nullstone exec --app=proton --env=staging --stack=primary -- rails db:migrate
# List all apps in organization
nullstone apps list
# List all stacks
nullstone stacks list
# List environments in a stack
nullstone envs list --stack=primary
The typical CI/CD workflow used with GitHub Actions:
env:
NULLSTONE_ORG: iou-financial
NULLSTONE_API_KEY: ${{ secrets.NULLSTONE_API_KEY }}
NULLSTONE_STACK: primary
steps:
- uses: nullstone-io/setup-nullstone-action@v0
- name: Build Docker Image
run: docker build -t myapp:latest .
- name: Push and Deploy
run: |
nullstone push --app=myapp --source=myapp:latest
nullstone deploy --app=myapp --env=${{ env.NULLSTONE_ENV }}
For manual deployments from local machine:
# 1. Build your Docker image
docker build -t myapp:latest .
# 2. Push to Nullstone
nullstone push --app=myapp --source=myapp:latest --stack=primary
# 3. Deploy to staging
nullstone deploy --app=myapp --env=staging --stack=primary -w
# 4. Verify deployment
nullstone status --app=myapp --env=staging --stack=primary
# 5. Check logs
nullstone logs --app=myapp --env=staging --stack=primary -t
Nullstone uses .nullstone/ directory for GitOps configuration:
.nullstone/
config.yml # Base configuration (apps, capabilities, connections)
staging.yml # Staging environment overrides
production.yml # Production environment overrides
previews.yml # Preview environment configuration
version: "0.1"
apps:
myapp:
module: nullstone/aws-fargate-service
vars:
num_tasks: 1
cpu: 512
memory: 1024
port: 3000
connections:
cluster-namespace: namespace0
capabilities:
load-balancer:
module: nullstone/aws-load-balancer
connections:
subdomain: app-subdomain
postgres:
module: nullstone/aws-postgres-access
connections:
postgres: postgres0
redis:
module: nullstone/aws-redis-access
connections:
redis: redis0
environment:
RAILS_ENV: "{{ NULLSTONE_ENV }}"
RAILS_MASTER_KEY: "{{ secret(arn:aws:secretsmanager:...) }}"
version: "0.1"
apps:
myapp:
vars:
num_tasks: 1
environment:
DEBUG: "true"
version: "0.1"
apps:
myapp:
vars:
num_tasks: 3
cpu: 1024
memory: 2048
environment:
DEBUG: "false"
Nullstone supports several variable interpolation patterns:
| Pattern | Description |
|---|---|
{{ NULLSTONE_ENV }} | Current environment name (staging, production) |
{{ NULLSTONE_APP }} | Current application name |
{{ NULLSTONE_STACK }} | Current stack name |
{{ secret(arn:...) }} | AWS Secrets Manager secret |
{{ output(block.output_name) }} | Output from another block |
| Capability | Module | Purpose |
|---|---|---|
| Load Balancer | nullstone/aws-load-balancer | Public HTTP/HTTPS access |
| PostgreSQL | nullstone/aws-postgres-access | PostgreSQL database connection |
| Redis | nullstone/aws-redis-access | Redis cache connection |
| MySQL | nullstone/aws-mysql-access | MySQL database connection |
| S3 | nullstone/aws-s3-access | S3 bucket access |
| Autoscaling | nullstone/aws-ecs-autoscaling-cpu | CPU-based autoscaling |
| Rails Cookies | nullstone/rails-cookies | Rails session configuration |
nullstone profile
nullstone logs --app=myapp --env=staging --stack=primary -s 30m -t
nullstone outputs --app=myapp --env=staging --stack=primary
nullstone deploy --app=myapp --env=staging --stack=primary --version=$(git rev-parse HEAD) -w
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.