Skip to content
BLACKLAKE

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-cli
npx @blacklake-systems/depth-cli run workflow.ts

Surface

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.

1

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-cli
2

Connect 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"    }  }}
3

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.

1

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.ts
2

Write 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,    });  });});
3

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-cli
npx @blacklake-systems/depth-cli run workflow.ts