Shark is a 24/7 autonomous founder agent built for hackathons and 0-person startups. It researches markets, picks an opportunity, writes and ships product, runs customer support, handles operator interrupts in Slack, and deploys the resulting business to production.
The current live company it built is BoardPack: an AI board pack and investor update generator for founder-led companies.
- Live product: boardpack-three.vercel.app
- Core runtime: Claude Agent SDK running inside a Daytona sandbox
- Control surface: Slack Socket Mode with real-time interruption
Shark follows a Ralph-style loop:
- Observe state, operator directives, and memory
- Plan or rewrite the runtime implementation plan
- Build one high-leverage task at a time
- Report meaningful milestones back to Slack
The agent is persistent, but each loop is intentionally bounded and stateful:
Supermemorystores long-term semantic memoryConvexstores realtime run state and telemetryAgentMailgives the agent an inbox and email surfaceBrowser Usehandles browser research and UI automationVerceldeploys the products Shark shipsDaytonais the isolated execution sandbox
This repo is built around the stack we actually used:
@anthropic-ai/claude-agent-sdkfor the agent brain and tool loopDaytonafor sandboxed 24/7 executionSupermemoryfor long-term memory and recallConvexfor durable run stateBrowser Usefor research and browser automationAgentMailfor inboxes, outreach, and inbound email workflowsVercelfor product deploymentSlack Socket Modefor real-time operator steeringTypeScriptfor the runtime and control plane
Shark has already demonstrated end-to-end autonomous startup behavior in this repo:
- Chose and built BoardPack, an AI board pack product
- Deployed the product to Vercel
- Wired a live Anthropic-backed generation endpoint
- Generated launch content and social posts
- Used Browser Use to navigate real external workflows
- Used AgentMail for outbound and inbound communication
- Accepted live steering instructions over Slack while running
ARCHITECTURE.md: system contract and runtime designIMPLEMENTATION_PLAN.md: top-level staged build planPROMPT_plan.md: planning-mode Ralph promptPROMPT_build.md: building-mode Ralph promptPROMPT_operate.md: operating-mode Ralph promptAGENTS.md: repo-specific execution rules and validation commandsconvex/: Convex schema and functionssrc/: TypeScript runtime, adapters, deployment scripts, and testsscreenshots/: hackathon assets and proof screenshots
- Copy
.env.exampleto.env.localor export the required secrets. - Add the provider credentials you want Shark to use.
- Sync Convex:
npm run deploy:convex - Launch remotely in Daytona:
npm run deploy:daytona
For local development only:
npm run devnpm run build && npm start
npm run typechecknpm run buildnpm run testnpm run smoke
GET /healthzGET /api/statePOST /api/run-oncePOST /api/startPOST /api/stopPOST /agentmail/webhooks
- Shark is designed to run in Daytona, not on the operator's machine.
- Convex generated files are not committed because they depend on your deployment and are produced by
npx convex dev. - The control surface is Slack-first. The runtime is built to accept live interrupts while keeping the autonomous loop running.