Open-source edge deployment platform. Deploy full-stack apps to Cloudflare Workers in seconds.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 20 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
attach_resource
-
create_resource
-
delete_resource
-
deploy
-
deploy_delete
-
deploy_demo
-
deploy_prod
-
deploy_status
-
detach_resource
-
env_ls
-
env_rm
-
env_set
-
get_build_log
-
get_status
-
list_deployments
-
list_projects
-
list_resources
-
query_database
-
rename_resource
-
rollback
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit cc0eb11 · analyzer v33 · 4d ago
skills & prompt files 6
- skill solcreek-creek-cc0eb11/.cursor/skills/verify-creek/SKILL.md
- agent-rules solcreek-creek-cc0eb11/CLAUDE.md
- agent-rules solcreek-creek-cc0eb11/apps/www/AGENTS.md
- agent-rules solcreek-creek-cc0eb11/apps/www/CLAUDE.md
- agent-rules solcreek-creek-cc0eb11/packages/create-creek-app/AGENTS.md
- skill solcreek-creek-cc0eb11/skills/creek/SKILL.md
danger signals2
- committed secret Google API key solcreek-creek-cc0eb11/packages/control-plane/src/modules/build-logs/scrub.test.ts :46
AIzaSy…(39 chars, redacted) - committed secret AWS access key id solcreek-creek-cc0eb11/packages/control-plane/src/modules/build-logs/scrub.test.ts :91
AKIAZZ…(20 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 556
filesystem 80
- fs (weak) solcreek-creek-cc0eb11/examples/fullstack/build-worker.js :6
import { readFileSync, writeFileSync } from "fs"; - fs (weak) solcreek-creek-cc0eb11/packages/build-container/src/apply-template-data.test.ts :2
import { mkdtempSync, writeFileSync, readFileSync, existsSync, rmSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/build-container/src/build-pipeline.test.ts :2
import { mkdtempSync, writeFileSync, mkdirSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/build-container/src/build-pipeline.ts :9
import { existsSync, readFileSync, writeFileSync, readdirSync, rmSync, mkdirSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/claim.test.ts :2
import { mkdtempSync, writeFileSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/claim.ts :3
import { existsSync, readFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/commands.msw.test.ts :4
import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/db.test.ts :4
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/db.ts :3
import { existsSync, readFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/deploy-dry-run.test.ts :2
import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/deploy.test.ts :358
const code = 'import fs from "fs";\nimport path from "path";'; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/deploy.ts :3
import { existsSync, readFileSync, writeFileSync, readdirSync, statSync, rmSync } from "node:fs";
show 28 more
- fs solcreek-creek-cc0eb11/packages/cli/src/commands/deployments.ts :5
import { existsSync, readFileSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/doctor.ts :3
import { existsSync, readFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/domains.test.ts :4
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/env.test.ts :4
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/init.test.ts :2
import { mkdtempSync, rmSync, readFileSync, writeFileSync, existsSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/init.ts :3
import { existsSync, readFileSync, writeFileSync, mkdirSync, appendFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/migrate.test.ts :2
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/migrate.ts :8
import { existsSync, readdirSync, readFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/rollback-selfhost.test.ts :2
import { mkdirSync, rmSync, writeFileSync, readFileSync, existsSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/rollback.test.ts :4
import { mkdirSync, rmSync, writeFileSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/commands/rollback.ts :5
import { existsSync, readFileSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/dev/creekd-runner.ts :12
import { existsSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/dev/server.ts :9
import { existsSync, rmSync, mkdirSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/dev/worker-runner.test.ts :2
import { mkdtempSync, writeFileSync, mkdirSync, rmSync, symlinkSync, existsSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/dev/worker-runner.ts :15
import { writeFileSync, mkdirSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/index.ts :4
import { readFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/bundle.test.ts :2
import { mkdtempSync, writeFileSync, mkdirSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/bundle.ts :1
import { readFileSync, readdirSync, statSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/command-context.ts :13
import { existsSync, readFileSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/config.ts :1
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/db-preflight.test.ts :2
import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/db-preflight.ts :18
import { existsSync, readFileSync, writeFileSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/doctor-context.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/git-clone.test.ts :2
import { mkdtempSync, writeFileSync, mkdirSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/git-clone.ts :2
import { existsSync, mkdtempSync, rmSync, statSync, readdirSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/gitignore.test.ts :2
import { mkdtempSync, readFileSync, writeFileSync, rmSync } from "node:fs"; - fs solcreek-creek-cc0eb11/packages/cli/src/utils/gitignore.ts :1
import { existsSync, readFileSync, appendFileSync } from "node:fs"; - fs (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/hosts.test.ts :2
import { mkdirSync, rmSync, existsSync, readFileSync, writeFileSync } from "node:fs";
40 more not shown — this panel samples each group; the count above is the real total.
shell / exec 16
- shell solcreek-creek-cc0eb11/packages/build-container/src/build-pipeline.ts :8
import { execFileSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/commands/dashboard.ts :3
import { execSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/commands/deploy.ts :6
import { execSync, execFileSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/commands/dev.ts :3
import { execSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/commands/login.ts :3
import { execFileSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/dev/creekd-runner.ts :11
import { execSync, spawn, type ChildProcess } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/dev/worker-runner.ts :19
import { execSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/utils/git-clone.ts :1
import { execFileSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/utils/nextjs.ts :25
import { execSync, execFileSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/cli/src/utils/prepare-bundle.ts :30
import { execSync } from "node:child_process"; - shell (weak) solcreek-creek-cc0eb11/packages/control-plane/src/local/d1-adapter.test.ts :201
describe("exec()", () => { - shell solcreek-creek-cc0eb11/packages/control-plane/src/local/d1-adapter.ts :115
async exec(sql: string): Promise<D1ExecResult> {
show 4 more
- shell (weak) solcreek-creek-cc0eb11/packages/control-plane/src/local/test-env.ts :125
async exec(sql: string) { - shell solcreek-creek-cc0eb11/packages/control-plane/src/modules/deployments/creekd-fleet.ts :14
* prototype: derive the app id, spawn (or blue-green redeploy) the June server - shell solcreek-creek-cc0eb11/packages/create-creek-app/src/scaffold.ts :3
import { execSync } from "node:child_process"; - shell solcreek-creek-cc0eb11/packages/host-runtime/src/database.ts :80
async exec(query: string): Promise<{ count: number; duration: number }> {
network 82
- net solcreek-creek-cc0eb11/apps/dashboard/src/lib/adapter.ts :35
res = await fetch(`${CREEKD_BASE}${path}`, { - net solcreek-creek-cc0eb11/apps/dashboard/src/lib/api.ts :13
const res = await fetch(`${API_URL}${path}`, { - net solcreek-creek-cc0eb11/apps/dashboard/src/lib/use-stats-history.ts :34
const res = await fetch(`${baseUrl}/v1/apps/${encodeURIComponent(appId)}/stats`, { - net solcreek-creek-cc0eb11/apps/www/src/app/changelog/page.tsx :125
"CLI worker-bundler now auto-generates `scheduled()` and `queue()` handler wrappers alongside `fetch()`", - net solcreek-creek-cc0eb11/apps/www/src/app/deploy/[...slug]/page.tsx :48
const res = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { - net solcreek-creek-cc0eb11/apps/www/src/app/new/deploy-form.tsx :149
fetch(`https://api.creek.dev/web-deploy/preflight?${params}`) - net solcreek-creek-cc0eb11/apps/www/src/lib/deploy.ts :76
const res = await fetch(`${API_BASE}/web-deploy`, { - net (weak) solcreek-creek-cc0eb11/examples/fullstack/build-worker.js :53
async fetch(request, env) { - net (weak) solcreek-creek-cc0eb11/examples/fullstack/src/App.jsx :22
fetch("/api/todos", { - net (weak) solcreek-creek-cc0eb11/examples/realtime-todos/.creek/__worker_entry.js :16
async fetch(request, env, ctx) { - net (weak) solcreek-creek-cc0eb11/examples/vite-react-drizzle/server/worker.ts :49
app.all("*", (c) => c.env.ASSETS.fetch(c.req.raw)); - net (weak) solcreek-creek-cc0eb11/examples/vite-react-drizzle/src/App.tsx :21
const res = await fetch("/api/todos");
show 28 more
- net (weak) solcreek-creek-cc0eb11/examples/vite-react/_inline_worker.mjs :20
body: `(function(){const ml=document.createElement("link").relList;if(ml&&ml.supports&&ml.supports("modulepreload"))return;for(const X of document.querySelectorAll('link[rel="modulepreload"]'))o(X);ne - net solcreek-creek-cc0eb11/packages/build-container/src/server.ts :8
import { createServer } from "node:http"; - net solcreek-creek-cc0eb11/packages/cli/src/commands/claim.ts :86
statusRes = await fetch(`${sandboxApiUrl}/api/sandbox/${sandboxId}/status`); - net (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/deploy.test.ts :365
const code = 'const fs = require("fs");\nconst http = require("http");'; - net solcreek-creek-cc0eb11/packages/cli/src/commands/deploy.ts :2173
// Bound the wait: detectMigrationDrift makes SDK fetch() calls that have no - net solcreek-creek-cc0eb11/packages/cli/src/commands/ops.ts :45
const res = await fetch(`${apiUrl}/web-deploy/list`, { - net solcreek-creek-cc0eb11/packages/cli/src/commands/status.ts :49
const res = await fetch(`${sandboxApiUrl}/api/sandbox/${sandboxId}/status`); - net solcreek-creek-cc0eb11/packages/cli/src/commands/verify.ts :22
description: "http(s) URL to fetch (the preview URL from `creek deploy --sandbox`)", - net (weak) solcreek-creek-cc0eb11/packages/cli/src/dev/dev-proxy.test.ts :2
import { createServer, type Server } from "node:http"; - net solcreek-creek-cc0eb11/packages/cli/src/dev/dev-proxy.ts :16
} from "node:http"; - net (weak) solcreek-creek-cc0eb11/packages/cli/src/dev/local-realtime.test.ts :191
const res = await fetch(`http://127.0.0.1:${port}/`); - net solcreek-creek-cc0eb11/packages/cli/src/dev/local-realtime.ts :7
import { createServer, type Server, type IncomingMessage, type ServerResponse } from "node:http"; - net (weak) solcreek-creek-cc0eb11/packages/cli/src/dev/ports.test.ts :2
import { createServer } from "node:net"; - net solcreek-creek-cc0eb11/packages/cli/src/dev/ports.ts :3
import { createServer } from "node:net"; - net solcreek-creek-cc0eb11/packages/cli/src/dev/vite-bridge.ts :6
import type { IncomingMessage, ServerResponse } from "node:http"; - net (weak) solcreek-creek-cc0eb11/packages/cli/src/dev/worker-runner.test.ts :113
async fetch(request, env) { - net solcreek-creek-cc0eb11/packages/cli/src/dev/worker-runner.ts :299
return worker.fetch(url) as unknown as Response; - net (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/auth-server.test.ts :27
const res = await fetch(`http://localhost:${port}/callback?key=creek_test&state=${state}`); - net solcreek-creek-cc0eb11/packages/cli/src/utils/auth-server.ts :1
import { createServer, type Server } from "node:http"; - net solcreek-creek-cc0eb11/packages/cli/src/utils/creekd-client.ts :4
* Uses plain fetch (no openapi-fetch dep) with types matching - net (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/prepare-bundle.test.ts :94
"export default { fetch(req, env) { return new Response('hi from worker'); } };", - net solcreek-creek-cc0eb11/packages/cli/src/utils/sandbox.ts :100
const res = await fetch(`${apiUrl}/api/sandbox/deploy`, { - net solcreek-creek-cc0eb11/packages/cli/src/utils/verify-url.ts :113
res = await fetch(url, { - net (weak) solcreek-creek-cc0eb11/packages/cli/src/utils/worker-bundle.test.ts :38
expect(wrapper).toContain("handler.fetch(request, env, ctx)"); - net solcreek-creek-cc0eb11/packages/cli/src/utils/worker-bundle.ts :63
if (typeof handler.fetch === "function") return handler.fetch(request, env, ctx); - net solcreek-creek-cc0eb11/packages/control-plane/src/index.ts :288
await fetch( - net solcreek-creek-cc0eb11/packages/control-plane/src/local/serve.ts :123
async fetch(request: Request) { - net solcreek-creek-cc0eb11/packages/control-plane/src/modules/deployments/creekd-client.ts :97
const res = await fetch(`${cfg.adminUrl}/v1/apps`, {
42 more not shown — this panel samples each group; the count above is the real total.
secrets 13
- secrets (weak) solcreek-creek-cc0eb11/examples/better-auth-prisma-d1/lib/auth.ts :16
secret: process.env.BETTER_AUTH_SECRET ?? "dev-only-secret-not-for-prod-0123456789abcdef", - secrets (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/commands.msw.test.ts :49
process.env.CREEK_TOKEN = ""; - secrets solcreek-creek-cc0eb11/packages/cli/src/commands/dashboard.ts :28
args.token || process.env.CREEKD_TOKEN || process.env.CREEKCTL_TOKEN || "", - secrets (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/db.test.ts :154
process.env.CREEK_TOKEN = "tok-test"; - secrets (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/domains.test.ts :51
process.env.CREEK_TOKEN = "tok-test"; - secrets (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/env.test.ts :47
process.env.CREEK_TOKEN = "tok-test"; - secrets solcreek-creek-cc0eb11/packages/cli/src/commands/logs.ts :331
process.env.CREEKD_TOKEN || - secrets solcreek-creek-cc0eb11/packages/cli/src/commands/restart.ts :31
args.token || process.env.CREEKD_TOKEN || process.env.CREEKCTL_TOKEN || "", - secrets (weak) solcreek-creek-cc0eb11/packages/cli/src/commands/rollback.test.ts :36
process.env.CREEK_TOKEN = "tok-test"; - secrets solcreek-creek-cc0eb11/packages/cli/src/commands/stop.ts :31
args.token || process.env.CREEKD_TOKEN || process.env.CREEKCTL_TOKEN || "", - secrets solcreek-creek-cc0eb11/packages/cli/src/commands/top.ts :40
args.token || process.env.CREEKD_TOKEN || process.env.CREEKCTL_TOKEN || "", - secrets solcreek-creek-cc0eb11/packages/cli/src/utils/config.ts :34
return process.env.CREEK_TOKEN ?? readCliConfig().token;
show 1 more
- secrets solcreek-creek-cc0eb11/packages/cli/src/utils/creekd-client.ts :139
return process.env.CREEKD_TOKEN || process.env.CREEKCTL_TOKEN || "";
database 2
- db (weak) solcreek-creek-cc0eb11/examples/vite-react-drizzle/server/local.ts :12
import Database from "better-sqlite3"; - db (weak) solcreek-creek-cc0eb11/packages/control-plane/src/local/test-env.ts :8
import Database from "better-sqlite3";
tool registrations 20
- deploy solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :74
- deploy_demo solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :115
- deploy_status solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :145
- deploy_delete solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :166
- get_build_log solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :193
- list_projects solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :331
- get_status solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :354
- env_ls solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :394
- env_set solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :412
- env_rm solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :439
- deploy_prod solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :465
- list_deployments solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :494
show 8 more
- rollback solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :518
- list_resources solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :568
- create_resource solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :595
- attach_resource solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :622
- detach_resource solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :657
- delete_resource solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :687
- rename_resource solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :712
- query_database solcreek-creek-cc0eb11/packages/mcp-server/src/tools.ts :741
install hooks 2
- postinstall solcreek-creek-cc0eb11/examples/better-auth-prisma-d1/package.json :7
prisma generate - prepack solcreek-creek-cc0eb11/packages/creek/package.json :39
node scripts/bundle-skills.mjs
declared dependencies 6
- oxfmt@0.67.0
- oxlint@1.82.0
- tsdown@0.22.3
- turbo@^2.4.4
- typescript@^5.8.2
- vitest@^5.0.0
cursor-plugin 1
- opaque (low) solcreek-creek-cc0eb11/.cursor/skills/verify-creek/SKILL.md
bundled .cursor/ plugin descriptor (solcreek-creek-cc0eb11/.cursor/skills/verify-creek/SKILL.md) — presence-detected; review the descriptor
obfuscation 1
- dynamic require()/import() solcreek-creek-cc0eb11/packages/creekd/src/daemon.ts :110
const mod = (await import(`${entryPath}?t=${Date.now()}`)) as WorkerModule;
perm:untrusted 1
- untrusted (weak) solcreek-creek-cc0eb11/packages/sandbox-api/src/scan.test.ts :226
fetch("https://api.example.com/data").then(r => r.json());
transport_posture 2
- network-listening, binds all interfaces, no auth detected solcreek-creek-cc0eb11/packages/creekd/src/daemon.ts :237
hostname: "0.0.0.0", - network-listening, binds all interfaces, no auth detected solcreek-creek-cc0eb11/packages/host-runtime/src/server.ts :33
const { entry, bindings, port = 8787, hostname = "0.0.0.0" } = opts;