Deploy & Test
Once you have written a skill, you need to deploy it, install it into a workspace, and verify it works. This page covers all three steps.
Deploy
Section titled “Deploy”Deploy via CLI
Section titled “Deploy via CLI”From your skill’s root directory (where aerostack.json lives):
-
Authenticate
Terminal window aerostack auth login -
Select your project
Terminal window aerostack project use my-project -
Deploy
Terminal window aerostack deploy skillThe CLI reads your
aerostack.json, bundles the Worker code, and deploys it to your project. You will see output like:Deploying skill: send-emailBundling src/index.ts...Uploading to project my-project...Skill deployed successfully.Skill ID: sk_abc123def456Name: send-emailTool: send_emailStatus: active
Deploy via Admin Dashboard
Section titled “Deploy via Admin Dashboard”- Go to app.aerostack.dev and sign in
- Navigate to Skills in the sidebar
- Click Create Skill
- Paste your skill code into the editor
- Fill in the tool definition (name, description, input schema)
- Click Deploy
The dashboard provides a code editor with syntax highlighting and a JSON schema editor for the tool definition. You can also upload a zip of your skill directory.
Install into a Workspace
Section titled “Install into a Workspace”A deployed skill is not usable until it is installed into a workspace. Once installed, every consumer of that workspace can call it.
Install via CLI
Section titled “Install via CLI”# Set the active workspaceaerostack workspace use my-workspace
# Install the skillaerostack skill install send-emailAfter install, the skill’s tool is available in the workspace as send-email__send_email (namespaced as {skill-slug}__{tool_name}).
To verify installation:
aerostack skill listOutput:
Workspace: my-workspace
Skill Tool Status send-email send-email__send_email active generate-pdf generate-pdf__generate_pdf activeInstall via Admin Dashboard
Section titled “Install via Admin Dashboard”- Go to your project in the Admin Dashboard
- Navigate to Workspaces and select your workspace
- Click Add Skills
- Select the skill from the list (your deployed skills and Hub skills)
- Click Install
The skill appears in the workspace’s tool list immediately.
Test Locally
Section titled “Test Locally”Before deploying, you can test your skill locally using the Aerostack CLI’s development server.
-
Start the local dev server
Terminal window aerostack devThis starts a local server (default port 8787) with simulated bindings for Database, Cache, Storage, and other platform services.
-
Send a test request
Terminal window curl -X POST http://localhost:8787 \-H "Content-Type: application/json" \-d '{"to": "test@example.com","subject": "Test Email","body": "<h1>Hello</h1><p>This is a test.</p>"}' -
Check the response
{"success": true,"email_id": "abc123","to": "test@example.com","subject": "Test Email"}
Testing with environment bindings
Section titled “Testing with environment bindings”If your skill uses Database, Cache, or Storage bindings, the CLI creates local instances automatically. To set up a local database schema:
# Apply your schema to the local database instanceaerostack db execute --local --file=schema.sqlThen aerostack dev will use the local database with your schema applied.
Verify in Workspace
Section titled “Verify in Workspace”After deploying and installing, verify the skill works end-to-end by calling it through the workspace.
Using an LLM client
Section titled “Using an LLM client”Connect any MCP-compatible LLM client (Claude Desktop, Cursor, etc.) to your workspace URL. Ask the LLM to use your skill:
“Send an email to alice@example.com with the subject ‘Weekly Report’ and the body ‘Here is your weekly summary.’”
The LLM will discover the send_email tool in the workspace and call it.
Using the workspace API directly
Section titled “Using the workspace API directly”You can also call skills through the workspace REST API:
curl -X POST https://your-project.aerostack.dev/api/v1/workspace/my-workspace/tools/send-email__send_email \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "alice@example.com", "subject": "Weekly Report", "body": "Here is your weekly summary." }'Checking logs
Section titled “Checking logs”View skill execution logs in the Admin Dashboard under Skills > select your skill > Logs. Logs show:
- Request timestamp
- Input parameters (redacted for secrets)
- Response status code
- Execution duration
- Any errors
Updating a Deployed Skill
Section titled “Updating a Deployed Skill”To update a skill that is already deployed:
# Make your changes to src/index.ts or aerostack.json# Then redeployaerostack deploy skillThe update is applied immediately. All workspaces that have the skill installed will use the new version. There is no need to reinstall.
Removing a Skill
Section titled “Removing a Skill”Remove from a workspace
Section titled “Remove from a workspace”aerostack skill removeThis launches an interactive prompt to select which skill to remove from the active workspace.
Delete the deployment
Section titled “Delete the deployment”To delete the skill entirely (removes it from all workspaces):
- Go to Skills in the Admin Dashboard
- Select the skill
- Click Delete
Troubleshooting
Section titled “Troubleshooting”| Problem | Cause | Fix |
|---|---|---|
| Skill deploys but is not callable | Not installed in any workspace | Run aerostack skill install <slug> |
| LLM does not discover the skill | Client has stale tool list | Reconnect the LLM client or refresh tools |
| ”Method not allowed” error | Skill only handles POST, client sent GET | Ensure your skill handles the correct HTTP method |
| Secret not available | .dev.vars missing or secret not set | Run aerostack secrets set KEY value for deployed, or add to .dev.vars for local |
| Local DB is empty | Schema not applied | Run aerostack db execute --local --file=schema.sql |
Next Steps
Section titled “Next Steps”- Publish to Hub — share your skill with the Aerostack community
- CLI skill commands — full reference for all skill-related CLI commands