Loading...
Loading...
Lists, inspects, and manages TrueFoundry application deployments. Shows status, health, and details for services, jobs, and Helm releases. Also handles requests to delete, remove, or destroy applications by directing users to the TrueFoundry UI.
npx skill4agent add truefoundry/tfy-deploy-skills truefoundry-applications<objective>Routing note: For ambiguous user intents, use the shared clarification templates in references/intent-clarification.md.
deployworkspacestfy_applications_listtfy_applications_list_deploymentstfy-api.shTo delete an application, use the TrueFoundry dashboard:
1. Open your TrueFoundry dashboard (TFY_BASE_URL in your browser)
2. Navigate to **Deployments** → select the workspace
3. Find the application you want to delete
4. Click the **three-dot menu (⋮)** on the application card → **Delete**
5. Confirm the deletion when prompted
⚠️ This action is irreversible — all pods, endpoints, and deployment history for this application will be permanently removed.TFY_API_SHscripts/tfy-api.shreferences/tfy-api-setup.mdtfy_applications_list()
tfy_applications_list(filters={"workspace_fqn": "my-cluster:my-workspace"})
tfy_applications_list(filters={"application_name": "my-app"})
tfy_applications_list(app_id="app-id-here")# Set the path to tfy-api.sh for your agent (example for Claude Code):
TFY_API_SH=~/.claude/skills/truefoundry-applications/scripts/tfy-api.sh
# List all
$TFY_API_SH GET /api/svc/v1/apps
# Filter by workspace
$TFY_API_SH GET '/api/svc/v1/apps?workspaceFqn=my-cluster:my-workspace'
# Filter by name
$TFY_API_SH GET '/api/svc/v1/apps?applicationName=my-app'
# Get by ID
$TFY_API_SH GET /api/svc/v1/apps/APP_ID| Parameter | API Key | Description |
|---|---|---|
| | Filter by workspace FQN |
| | Filter by app name |
| | Filter by cluster |
| | Filter: service, job, etc. |
| | Search by name substring |
updatedAtkindstatusApplications in my-cluster:my-workspace:
| Name | Type | Status | Last Deployed |
|----------------|---------|----------|--------------------|
| tfy-tool-server | service | RUNNING | 2026-02-10 14:30 |
| data-pipeline | job | STOPPED | 2026-02-08 09:15 |tfy_applications_list_deployments(app_id="app-id")
tfy_applications_list_deployments(app_id="app-id", deployment_id="dep-id")# List deployments for an app
$TFY_API_SH GET /api/svc/v1/apps/APP_ID/deployments
# Get specific deployment
$TFY_API_SH GET /api/svc/v1/apps/APP_ID/deployments/DEPLOYMENT_IDdeploydeploy{
"manifest": {
"kind": "Service",
"name": "my-app",
"image": {
"type": "image",
"image_uri": "nginx:latest"
},
"ports": [
{
"port": 8000,
"protocol": "TCP",
"expose": false
}
],
"resources": {
"cpu_request": 0.25,
"cpu_limit": 0.5,
"memory_request": 256,
"memory_limit": 512
},
"env": {
"APP_MODE": "production",
"THIRD_PARTY_API_KEY": "tfy-secret://my-org:my-app-secrets:THIRD_PARTY_API_KEY"
},
"replicas": {
"min": 1,
"max": 1
}
},
"workspaceId": "ws-id-here"
}kindnameimage.image_uringinx:latestghcr.io/org/app:v1.0portsresourcesenvtfy-secret://secretsreplicasworkspaceIdSecurity: Credential Handling
- NEVER embed raw API keys, passwords, or tokens in manifest
fields.env- Always use
references for sensitive environment variables.tfy-secret://- If the user provides a raw credential, warn them and suggest creating a TrueFoundry secret group first (use the
skill).secrets- Never ask the user to paste secret values directly into the conversation.
nginx:latestghcr.io/user/app:tagtfy-secret://tfy_applications_create_deployment(
manifest={
"kind": "Service",
"name": "my-app",
"image": {"type": "image", "image_uri": "nginx:latest"},
"ports": [{"port": 8000, "protocol": "TCP", "expose": false}],
"resources": {"cpu_request": 0.25, "cpu_limit": 0.5, "memory_request": 256, "memory_limit": 512},
"env": {"APP_MODE": "production", "THIRD_PARTY_API_KEY": "tfy-secret://my-org:my-app-secrets:THIRD_PARTY_API_KEY"},
"replicas": {"min": 1, "max": 1}
},
options={"workspace_id": "ws-id-here", "force_deploy": true}
)$TFY_API_SH PUT /api/svc/v1/apps '{
"manifest": {
"kind": "Service",
"name": "my-app",
"image": {"type": "image", "image_uri": "nginx:latest"},
"ports": [{"port": 8000, "protocol": "TCP", "expose": false}],
"resources": {"cpu_request": 0.25, "cpu_limit": 0.5, "memory_request": 256, "memory_limit": 512},
"env": {"APP_MODE": "production", "THIRD_PARTY_API_KEY": "tfy-secret://my-org:my-app-secrets:THIRD_PARTY_API_KEY"},
"replicas": {"min": 1, "max": 1}
},
"workspaceId": "ws-id-here"
}'hostbase_domains$TFY_API_SH GET /api/svc/v1/clusters/CLUSTER_ID
# → look for base_domains, pick the wildcard one (e.g., "*.ml.your-org.truefoundry.cloud")
# → strip "*." to get the base domain: "ml.your-org.truefoundry.cloud"
# → construct host: "{service-name}-{workspace-name}.{base_domain}"{
"ports": [{
"port": 8080,
"protocol": "TCP",
"expose": true,
"host": "my-app-dev-ws.ml.your-org.truefoundry.cloud",
"app_protocol": "http"
}],
"replicas": {"min": 2, "max": 5}
}host{
"ports": [{"port": 8000, "protocol": "TCP", "expose": false}],
"replicas": {"min": 1, "max": 1}
}{
"resources": {
"cpu_request": 1.0,
"cpu_limit": 2.0,
"memory_request": 2048,
"memory_limit": 4096
}
}logsdeployjobsworkspacesNo applications found. Check:
- Workspace FQN is correct
- You have apps deployed in this workspace
- Your API key has access to this workspaceApplication ID not found. List apps first to find the correct ID.Cannot access this application. Check your API key permissions.