BlackLake
Tools for people who run AI agents
Two products, one platform. Surface sees and controls what your agents do. Depth runs your agent workflows durably. Both run locally with one command.
npx @blacklake-systems/surface-clinpx @blacklake-systems/depth-cli run workflow.tsSurface
See and control every tool call
Surface sits between your AI tool and the services your agents connect to. Every tool call is evaluated against your policies, logged, and displayed in the dashboard. No integration code required.
Install Surface
One command starts everything: a local API server, a dashboard, and an SQLite database. No Docker, no cloud account, no configuration.
npx @blacklake-systems/surface-cliConnect your MCP servers
Point your MCP servers through BlackLake. Every tool call gets evaluated against your policies, logged, and displayed in the dashboard. No changes to your agent code.
MCP configuration
// ~/.blacklake/mcp-config.json{ "servers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."], "policy": "ask" }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "policy": "allow" } }}See everything. Control what matters.
The dashboard shows every tool call, every decision, every approval. Set policies to allow, deny, or require human approval. Track costs across models and providers.
MCP Proxy
Sits between your AI tool and the services your agents connect to. Every tool call flows through BlackLake. No integration code required.
Policy Engine
Declarative rules that gate what agents can do. Allow, deny, or require human approval, enforced at the tool-call layer.
Approval Workflows
Route sensitive actions to human reviewers with full context. Approve or reject from the console.
Cost Tracking
See what your AI agents cost you. Token counts, model usage, and dollar amounts across Anthropic, OpenAI, Ollama, and others.
Audit Log
Every tool call, every decision, every approval. Recorded and queryable. Full history in one place.
SDK Integration
Integrate oversight directly into custom agent code with bl.govern(). Works alongside the MCP proxy or standalone.
Depth
Durable execution for agent workflows
Write AI workflows as TypeScript async functions. Each step persists to disk. If the process crashes, re-run the file — completed steps replay instantly and execution resumes. Works standalone or with Surface for governed, audited workflows.
Install Depth
One command installs the Depth CLI. Write a workflow file and run it. SQLite handles persistence automatically.
npx @blacklake-systems/depth-cli run workflow.tsWrite workflows as functions
Each step() call is atomic. Completed steps are checkpointed to disk. If the process dies partway through, re-running replays from the last checkpoint.
Depth workflow
import { workflow, step } from '@blacklake-systems/depth-sdk';export default workflow('research', async (ctx) => { const data = await step(ctx, 'gather', async () => { return await ctx.llm('anthropic:claude-sonnet-4-6', { prompt: 'Find recent papers on AI governance', }); }); await step(ctx, 'save', async () => { await ctx.tool('filesystem.writeFile', { path: './report.md', content: data, }); });});Connect to Surface for governance
When Surface is running, tool calls in your Depth workflows route through the governance engine automatically. Costs appear in the Surface dashboard. Approvals block the workflow until a human decides.
Step-based execution
Write workflows as TypeScript async functions. Each step persists to disk as it completes.
Crash recovery
If the process dies, re-run the file. Completed steps replay from SQLite instantly — no work is lost.
LLM routing
Call Anthropic, OpenAI, or Ollama with one API. Bring your own credentials.
Typed errors
ToolDeniedError, ToolNotFoundError, SurfaceUnavailableError — not generic catches.
Get started in one command
No signup. No credit card. Runs on your machine.
npx @blacklake-systems/surface-clinpx @blacklake-systems/depth-cli run workflow.ts