Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

truefoundry-applicationsTrueFoundry 应用

Agent Skill

truefoundry-applications 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

247

周安装

10

GitHub Stars

公开资料未说明

下载量

78
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:truefoundry-applications(TrueFoundry 应用)
来源仓库:https://github.com/truefoundry/tfy-deploy-skills
仓库路径:skills/truefoundry-applications
安装命令:
npx skills add https://github.com/truefoundry/tfy-deploy-skills --skill truefoundry-applications
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/truefoundry/tfy-deploy-skills --skill truefoundry-applications

简介

truefoundry-applications 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果。
  • 通过 npx skills add 命令从指定仓库安装并使用该技能。
  • 安装前需确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 建议结合原始 README 和仓库内容进一步核验具体用法和功能边界。

SKILL.md

Routing note: For ambiguous user intents, use the shared clarification templates in references/intent-clarification.md.

Applications

List, inspect, and manage applications and deployments on TrueFoundry.

When to Use

List, inspect, or manage deployed applications and their deployment history. Also supports creating deployments via API manifest for pre-built images.

When NOT to Use

  • User wants to deploy local code → prefer deploy skill; ask if the user wants another valid path
  • User wants workspace/cluster info → prefer workspaces skill; ask if the user wants another valid path
  • User wants to delete an application → guide them to the TrueFoundry UI (see "Deleting Applications" below)

Execution Priority

For simple read/list operations in this skill, always use MCP tool calls first:

  • tfy_applications_list
  • tfy_applications_list_deployments

If tool calls are unavailable because the MCP server is not configured, or a tool is missing, fall back automatically to direct API via tfy-api.sh.

IMPORTANT: Deleting Applications

Deletion is NOT supported via CLI, API, or any agent tool. Do NOT call any delete endpoint or attempt to delete applications programmatically.

When a user asks to delete, remove, or destroy an application, do NOT list apps for selection. Instead, immediately respond with:

To 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.

Do NOT attempt to call any delete API on behalf of the user. Do NOT list applications to ask which one to delete. Simply provide the UI instructions above.


List Applications

When using direct API, set TFY_API_SH to the full path of this skill's scripts/tfy-api.sh. See references/tfy-api-setup.md for paths per agent.

Via Tool Call

tfy_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")

Via Direct API

# 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

Filter Parameters

ParameterAPI KeyDescription
workspace_fqnworkspaceFqnFilter by workspace FQN
application_nameapplicationNameFilter by app name
cluster_idclusterIdFilter by cluster
application_typeapplicationTypeFilter: service, job, etc.
name_search_querynameSearchQuerySearch by name substring

Presenting Applications

Show as a table. Use updatedAt from the API response for "Last Deployed" (ISO 8601 timestamp — format as date/time for readability). Use kind for Type and status for Status.

Applications 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   |

Deployment Status Monitoring

Use this to check whether a deployment has completed, is still in progress, or has failed.

Status JSON Paths

When you call GET /api/svc/v1/apps/APP_ID or GET /api/svc/v1/apps?workspaceFqn=...&applicationName=..., the response is wrapped in {data: [...]}. Each application object contains:

JSON PathDescriptionExample Values
deployment.currentStatus.statusDeployment status enumDEPLOY_SUCCESS, DEPLOY_FAILED, BUILD_FAILED, BUILDING, ROLLOUT_STARTED, INITIALIZED
deployment.currentStatus.transitionCurrent transition activityBUILDING, DEPLOYING, REUSING_EXISTING_BUILD, COMPONENTS_DEPLOYING, WAITING, ""
deployment.currentStatus.state.displayHuman-friendly stateRunning, Failed, Building
deployment.currentStatus.state.isTerminalStateWhether deployment is done (most reliable check)true or false

Status Enum Values (from API)

StatusTerminal?Meaning
INITIALIZEDNoDeployment created, waiting for build/rollout to start
BUILDINGNoImage build is in progress
BUILD_SUCCESSNoBuild completed, deployment starting
BUILD_FAILEDYesBuild failed — check build logs
ROLLOUT_STARTEDNoPods are being created/updated
DEPLOY_SUCCESSYesDeployment succeeded and healthy
DEPLOY_FAILEDYesDeployment failed — check pod logs
DEPLOY_FAILED_WITH_RETRYNoDeploy failed but retrying automatically
SET_TRAFFICNoTraffic shifting in progress (canary/blue-green)
PAUSEDYesApplication is paused (scaled to zero)
FAILEDYesGeneral failure
CANCELLEDYesDeployment was cancelled
REDEPLOY_STARTEDNoRedeployment initiated

Transition Values

The transition field tells you what's happening right now, separate from the status:

  • BUILDING — image build in progress
  • DEPLOYING — pods being rolled out
  • REUSING_EXISTING_BUILD — skipping build, using cached image
  • COMPONENTS_DEPLOYING — multi-component app deploying
  • WAITING — waiting for resources
Best practice: Use deployment.currentStatus.state.isTerminalState === true as the authoritative check for whether polling should stop. Don't rely solely on matching status strings.

Polling Pattern

TFY_API_SH=~/.claude/skills/truefoundry-applications/scripts/tfy-api.sh

# Get app status by name in workspace
bash $TFY_API_SH GET '/api/svc/v1/apps?workspaceFqn=WORKSPACE_FQN&applicationName=APP_NAME'

# Or by app ID for more detail
bash $TFY_API_SH GET '/api/svc/v1/apps/APP_ID'

Poll every 15-30 seconds until state.isTerminalState is true, then:

  • If DEPLOY_SUCCESS → deployment is healthy
  • If DEPLOY_FAILED, BUILD_FAILED, or FAILED → fetch logs to diagnose (use logs skill)
  • If PAUSED → application was paused/stopped
  • If CANCELLED → deployment was cancelled

Quick Status Check (one-liner)

# Check if deployment is done
bash $TFY_API_SH GET '/api/svc/v1/apps?workspaceFqn=WORKSPACE_FQN&applicationName=APP_NAME' | python3 -c "import sys,json; d=json.load(sys.stdin); apps=d.get('data',d) if isinstance(d,dict) else d; app=apps[0] if isinstance(apps,list) else apps; ds=app.get('deployment',{}).get('currentStatus',{}); print(f\"Status: {ds.get('status','UNKNOWN')} | Transition: {ds.get('transition','')} | Terminal: {ds.get('state',{}).get('isTerminalState','unknown')} | Display: {ds.get('state',{}).get('display','unknown')}\")"

List Deployments

Via Tool Call

tfy_applications_list_deployments(app_id="app-id")
tfy_applications_list_deployments(app_id="app-id", deployment_id="dep-id")

Via Direct API

# 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_ID

Sync Application

Refresh application state from the cluster. Useful when the UI or API shows stale status.

Via Tool Call

tfy_applications_sync(app_id="app-id")

Via Direct API

$TFY_API_SH POST /api/svc/v1/apps/APP_ID/sync

Promote Deployment

Promote a specific deployment to be the active deployment.

Via Tool Call

tfy_applications_promote(app_id="app-id", deployment_id="deployment-id")

Via Direct API

$TFY_API_SH POST /api/svc/v1/apps/APP_ID/deployments/DEPLOYMENT_ID/promote

Redeploy

Redeploy an application using the same configuration as an existing deployment. Useful for restarting pods or recovering from transient failures.

Via Tool Call

tfy_applications_redeploy(app_id="app-id", deployment_id="deployment-id")

Via Direct API

$TFY_API_SH POST /api/svc/v1/apps/APP_ID/deployments/DEPLOYMENT_ID/redeploy

Create Deployment (API)

For creating a deployment via API manifest (advanced — most users should use the deploy skill).

Use this section when:

  • User has their own manifest/JSON and wants direct API deployment
  • User explicitly requests API-based deployment instead of SDK/Python
  • User wants to deploy from a pre-built image (not local code)

For deploying local code, use the deploy skill instead.

Service Manifest Structure

A basic TrueFoundry service manifest looks like this:

{
  "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"
}

Key Fields:

  • kind — "Service" for long-running services, "Job" for batch jobs
  • name — Unique application name
  • image.image_uri — Docker image (e.g., nginx:latest, ghcr.io/org/app:v1.0)
  • ports — Array of port configs (port, protocol, expose flag)
  • resources — CPU (cores) and memory (MB) requests/limits
  • env — Environment variables as key-value pairs. Security: Never include raw secret values (passwords, API keys, tokens) in manifests. Use tfy-secret:// references for all sensitive environment variables. See the secrets skill.
  • replicas — Min/max replica count (for autoscaling)
  • workspaceId — Workspace ID (not FQN) where the app will be deployed

Before Submitting

Security: Credential Handling - NEVER embed raw API keys, passwords, or tokens in manifest env fields. - Always use tfy-secret:// references for sensitive environment variables. - If the user provides a raw credential, warn them and suggest creating a TrueFoundry secret group first (use the secrets skill). - Never ask the user to paste secret values directly into the conversation.

ALWAYS confirm with the user before creating a deployment:

  1. Service name — What should the app be called?
  2. Image — Full image URI (e.g., nginx:latest, ghcr.io/user/app:tag)
  3. Resources — CPU request/limit (cores), memory request/limit (MB)
  4. Ports — Which ports to expose, protocols (TCP/UDP), expose to internet?
  5. Environment variables — Any env vars needed? (For sensitive values, only accept tfy-secret:// references — never inline credentials in manifests)
  6. Replicas — How many instances? (min/max for autoscaling)
  7. Workspace ID — Which workspace to deploy to?

Present this summary and ask for confirmation before making the API call.

Via Tool Call

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}
)

Note: This requires human approval (HITL) when using tool calls.

Via Direct API

$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"
}'

Common Deployment Patterns

Web service (exposed to internet with public URL):

The host must match one of the cluster's base_domains. Look up base domains first:

$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}
}

If host does not match a cluster base domain, deploy will fail with: "Provided host is not configured in cluster".

Internal service (not exposed):

{
  "ports": [{"port": 8000, "protocol": "TCP", "expose": false}],
  "replicas": {"min": 1, "max": 1}
}

Resource-intensive service:

{
  "resources": {
    "cpu_request": 1.0,
    "cpu_limit": 2.0,
    "memory_request": 2048,
    "memory_limit": 4096
  }
}

<success_criteria>

Success Criteria

  • The user can see the status of their deployed applications in a clear, formatted table
  • Unhealthy or stopped deployments are identified with actionable next steps (check logs, redeploy)
  • The agent has filtered results by the correct workspace when the user specified one
  • The user can find a specific application by name, ID, or workspace
  • Deployment details (replicas, resources, image, ports) are surfaced when the user asks for more info

</success_criteria>

Composability

  • After listing apps: Use logs skill to check logs, deploy skill to redeploy
  • After deploy: Use this skill to verify the deployment succeeded
  • Check jobs: Use jobs skill for job-specific run details
  • Find workspace first: Use workspaces skill to get workspace FQN for filtering

Error Handling

No Applications Found

No applications found. Check:
- Workspace FQN is correct
- You have apps deployed in this workspace
- Your API key has access to this workspace

Application Not Found

Application ID not found. List apps first to find the correct ID.

Permission Denied

Cannot access this application. Check your API key permissions.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.72%
按下载量换算29

Claude

25.89%
按下载量换算20

Cursor

19.36%
按下载量换算15

Gemini CLI

9.87%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills