github TypeScript analyzed cc0eb11

solcreek/creek

github

Open-source edge deployment platform. Deploy full-stack apps to Cloudflare Workers in seconds.

maintainer
solcreek
licence
Apache-2.0
first seen
2026-06-09
last seen
2026-09-15
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 20 tools
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
skills & danger signals github-tarball
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

danger signals2

code evidence vHEAD · github-tarball
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;