npx skills add https://github.com/nodeops-app/skills --skill createos将任何内容部署到生产环境 — AI 智能体、API、后端、机器人、MCP 服务器、前端、Webhook、工作器等。
当通过 MCP(OpenClaw、MoltBot、ClawdBot、Claude)连接时,无需 API 密钥。MCP 服务器会自动处理身份验证。
MCP 端点: https://api-createos.nodeops.network/mcp
直接调用工具即可:
CreateProject(...)
UploadDeploymentFiles(...)
ListProjects(...)
当直接调用 REST 端点时(curl、Python requests 等):
X-Api-Key: <your-api-key>
Base URL: https://api-createos.nodeops.network
通过 MCP 获取 API 密钥:CreateAPIKey({name: "my-key", expiryAt: "2025-12-31T23:59:59Z"})
// 1. 创建上传项目
CreateProject({
"uniqueName": "my-app",
"displayName": "My App",
"type": "upload",
"source": {},
"settings": {
"runtime": "node:20",
"port": 3000
}
})
// 2. 上传文件并部署
UploadDeploymentFiles(project_id, {
"files": [
{"path": "package.json", "content": "{\"name\":\"app\",\"scripts\":{\"start\":\"node index.js\"}}"},
{"path": "index.js", "content": "require('http').createServer((req,res)=>{res.end('Hello!')}).listen(3000)"}
]
})
// 结果:https://my-app.createos.io 已上线!
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
// 1. 获取 GitHub 安装 ID
ListConnectedGithubAccounts()
// 返回:[{installationId: "12345", ...}]
// 2. 查找仓库 ID
ListGithubRepositories("12345")
// 返回:[{id: "98765", fullName: "myorg/myrepo", ...}]
// 3. 创建 VCS 项目
CreateProject({
"uniqueName": "my-app",
"displayName": "My App",
"type": "vcs",
"source": {
"vcsName": "github",
"vcsInstallationId": "12345",
"vcsRepoId": "98765"
},
"settings": {
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"buildCommand": "npm run build",
"runCommand": "npm start"
}
})
// 每次 git 推送都会自动部署!
// 1. 创建镜像项目
CreateProject({
"uniqueName": "my-service",
"displayName": "My Service",
"type": "image",
"source": {},
"settings": {
"port": 8080
}
})
// 2. 部署镜像
CreateDeployment(project_id, {
"image": "nginx:latest"
})
CreateOS 是一个云部署平台,专为快速部署任何工作负载而设计——从简单的静态站点到复杂的多智能体 AI 系统。它提供:
| 用户类型 | 主要用例 |
|---|---|
| AI/ML 工程师 | 部署智能体、MCP 服务器、RAG 流水线、LLM 服务 |
| 后端开发人员 | 发布 API、微服务、Webhook、工作器 |
| 前端开发人员 | 部署 SPA、SSR 应用、静态站点 |
| DevOps 工程师 | 管理环境、域名、扩缩容、监控 |
| 机器人开发人员 | 托管 Discord、Slack、Telegram 机器人 |
运行时:node:18, node:20, node:22, python:3.11, python:3.12, golang:1.22, golang:1.25, rust:1.75, bun:1.1, bun:1.3, static
框架:nextjs, reactjs-spa, reactjs-ssr, vuejs-spa, vuejs-ssr, nuxtjs, astro, remix, express, fastapi, flask, django, gin, fiber, actix
通过 MCP(OpenClaw、Claude 等)使用 CreateOS 时,这些工具可直接使用:
项目:
CreateProject - 创建新项目(vcs、image 或 upload 类型)ListProjects - 列出所有项目GetProject - 获取项目详情UpdateProject - 更新项目元数据UpdateProjectSettings - 更新构建/运行时设置DeleteProject - 删除项目部署:
CreateDeployment - 部署 Docker 镜像(镜像项目)TriggerLatestDeployment - 从 GitHub 触发构建(vcs 项目)UploadDeploymentFiles - 上传文件以部署(上传项目)UploadDeploymentBase64Files - 以 base64 格式上传二进制文件UploadDeploymentZip - 上传 zip 归档文件ListDeployments - 列出所有部署GetDeployment - 获取部署状态GetBuildLogs - 查看构建日志GetDeploymentLogs - 查看运行时日志RetriggerDeployment - 重试失败的部署CancelDeployment - 取消排队中/构建中的部署WakeupDeployment - 唤醒休眠的部署环境:
CreateProjectEnvironment - 创建环境(production、staging 等)ListProjectEnvironments - 列出环境UpdateProjectEnvironment - 更新环境配置UpdateProjectEnvironmentEnvironmentVariables - 设置环境变量UpdateProjectEnvironmentResources - 扩缩容 CPU/内存/副本数AssignDeploymentToProjectEnvironment - 将部署分配给环境DeleteProjectEnvironment - 删除环境域名:
CreateDomain - 添加自定义域名ListDomains - 列出域名RefreshDomain - 验证 DNSUpdateDomainEnvironment - 将域名分配给环境DeleteDomain - 移除域名GitHub:
ListConnectedGithubAccounts - 获取已连接的 GitHub 账户ListGithubRepositories - 列出可访问的仓库ListGithubRepositoryBranches - 列出分支应用:
CreateApp - 创建应用以分组项目ListApps - 列出应用AddProjectsToApp - 将项目添加到应用用户:
GetCurrentUser - 获取用户信息GetQuotas - 检查使用限制GetSupportedProjectTypes - 列出运行时/框架| 技能类别 | 能力 |
|---|---|
| 项目管理 | 创建、配置、更新、删除、转移项目 |
| 部署 | 构建、部署、回滚、唤醒、取消部署 |
| 环境管理 | 多环境配置、环境变量、资源扩缩容 |
| 域名管理 | 自定义域名、SSL、DNS 验证 |
| GitHub 集成 | 自动部署、分支管理、仓库访问 |
| 分析 | 请求指标、错误率、性能数据 |
| 安全 | 漏洞扫描、API 密钥管理 |
| 组织 | 将项目分组到应用、管理服务 |
| 技能 | 描述 |
|---|---|
| 身份验证 | 基于 API 密钥的身份验证,带过期管理 |
| 构建 AI | 自动构建配置检测 |
| Dockerfile 支持 | 自定义容器构建 |
| 环境隔离 | 每个环境独立的配置 |
| 资源管理 | CPU、内存、副本扩缩容 |
创建新项目,包含完整的构建和运行时设置配置。
| 类型 | 描述 | 最适合 |
|---|---|---|
vcs | 连接 GitHub 的仓库 | 带有 CI/CD 的生产应用 |
image | Docker 容器部署 | 预构建的镜像、复杂的依赖 |
upload | 直接文件上传 | 快速原型、静态站点 |
功能:链接 GitHub 仓库,实现推送时自动部署。
优势:启用 GitOps 工作流——推送即部署,无需人工干预。
实现方法:
CreateProject({
"uniqueName": "my-nextjs-app",
"displayName": "My Next.js Application",
"type": "vcs",
"source": {
"vcsName": "github",
"vcsInstallationId": "12345678",
"vcsRepoId": "98765432"
},
"settings": {
"framework": "nextjs",
"runtime": "node:20",
"port": 3000,
"directoryPath": ".",
"installCommand": "npm install",
"buildCommand": "npm run build",
"runCommand": "npm start",
"buildVars": {
"NODE_ENV": "production",
"NEXT_PUBLIC_API_URL": "https://api.example.com"
},
"runEnvs": {
"DATABASE_URL": "postgresql://...",
"SECRET_KEY": "..."
},
"ignoreBranches": ["develop", "feature/*"],
"hasDockerfile": false,
"useBuildAI": false
},
"appId": "optional-app-uuid",
"enabledSecurityScan": true
})
前提条件:
InstallGithubApp 连接的 GitHub 账户潜在问题:
vcsRepoId 导致部署失败port 设置导致健康检查失败buildVars 和 runEnvs(构建时 vs 运行时)功能:部署预构建的 Docker 镜像,无需构建步骤。
优势:部署更快、复杂的依赖关系、现有的 CI 流水线。
CreateProject({
"uniqueName": "my-api-service",
"displayName": "My API Service",
"type": "image",
"source": {},
"settings": {
"port": 8080,
"runEnvs": {
"API_KEY": "secret",
"LOG_LEVEL": "info"
}
}
})
影响:
功能:通过直接上传文件进行部署——无需 Git。
优势:快速原型、迁移、CI 生成的制品。
CreateProject({
"uniqueName": "quick-prototype",
"displayName": "Quick Prototype",
"type": "upload",
"source": {},
"settings": {
"framework": "express",
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"buildCommand": "npm run build",
"buildDir": "dist",
"useBuildAI": true
}
})
修改构建和运行时配置,无需重新创建项目。
UpdateProjectSettings(project_id, {
"framework": "nextjs",
"runtime": "node:22",
"port": 3000,
"installCommand": "npm ci",
"buildCommand": "npm run build",
"runCommand": "npm start",
"buildDir": ".next",
"buildVars": {"NODE_ENV": "production"},
"runEnvs": {"NEW_VAR": "value"},
"ignoreBranches": ["wip/*"],
"hasDockerfile": false,
"useBuildAI": false
})
边界情况:
runtime 会在下次部署时触发重建port 需要重新部署才能生效ignoreBranches 仅影响未来的推送| 操作 | 工具 | 用例 |
|---|---|---|
| 列出项目 | ListProjects(limit?, offset?, name?, type?, status?, app?) | 仪表板、搜索 |
| 获取详情 | GetProject(project_id) | 查看完整配置 |
| 更新元数据 | UpdateProject(project_id, {displayName, description?, enabledSecurityScan?}) | 重命名、切换功能 |
| 删除 | DeleteProject(project_id) | 清理(异步删除) |
| 检查名称 | CheckProjectUniqueName({uniqueName}) | 创建前验证 |
在用户之间转移项目所有权。
1. 所有者:GetProjectTransferUri(project_id) → 返回 {uri, token}(有效期 6 小时)
2. 所有者:与接收者分享 URI
3. 接收者:TransferProject(project_id, token)
4. 审计:ListProjectTransferHistory(project_id)
安全影响:
自动(推荐):推送到 GitHub 自动触发部署。
手动触发:
TriggerLatestDeployment(project_id, branch?)
// branch 默认为仓库的默认分支
CreateDeployment(project_id, {
"image": "nginx:latest"
})
// 支持任何有效的 Docker 镜像引用:
// - nginx:latest
// - myregistry.com/myapp:v1.2.3
// - ghcr.io/org/repo:sha-abc123
直接文件:
UploadDeploymentFiles(project_id, {
"files": [
{"path": "package.json", "content": "{\"name\":\"app\",...}"},
{"path": "index.js", "content": "const express = require('express')..."},
{"path": "public/style.css", "content": "body { margin: 0; }"}
]
})
Base64 文件(用于二进制内容):
UploadDeploymentBase64Files(project_id, {
"files": [
{"path": "assets/logo.png", "content": "iVBORw0KGgo..."}
]
})
ZIP 上传:
UploadDeploymentZip(project_id, {file: zipBinaryData})
限制:
┌─────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐
│ queued │ → │ building │ → │ deploying │ → │ deployed │
└─────────┘ └──────────┘ └───────────┘ └──────────┘
│ │
↓ ↓
┌────────┐ ┌──────────┐
│ failed │ │ sleeping │
└────────┘ └──────────┘
| 状态 | 描述 | 可用操作 |
|---|---|---|
queued | 等待构建槽位 | 取消 |
building | 构建进行中 | 取消、查看日志 |
deploying | 推送到基础设施 | 等待 |
deployed | 在线并处理流量 | 分配给环境 |
failed | 构建或部署错误 | 重试、查看日志 |
sleeping | 空闲超时(节省成本) | 唤醒 |
| 操作 | 工具 | 备注 |
|---|---|---|
| 列出 | ListDeployments(project_id, limit?, offset?) | 最多 20 条/页,分页获取更多 |
| 获取详情 | GetDeployment(project_id, deployment_id) | 完整状态、时间戳、URL |
| 重试 | RetriggerDeployment(project_id, deployment_id, settings?) | settings: "project" 或 "deployment" |
| 取消 | CancelDeployment(project_id, deployment_id) | 仅限 queued/building 状态 |
| 删除 | DeleteDeployment(project_id, deployment_id) | 标记为异步删除 |
| 唤醒 | WakeupDeployment(project_id, deployment_id) | 重启休眠的部署 |
| 下载 | DownloadDeployment(project_id, deployment_id) | 仅限上传项目 |
构建日志 — 调试编译/构建失败:
GetBuildLogs(project_id, deployment_id, skip?)
// skip: 要跳过的行数(用于分页)
运行时日志 — 调试应用程序错误:
GetDeploymentLogs(project_id, deployment_id, since-seconds?)
// since-seconds: 回溯时间窗口(默认:60)
环境日志 — 聚合环境的日志:
GetProjectEnvironmentLogs(project_id, environment_id, since-seconds?)
环境为同一代码库提供隔离的配置。
典型设置:
production — 生产流量,最大资源staging — 预发布测试development — 功能开发CreateProjectEnvironment(project_id, {
"displayName": "Production",
"uniqueName": "production",
"description": "Live production environment",
"branch": "main",
"isAutoPromoteEnabled": true,
"resources": {
"cpu": 500,
"memory": 1024,
"replicas": 2
},
"settings": {
"runEnvs": {
"NODE_ENV": "production",
"DATABASE_URL": "postgresql://prod-db:5432/app",
"REDIS_URL": "redis://prod-cache:6379"
}
}
})
CreateProjectEnvironment(project_id, {
"displayName": "Production",
"uniqueName": "production",
"description": "Live production environment",
"resources": {
"cpu": 500,
"memory": 1024,
"replicas": 2
},
"settings": {
"runEnvs": {
"NODE_ENV": "production"
}
}
})
| 资源 | 最小值 | 最大值 | 单位 | 影响 |
|---|---|---|---|---|
| CPU | 200 | 500 | 毫核 | 越高 = 处理越快 |
| 内存 | 500 | 1024 | MB | 越高 = 内存中数据越多 |
| 副本数 | 1 | 3 | 实例数 | 越高 = 可用性越高 |
UpdateProjectEnvironmentResources(project_id, environment_id, {
"cpu": 500,
"memory": 1024,
"replicas": 3
})
扩缩容注意事项:
UpdateProjectEnvironmentEnvironmentVariables(project_id, environment_id, {
"runEnvs": {
"DATABASE_URL": "postgresql://...",
"API_KEY": "new-secret-key",
"LOG_LEVEL": "debug",
"FEATURE_FLAG_X": "enabled"
},
"port": 8080 // 仅限镜像项目
})
最佳实践:
runEnvs手动控制哪个部署服务于某个环境:
AssignDeploymentToProjectEnvironment(project_id, environment_id, {
"deploymentId": "deployment-uuid"
})
用例:
CreateDomain(project_id, {
"name": "api.mycompany.com",
"environmentId": "optional-env-uuid" // 立即分配
})
响应包含 DNS 说明:
Add CNAME record:
api.mycompany.com → <createos-provided-target>
1. CreateDomain → 状态:pending
2. 在域名注册商处配置 DNS
3. 等待 DNS 传播(最多 48 小时)
4. RefreshDomain → 状态:active(如果验证成功)
RefreshDomain(project_id, domain_id)
// 仅当状态为 "pending" 时可用
将域名流量路由到特定环境:
UpdateDomainEnvironment(project_id, domain_id, {
"environmentId": "production-env-uuid"
})
// 设置为 null 以取消分配
多域名设置示例:
app.example.com → 生产环境staging.example.com → 预发布环境dev.example.com → 开发环境| 操作 | 工具 |
|---|---|
| 列出 | ListDomains(project_id) |
| 验证 | RefreshDomain(project_id, domain_id) |
| 分配 | UpdateDomainEnvironment(project_id, domain_id, {environmentId}) |
| 删除 | DeleteDomain(project_id, domain_id) |
InstallGithubApp({
"installationId": 12345678,
"code": "oauth-code-from-github-redirect"
})
流程:
code 和 installationIdInstallGithubApp 完成连接// 1. 获取已连接的账户
ListConnectedGithubAccounts()
// 返回:[{installationId, accountName, accountType}, ...]
// 2. 列出可访问的仓库
ListGithubRepositories(installation_id)
// 返回:[{id, name, fullName, private, defaultBranch}, ...]
// 3. 列出仓库的分支
ListGithubRepositoryBranches(installation_id, "owner/repo", page?, per-page?, protected?)
// 返回:[{name, protected}, ...]
// 4. 获取文件树(用于选择 monorepo 路径)
GetGithubRepositoryContent(installation_id, {
"repository": "owner/repo",
"branch": "main",
"treeSha": "optional-tree-sha"
})
分支过滤 — 忽略自动部署的分支:
UpdateProjectSettings(project_id, {
"ignoreBranches": ["develop", "feature/*", "wip/*"]
})
自动提升 — 自动将部署分配给环境:
CreateProjectEnvironment(project_id, {
"branch": "main",
"isAutoPromoteEnabled": true,
// ... 其他设置
})
当 isAutoPromoteEnabled: true 时,来自该分支的成功部署会自动在该环境中激活。
GetProjectEnvironmentAnalytics(project_id, environment_id, {
"start": 1704067200, // Unix 时间戳(默认:1 小时前)
"end": 1704070800 // Unix 时间戳(默认:现在)
})
返回:
| 指标 | 工具 | 返回 |
|---|---|---|
| 总体请求 | GetProjectEnvironmentAnalyticsOverallRequests | 总数、2xx、4xx、5xx 计数 |
| RPM | GetProjectEnvironmentAnalyticsRPM | 峰值和平均 RPM |
| 成功率 | GetProjectEnvironmentAnalyticsSuccessPercentage | (2xx + 3xx) / 总数 |
| 时间序列 | GetProjectEnvironmentAnalyticsRequestsOverTime | 随时间变化的请求(按状态) |
| 热门路径 | GetProjectEnvironmentAnalyticsTopHitPaths | 访问最多的前 10 个 |
| 错误路径 | GetProjectEnvironmentAnalyticsTopErrorPaths | 错误最多的前 10 个 |
| 分布 | GetEnvAnalyticsReqDistribution | 按状态码细分 |
识别问题:
SuccessPercentage — 下降表明有问题TopErrorPaths — 查找有问题的端点RequestsOverTime — 发现流量模式RPM — 检测流量峰值启用扫描:
UpdateProject(project_id, {
"enabledSecurityScan": true
})
触发扫描:
TriggerSecurityScan(project_id, deployment_id)
查看结果:
GetSecurityScan(project_id, deployment_id)
// 返回:{status, vulnerabilities, summary}
下载完整报告:
GetSecurityScanDownloadUri(project_id, deployment_id)
// 仅当状态为 "successful" 时
// 返回用于报告下载的签名 URL
重试失败的扫描:
RetriggerSecurityScan(project_id, deployment_id)
// 仅当状态为 "failed" 时
应用为相关项目和服务提供逻辑分组。
CreateApp({
"name": "E-Commerce Platform",
"description": "All services for the e-commerce system",
"color": "#3B82F6"
})
// 将项目添加到应用
AddProjectsToApp(app_id, {
"projectIds": ["project-1-uuid", "project-2-uuid"]
})
// 移除项目
RemoveProjectsFromApp(app_id, {
"projectIds": ["project-1-uuid"]
})
// 列出应用中的项目
ListProjectsByApp(app_id, limit?, offset?)
// 服务同理
AddServicesToApp(app_id, {"serviceIds": [...]})
RemoveServicesFromApp(app_id, {"serviceIds": [...]})
ListServicesByApp(app_id, limit?, offset?)
| 操作 | 工具 |
|---|---|
| 列出 | ListApps() |
| 更新 | UpdateApp(app_id, {name, description?, color?}) |
| 删除 | DeleteApp(app_id) |
注意:删除应用会将关联项目/服务的 appId 设置为 null(不会删除它们)。
CreateAPIKey({
"name": "production-key",
"description": "API key for production CI/CD",
"expiryAt": "2025-12-31T23:59:59Z"
})
// 返回:{id, name, key, expiryAt}
// 重要:密钥仅在创建时显示一次
| 操作 | 工具 |
|---|---|
| 列出 | ListAPIKeys() |
| 更新 | UpdateAPIKey(api_key_id, {name, description?}) |
| 撤销 | RevokeAPIKey(api_key_id) |
| 检查名称 | CheckAPIKeyUniqueName({uniqueName}) |
GetCurrentUser()
// 返回:用户配置文件信息
GetQuotas()
// 返回:{projects: {used, limit}, apiKeys: {used, limit}, ...}
GetSupportedProjectTypes()
// 返回:当前支持的运行时和框架列表
CreateProject({
"uniqueName": "intelligent-agent",
"displayName": "Intelligent Agent",
"type": "vcs",
"source": {"vcsName": "github", "vcsInstallationId": "...", "vcsRepoId": "..."},
"settings": {
"runtime": "python:3.12",
"port": 8000,
"installCommand": "pip install -r requirements.txt",
"runCommand": "python -m uvicorn agent:app --host 0.0.0.0 --port 8000",
"runEnvs": {
"OPENAI_API_KEY": "sk-...",
"ANTHROPIC_API_KEY": "sk-ant-...",
"LANGCHAIN_TRACING": "true",
"AGENT_MEMORY_BACKEND": "redis"
}
}
})
CreateProject({
"uniqueName": "my-mcp-server",
"displayName": "Custom MCP Server",
"type": "vcs",
"source": {"vcsName": "github", "vcsInstallationId": "...", "vcsRepoId": "..."},
"settings": {
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"runCommand": "node server.js",
"runEnvs": {
"MCP_TRANSPORT": "sse",
"MCP_PATH": "/mcp"
}
}
})
MCP 端点:https://{uniqueName}.createos.io/mcp
CreateProject({
"uniqueName": "rag-pipeline",
"displayName": "RAG Pipeline Service",
"type": "vcs",
"settings": {
"runtime": "python:3.12",
"port": 8000,
"runCommand": "uvicorn main:app --host 0.0.0.0 --port 8000",
"runEnvs": {
"PINECONE_API_KEY": "...",
"PINECONE_ENVIRONMENT": "us-west1-gcp",
"OPENAI_API_KEY": "...",
"EMBEDDING_MODEL": "text-embedding-3-small",
"CHUNK_SIZE": "512",
"CHUNK_OVERLAP": "50"
}
}
})
CreateProject({
"uniqueName": "discord-bot",
"displayName": "Discord Bot",
"type": "image",
"source": {},
"settings": {
"port": 8080,
"runEnvs": {
"DISCORD_TOKEN": "...",
"DISCORD_CLIENT_ID": "...",
"BOT_PREFIX": "!",
"LOG_CHANNEL_ID": "..."
}
}
})
// 部署:
CreateDeployment(project_id, {"image": "my-discord-bot:v1.0.0"})
┌─────────────────────────────────────────────────┐
│ 应用:智能体集群 │
├─────────────────┬─────────────────┬─────────────┤
│ 协调器 │ 工作智能体 │ 工作智能体 │
│ (coordinator) │ (researcher) │ (executor) │
└────────┬────────┴────────┬────────┴──────┬──────┘
│ │ │
└────── HTTP/gRPC 通信 ───────────┘
// 1. 创建应用
CreateApp({"name": "Agent Swarm"})
// 2. 创建协调器
CreateProject({
"uniqueName": "orchestrator",
"type": "vcs",
"appId": app_id,
"settings": {
"runEnvs": {
"WORKER_RESEARCHER_URL": "https://researcher.createos.io",
"WORKER_EXECUTOR_URL": "https://executor.createos.io"
}
}
})
// 3. 创建工作器
CreateProject({"uniqueName": "researcher", "appId": app_id, ...})
CreateProject({"uniqueName": "executor", "appId": app_id, ...})
1. 创建 "blue" 环境,分支为 "main"
2. 创建 "green" 环境,分支为 "main"
3. 创建域名 "app.example.com" → 分配给 "blue"
4. 将新版本部署到 "green"
5. 通过 green 的环境 URL 进行测试
6. UpdateDomainEnvironment → 切换到 "green"
7. "blue" 成为备用环境
// 1. 找到之前良好的部署
ListDeployments(project_id, {limit: 10})
// 识别最后一个已知良好的 deployment_id
// 2. 分配给环境
AssignDeploymentToProjectEnvironment(project_id, environment_id, {
"deploymentId": "previous-good-deployment-id"
})
runEnvsShip anything to production — AI agents, APIs, backends, bots, MCP servers, frontends, webhooks, workers, and more.
When connected via MCP (OpenClaw, MoltBot, ClawdBot, Claude), NO API KEY NEEDED. The MCP server handles authentication automatically.
MCP Endpoint: https://api-createos.nodeops.network/mcp
Just call the tools directly:
CreateProject(...)
UploadDeploymentFiles(...)
ListProjects(...)
When calling REST endpoints directly (curl, Python requests, etc.):
X-Api-Key: <your-api-key>
Base URL: https://api-createos.nodeops.network
Get API key via MCP: CreateAPIKey({name: "my-key", expiryAt: "2025-12-31T23:59:59Z"})
// 1. Create upload project
CreateProject({
"uniqueName": "my-app",
"displayName": "My App",
"type": "upload",
"source": {},
"settings": {
"runtime": "node:20",
"port": 3000
}
})
// 2. Upload files and deploy
UploadDeploymentFiles(project_id, {
"files": [
{"path": "package.json", "content": "{\"name\":\"app\",\"scripts\":{\"start\":\"node index.js\"}}"},
{"path": "index.js", "content": "require('http').createServer((req,res)=>{res.end('Hello!')}).listen(3000)"}
]
})
// Result: https://my-app.createos.io is live!
// 1. Get GitHub installation ID
ListConnectedGithubAccounts()
// Returns: [{installationId: "12345", ...}]
// 2. Find repo ID
ListGithubRepositories("12345")
// Returns: [{id: "98765", fullName: "myorg/myrepo", ...}]
// 3. Create VCS project
CreateProject({
"uniqueName": "my-app",
"displayName": "My App",
"type": "vcs",
"source": {
"vcsName": "github",
"vcsInstallationId": "12345",
"vcsRepoId": "98765"
},
"settings": {
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"buildCommand": "npm run build",
"runCommand": "npm start"
}
})
// Auto-deploys on every git push!
// 1. Create image project
CreateProject({
"uniqueName": "my-service",
"displayName": "My Service",
"type": "image",
"source": {},
"settings": {
"port": 8080
}
})
// 2. Deploy image
CreateDeployment(project_id, {
"image": "nginx:latest"
})
CreateOS is a cloud deployment platform designed for rapid shipping of any workload — from simple static sites to complex multi-agent AI systems. It provides:
| User Type | Primary Use Cases |
|---|---|
| AI/ML Engineers | Deploy agents, MCP servers, RAG pipelines, LLM services |
| Backend Developers | Ship APIs, microservices, webhooks, workers |
| Frontend Developers | Deploy SPAs, SSR apps, static sites |
| DevOps Engineers | Manage environments, domains, scaling, monitoring |
| Bot Developers | Host Discord, Slack, Telegram bots |
Runtimes : node:18, node:20, node:22, python:3.11, python:3.12, golang:1.22, golang:1.25, rust:1.75, bun:1.1, bun:1.3, static
Frameworks : nextjs, reactjs-spa, reactjs-ssr, vuejs-spa, vuejs-ssr, nuxtjs, astro, remix, express, fastapi, flask, django, , ,
When using CreateOS via MCP (OpenClaw, Claude, etc.), these tools are available directly:
Projects:
CreateProject - Create new project (vcs, image, or upload type)ListProjects - List all projectsGetProject - Get project detailsUpdateProject - Update project metadataUpdateProjectSettings - Update build/runtime settingsDeleteProject - Delete projectDeployments:
CreateDeployment - Deploy Docker image (image projects)TriggerLatestDeployment - Trigger build from GitHub (vcs projects)UploadDeploymentFiles - Upload files to deploy (upload projects)UploadDeploymentBase64Files - Upload binary files as base64UploadDeploymentZip - Upload zip archiveListDeployments - List all deploymentsGetDeployment - Get deployment statusGetBuildLogs - View build logsGetDeploymentLogs - View runtime logsEnvironments:
CreateProjectEnvironment - Create environment (production, staging, etc.)ListProjectEnvironments - List environmentsUpdateProjectEnvironment - Update environment configUpdateProjectEnvironmentEnvironmentVariables - Set env varsUpdateProjectEnvironmentResources - Scale CPU/memory/replicasAssignDeploymentToProjectEnvironment - Assign deployment to envDeleteProjectEnvironment - Delete environmentDomains:
CreateDomain - Add custom domainListDomains - List domainsRefreshDomain - Verify DNSUpdateDomainEnvironment - Assign domain to environmentDeleteDomain - Remove domainGitHub:
ListConnectedGithubAccounts - Get connected GitHub accountsListGithubRepositories - List accessible reposListGithubRepositoryBranches - List branchesApps:
CreateApp - Create app to group projectsListApps - List appsAddProjectsToApp - Add projects to appUser:
GetCurrentUser - Get user infoGetQuotas - Check usage limitsGetSupportedProjectTypes - List runtimes/frameworks| Skill Category | Capabilities |
|---|---|
| Project Management | Create, configure, update, delete, transfer projects |
| Deployment | Build, deploy, rollback, wake, cancel deployments |
| Environment Management | Multi-env configs, env vars, resource scaling |
| Domain Management | Custom domains, SSL, DNS verification |
| GitHub Integration | Auto-deploy, branch management, repo access |
| Analytics | Request metrics, error rates, performance data |
| Security | Vulnerability scanning, API key management |
| Organization | Group projects into apps, manage services |
| Skill | Description |
|---|---|
| Authentication | API key-based auth with expiry management |
| Build AI | Automatic build configuration detection |
| Dockerfile Support | Custom container builds |
| Environment Isolation | Separate configs per environment |
| Resource Management | CPU, memory, replica scaling |
Create new projects with full configuration for build and runtime settings.
| Type | Description | Best For |
|---|---|---|
vcs | GitHub-connected repository | Production apps with CI/CD |
image | Docker container deployment | Pre-built images, complex deps |
upload | Direct file upload | Quick prototypes, static sites |
What it does : Links a GitHub repository for automatic deployments on push.
Why it's useful : Enables GitOps workflow — push to deploy with zero manual intervention.
How to implement :
CreateProject({
"uniqueName": "my-nextjs-app",
"displayName": "My Next.js Application",
"type": "vcs",
"source": {
"vcsName": "github",
"vcsInstallationId": "12345678",
"vcsRepoId": "98765432"
},
"settings": {
"framework": "nextjs",
"runtime": "node:20",
"port": 3000,
"directoryPath": ".",
"installCommand": "npm install",
"buildCommand": "npm run build",
"runCommand": "npm start",
"buildVars": {
"NODE_ENV": "production",
"NEXT_PUBLIC_API_URL": "https://api.example.com"
},
"runEnvs": {
"DATABASE_URL": "postgresql://...",
"SECRET_KEY": "..."
},
"ignoreBranches": ["develop", "feature/*"],
"hasDockerfile": false,
"useBuildAI": false
},
"appId": "optional-app-uuid",
"enabledSecurityScan": true
})
Prerequisites :
InstallGithubAppPotential pitfalls :
vcsRepoId causes deployment failuresport setting results in health check failuresbuildVars vs runEnvs confusion (build-time vs runtime)What it does : Deploys pre-built Docker images without build step.
Why it's useful : Faster deployments, complex dependencies, existing CI pipelines.
CreateProject({
"uniqueName": "my-api-service",
"displayName": "My API Service",
"type": "image",
"source": {},
"settings": {
"port": 8080,
"runEnvs": {
"API_KEY": "secret",
"LOG_LEVEL": "info"
}
}
})
Implications :
What it does : Deploy by uploading files directly — no Git required.
Why it's useful : Quick prototypes, migrations, CI-generated artifacts.
CreateProject({
"uniqueName": "quick-prototype",
"displayName": "Quick Prototype",
"type": "upload",
"source": {},
"settings": {
"framework": "express",
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"buildCommand": "npm run build",
"buildDir": "dist",
"useBuildAI": true
}
})
Modify build and runtime configuration without recreating projects.
UpdateProjectSettings(project_id, {
"framework": "nextjs",
"runtime": "node:22",
"port": 3000,
"installCommand": "npm ci",
"buildCommand": "npm run build",
"runCommand": "npm start",
"buildDir": ".next",
"buildVars": {"NODE_ENV": "production"},
"runEnvs": {"NEW_VAR": "value"},
"ignoreBranches": ["wip/*"],
"hasDockerfile": false,
"useBuildAI": false
})
Edge cases :
runtime triggers rebuild on next deploymentport requires redeployment to take effectignoreBranches only affects future pushes| Operation | Tool | Use Case |
|---|---|---|
| List projects | ListProjects(limit?, offset?, name?, type?, status?, app?) | Dashboard, search |
| Get details | GetProject(project_id) | View full config |
| Update metadata | UpdateProject(project_id, {displayName, description?, enabledSecurityScan?}) | Rename, toggle features |
| Delete | DeleteProject(project_id) | Cleanup (async deletion) |
| Check name | CheckProjectUniqueName({uniqueName}) |
Transfer project ownership between users.
1. Owner: GetProjectTransferUri(project_id) → returns {uri, token} (valid 6 hours)
2. Owner: Share URI with recipient
3. Recipient: TransferProject(project_id, token)
4. Audit: ListProjectTransferHistory(project_id)
Security implications :
Automatic (recommended): Push to GitHub triggers deployment automatically.
Manual trigger :
TriggerLatestDeployment(project_id, branch?)
// branch defaults to repo's default branch
CreateDeployment(project_id, {
"image": "nginx:latest"
})
// Supports any valid Docker image reference:
// - nginx:latest
// - myregistry.com/myapp:v1.2.3
// - ghcr.io/org/repo:sha-abc123
Direct files :
UploadDeploymentFiles(project_id, {
"files": [
{"path": "package.json", "content": "{\"name\":\"app\",...}"},
{"path": "index.js", "content": "const express = require('express')..."},
{"path": "public/style.css", "content": "body { margin: 0; }"}
]
})
Base64 files (for binary content):
UploadDeploymentBase64Files(project_id, {
"files": [
{"path": "assets/logo.png", "content": "iVBORw0KGgo..."}
]
})
ZIP upload :
UploadDeploymentZip(project_id, {file: zipBinaryData})
Limitations :
┌─────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐
│ queued │ → │ building │ → │ deploying │ → │ deployed │
└─────────┘ └──────────┘ └───────────┘ └──────────┘
│ │
↓ ↓
┌────────┐ ┌──────────┐
│ failed │ │ sleeping │
└────────┘ └──────────┘
| State | Description | Actions Available |
|---|---|---|
queued | Waiting for build slot | Cancel |
building | Build in progress | Cancel, View logs |
deploying | Pushing to infrastructure | Wait |
deployed | Live and serving traffic | Assign to env |
failed | Build or deploy error | Retry, View logs |
| Operation | Tool | Notes |
|---|---|---|
| List | ListDeployments(project_id, limit?, offset?) | Max 20/page, paginate for more |
| Get details | GetDeployment(project_id, deployment_id) | Full status, timestamps, URLs |
| Retry | RetriggerDeployment(project_id, deployment_id, settings?) | settings: "project" or "deployment" |
| Cancel | CancelDeployment(project_id, deployment_id) | Only / states |
Build logs — Debug compilation/build failures:
GetBuildLogs(project_id, deployment_id, skip?)
// skip: number of lines to skip (for pagination)
Runtime logs — Debug application errors:
GetDeploymentLogs(project_id, deployment_id, since-seconds?)
// since-seconds: look back window (default: 60)
Environment logs — Aggregate logs for an environment:
GetProjectEnvironmentLogs(project_id, environment_id, since-seconds?)
Environments provide isolated configurations for the same codebase.
Typical setup :
production — Live traffic, max resourcesstaging — Pre-production testingdevelopment — Feature developmentCreateProjectEnvironment(project_id, {
"displayName": "Production",
"uniqueName": "production",
"description": "Live production environment",
"branch": "main",
"isAutoPromoteEnabled": true,
"resources": {
"cpu": 500,
"memory": 1024,
"replicas": 2
},
"settings": {
"runEnvs": {
"NODE_ENV": "production",
"DATABASE_URL": "postgresql://prod-db:5432/app",
"REDIS_URL": "redis://prod-cache:6379"
}
}
})
CreateProjectEnvironment(project_id, {
"displayName": "Production",
"uniqueName": "production",
"description": "Live production environment",
"resources": {
"cpu": 500,
"memory": 1024,
"replicas": 2
},
"settings": {
"runEnvs": {
"NODE_ENV": "production"
}
}
})
| Resource | Min | Max | Unit | Implications |
|---|---|---|---|---|
| CPU | 200 | 500 | millicores | Higher = faster processing |
| Memory | 500 | 1024 | MB | Higher = more data in memory |
| Replicas | 1 | 3 | instances | Higher = more availability |
UpdateProjectEnvironmentResources(project_id, environment_id, {
"cpu": 500,
"memory": 1024,
"replicas": 3
})
Scaling considerations :
UpdateProjectEnvironmentEnvironmentVariables(project_id, environment_id, {
"runEnvs": {
"DATABASE_URL": "postgresql://...",
"API_KEY": "new-secret-key",
"LOG_LEVEL": "debug",
"FEATURE_FLAG_X": "enabled"
},
"port": 8080 // Image projects only
})
Best practices :
runEnvsManually control which deployment serves an environment:
AssignDeploymentToProjectEnvironment(project_id, environment_id, {
"deploymentId": "deployment-uuid"
})
Use cases :
CreateDomain(project_id, {
"name": "api.mycompany.com",
"environmentId": "optional-env-uuid" // Assign immediately
})
Response includes DNS instructions :
Add CNAME record:
api.mycompany.com → <createos-provided-target>
1. CreateDomain → Status: pending
2. Configure DNS at your registrar
3. Wait for DNS propagation (up to 48 hours)
4. RefreshDomain → Status: active (if verified)
RefreshDomain(project_id, domain_id)
// Only available when status is "pending"
Route domain traffic to specific environment:
UpdateDomainEnvironment(project_id, domain_id, {
"environmentId": "production-env-uuid"
})
// Set to null to unassign
Multi-domain setup example :
app.example.com → production environmentstaging.example.com → staging environmentdev.example.com → development environment| Operation | Tool |
|---|---|
| List | ListDomains(project_id) |
| Verify | RefreshDomain(project_id, domain_id) |
| Assign | UpdateDomainEnvironment(project_id, domain_id, {environmentId}) |
| Delete | DeleteDomain(project_id, domain_id) |
InstallGithubApp({
"installationId": 12345678,
"code": "oauth-code-from-github-redirect"
})
Flow :
code and installationIdInstallGithubApp to complete connection// 1. Get connected accounts
ListConnectedGithubAccounts()
// Returns: [{installationId, accountName, accountType}, ...]
// 2. List accessible repositories
ListGithubRepositories(installation_id)
// Returns: [{id, name, fullName, private, defaultBranch}, ...]
// 3. List branches for a repo
ListGithubRepositoryBranches(installation_id, "owner/repo", page?, per-page?, protected?)
// Returns: [{name, protected}, ...]
// 4. Get file tree (for monorepo path selection)
GetGithubRepositoryContent(installation_id, {
"repository": "owner/repo",
"branch": "main",
"treeSha": "optional-tree-sha"
})
Branch filtering — Ignore branches from auto-deploy:
UpdateProjectSettings(project_id, {
"ignoreBranches": ["develop", "feature/*", "wip/*"]
})
Auto-promote — Automatically assign deployments to environment:
CreateProjectEnvironment(project_id, {
"branch": "main",
"isAutoPromoteEnabled": true,
// ... other settings
})
When isAutoPromoteEnabled: true, successful deployments from the branch automatically become active in that environment.
GetProjectEnvironmentAnalytics(project_id, environment_id, {
"start": 1704067200, // Unix timestamp (default: 1 hour ago)
"end": 1704070800 // Unix timestamp (default: now)
})
Returns :
| Metric | Tool | Returns |
|---|---|---|
| Overall requests | GetProjectEnvironmentAnalyticsOverallRequests | Total, 2xx, 4xx, 5xx counts |
| RPM | GetProjectEnvironmentAnalyticsRPM | Peak and average RPM |
| Success % | GetProjectEnvironmentAnalyticsSuccessPercentage | (2xx + 3xx) / total |
| Time series | GetProjectEnvironmentAnalyticsRequestsOverTime | Requests by status over time |
| Top paths | GetProjectEnvironmentAnalyticsTopHitPaths |
Identify issues :
SuccessPercentage — drop indicates problemsTopErrorPaths — find problematic endpointsRequestsOverTime — spot traffic patternsRPM — detect traffic spikesEnable scanning :
UpdateProject(project_id, {
"enabledSecurityScan": true
})
Trigger scan :
TriggerSecurityScan(project_id, deployment_id)
View results :
GetSecurityScan(project_id, deployment_id)
// Returns: {status, vulnerabilities, summary}
Download full report :
GetSecurityScanDownloadUri(project_id, deployment_id)
// Only when status is "successful"
// Returns signed URL for report download
Retry failed scan :
RetriggerSecurityScan(project_id, deployment_id)
// Only when status is "failed"
Apps provide logical grouping for related projects and services.
CreateApp({
"name": "E-Commerce Platform",
"description": "All services for the e-commerce system",
"color": "#3B82F6"
})
// Add projects to app
AddProjectsToApp(app_id, {
"projectIds": ["project-1-uuid", "project-2-uuid"]
})
// Remove projects
RemoveProjectsFromApp(app_id, {
"projectIds": ["project-1-uuid"]
})
// List projects in app
ListProjectsByApp(app_id, limit?, offset?)
// Same for services
AddServicesToApp(app_id, {"serviceIds": [...]})
RemoveServicesFromApp(app_id, {"serviceIds": [...]})
ListServicesByApp(app_id, limit?, offset?)
| Operation | Tool |
|---|---|
| List | ListApps() |
| Update | UpdateApp(app_id, {name, description?, color?}) |
| Delete | DeleteApp(app_id) |
Note : Deleting an app sets appId: null on associated projects/services (doesn't delete them).
CreateAPIKey({
"name": "production-key",
"description": "API key for production CI/CD",
"expiryAt": "2025-12-31T23:59:59Z"
})
// Returns: {id, name, key, expiryAt}
// IMPORTANT: key is only shown once at creation
| Operation | Tool |
|---|---|
| List | ListAPIKeys() |
| Update | UpdateAPIKey(api_key_id, {name, description?}) |
| Revoke | RevokeAPIKey(api_key_id) |
| Check name | CheckAPIKeyUniqueName({uniqueName}) |
GetCurrentUser()
// Returns: user profile information
GetQuotas()
// Returns: {projects: {used, limit}, apiKeys: {used, limit}, ...}
GetSupportedProjectTypes()
// Returns: current list of supported runtimes and frameworks
CreateProject({
"uniqueName": "intelligent-agent",
"displayName": "Intelligent Agent",
"type": "vcs",
"source": {"vcsName": "github", "vcsInstallationId": "...", "vcsRepoId": "..."},
"settings": {
"runtime": "python:3.12",
"port": 8000,
"installCommand": "pip install -r requirements.txt",
"runCommand": "python -m uvicorn agent:app --host 0.0.0.0 --port 8000",
"runEnvs": {
"OPENAI_API_KEY": "sk-...",
"ANTHROPIC_API_KEY": "sk-ant-...",
"LANGCHAIN_TRACING": "true",
"AGENT_MEMORY_BACKEND": "redis"
}
}
})
CreateProject({
"uniqueName": "my-mcp-server",
"displayName": "Custom MCP Server",
"type": "vcs",
"source": {"vcsName": "github", "vcsInstallationId": "...", "vcsRepoId": "..."},
"settings": {
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"runCommand": "node server.js",
"runEnvs": {
"MCP_TRANSPORT": "sse",
"MCP_PATH": "/mcp"
}
}
})
MCP Endpoint : https://{uniqueName}.createos.io/mcp
CreateProject({
"uniqueName": "rag-pipeline",
"displayName": "RAG Pipeline Service",
"type": "vcs",
"settings": {
"runtime": "python:3.12",
"port": 8000,
"runCommand": "uvicorn main:app --host 0.0.0.0 --port 8000",
"runEnvs": {
"PINECONE_API_KEY": "...",
"PINECONE_ENVIRONMENT": "us-west1-gcp",
"OPENAI_API_KEY": "...",
"EMBEDDING_MODEL": "text-embedding-3-small",
"CHUNK_SIZE": "512",
"CHUNK_OVERLAP": "50"
}
}
})
CreateProject({
"uniqueName": "discord-bot",
"displayName": "Discord Bot",
"type": "image",
"source": {},
"settings": {
"port": 8080,
"runEnvs": {
"DISCORD_TOKEN": "...",
"DISCORD_CLIENT_ID": "...",
"BOT_PREFIX": "!",
"LOG_CHANNEL_ID": "..."
}
}
})
// Deploy with:
CreateDeployment(project_id, {"image": "my-discord-bot:v1.0.0"})
┌─────────────────────────────────────────────────┐
│ App: Agent Swarm │
├─────────────────┬─────────────────┬─────────────┤
│ Orchestrator │ Worker Agent │ Worker Agent│
│ (coordinator) │ (researcher) │ (executor) │
└────────┬────────┴────────┬────────┴──────┬──────┘
│ │ │
└────── HTTP/gRPC communication ──┘
// 1. Create app
CreateApp({"name": "Agent Swarm"})
// 2. Create orchestrator
CreateProject({
"uniqueName": "orchestrator",
"type": "vcs",
"appId": app_id,
"settings": {
"runEnvs": {
"WORKER_RESEARCHER_URL": "https://researcher.createos.io",
"WORKER_EXECUTOR_URL": "https://executor.createos.io"
}
}
})
// 3. Create workers
CreateProject({"uniqueName": "researcher", "appId": app_id, ...})
CreateProject({"uniqueName": "executor", "appId": app_id, ...})
1. CreateProjectEnvironment "blue" with branch "main"
2. CreateProjectEnvironment "green" with branch "main"
3. CreateDomain "app.example.com" → assign to "blue"
4. Deploy new version to "green"
5. Test via green's environment URL
6. UpdateDomainEnvironment → switch to "green"
7. "blue" becomes the standby
// 1. Find previous good deployment
ListDeployments(project_id, {limit: 10})
// Identify deployment_id of last known good
// 2. Assign to environment
AssignDeploymentToProjectEnvironment(project_id, environment_id, {
"deploymentId": "previous-good-deployment-id"
})
runEnvs for all sensitive datanpm ci over npm installport matches app's listen port{app}-{service}-{env} pattern| Error | Diagnosis | Solution |
|---|---|---|
| Build failed | GetBuildLogs | Fix code errors, check dependencies |
| Runtime crash | GetDeploymentLogs | Check startup errors, missing env vars |
| Health check fail | App not responding on port | Verify port setting matches app |
| 502 Bad Gateway | App crashed after deploy | Check logs, increase memory if OOM |
| Domain pending | DNS not propagated | Wait 24-48h, verify CNAME record |
| Quota exceeded | GetQuotas |
High-load scenarios :
Monorepo projects :
directoryPath to subdirectoryGetGithubRepositoryContent to explore structurePrivate npm/pip packages :
buildVars.npmrc or pip.conf in repoLong-running builds :
hasDockerfile: true for complex buildsCreateProject → ListProjects → GetProject → UpdateProject → UpdateProjectSettings → DeleteProject
CheckProjectUniqueName | GetProjectTransferUri → TransferProject | ListProjectTransferHistory
CreateDeployment | TriggerLatestDeployment | UploadDeploymentFiles | UploadDeploymentBase64Files | UploadDeploymentZip
ListDeployments → GetDeployment → AssignDeploymentToProjectEnvironment
RetriggerDeployment | CancelDeployment | DeleteDeployment | WakeupDeployment | DownloadDeployment
GetBuildLogs | GetDeploymentLogs
CreateProjectEnvironment → ListProjectEnvironments → UpdateProjectEnvironment → DeleteProjectEnvironment
CheckProjectEnvironmentUniqueName | AssignDeploymentToProjectEnvironment
UpdateProjectEnvironmentEnvironmentVariables | UpdateProjectEnvironmentResources
GetProjectEnvironmentLogs
CreateDomain → ListDomains → RefreshDomain → UpdateDomainEnvironment → DeleteDomain
InstallGithubApp → ListConnectedGithubAccounts
ListGithubRepositories → ListGithubRepositoryBranches → GetGithubRepositoryContent
GetProjectEnvironmentAnalytics (comprehensive)
GetProjectEnvironmentAnalyticsOverallRequests | GetProjectEnvironmentAnalyticsRPM
GetProjectEnvironmentAnalyticsSuccessPercentage | GetProjectEnvironmentAnalyticsRequestsOverTime
GetProjectEnvironmentAnalyticsTopHitPaths | GetProjectEnvironmentAnalyticsTopErrorPaths
GetEnvAnalyticsReqDistribution
TriggerSecurityScan → GetSecurityScan → GetSecurityScanDownloadUri
RetriggerSecurityScan
CreateApp → ListApps → UpdateApp → DeleteApp
AddProjectsToApp | RemoveProjectsFromApp | ListProjectsByApp
AddServicesToApp | RemoveServicesFromApp | ListServicesByApp
CreateAPIKey → ListAPIKeys → UpdateAPIKey → RevokeAPIKey
CheckAPIKeyUniqueName | GetCurrentUser | GetQuotas | GetSupportedProjectTypes
| Field | Min | Max | Pattern |
|---|---|---|---|
| Project uniqueName | 4 | 32 | ^[a-zA-Z0-9-]+$ |
| Project displayName | 4 | 48 | ^[a-zA-Z0-9 _-]+$ |
| Description | 4 | 2048 | Any text |
| Environment uniqueName | 4 | 32 | ^[a-zA-Z0-9-]+$ |
| Environment displayName | 4 | 48 |
Last updated: January 2025
Weekly Installs
458
Repository
GitHub Stars
3
First Seen
Feb 8, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykWarn
Installed on
pi360
openclaw85
gemini-cli47
opencode47
github-copilot46
codex46
Azure RBAC 权限管理工具:查找最小角色、创建自定义角色与自动化分配
104,600 周安装
竞争对手研究指南:SEO、内容、反向链接与定价分析工具
231 周安装
Azure 工作负载自动升级评估工具 - 支持 Functions、App Service 计划与 SKU 迁移
231 周安装
Kaizen持续改进方法论:软件开发中的渐进式优化与防错设计实践指南
231 周安装
软件UI/UX设计指南:以用户为中心的设计原则、WCAG可访问性与平台规范
231 周安装
Apify 网络爬虫和自动化平台 - 无需编码抓取亚马逊、谷歌、领英等网站数据
231 周安装
llama.cpp 中文指南:纯 C/C++ LLM 推理,CPU/非 NVIDIA 硬件优化部署
231 周安装
ginfiberactixRetriggerDeployment - Retry failed deploymentCancelDeployment - Cancel queued/building deploymentWakeupDeployment - Wake sleeping deployment| Validation before create |
sleeping | Idle timeout (cost saving) | Wake up |
queuedbuilding| Delete | DeleteDeployment(project_id, deployment_id) | Marks for async deletion |
| Wake | WakeupDeployment(project_id, deployment_id) | Restarts sleeping deployment |
| Download | DownloadDeployment(project_id, deployment_id) | Upload projects only |
| Top 10 most accessed |
| Error paths | GetProjectEnvironmentAnalyticsTopErrorPaths | Top 10 error-prone |
| Distribution | GetEnvAnalyticsReqDistribution | Breakdown by status code |
| Upgrade plan or delete unused |
| Deployment sleeping | Idle timeout | WakeupDeployment or add keep-alive |
^[a-zA-Z0-9 _-]+$| API key name | 4 | 48 | ^[a-zA-Z0-9-]+$ |
| Domain name | 3 | 255 | Valid domain |