The Basics
Core concepts of Ink — infrastructure for AI agents and developers. Projects, services, deployments, and how they fit together.
Ink is infrastructure built for AI agents and developers. Your agent writes code and deploys it to production — no DevOps, no configuration files, no CI pipelines. Your agent is the operator.
Ink works however your agent works:
- Skill — prompt-guided, uses the CLI under the hood. Zero extra infrastructure.
- MCP Server — tool-calling via the Model Context Protocol. Works with any MCP client.
- CLI — command-line for humans, scripts, and CI/CD.
How it works
- Your AI agent connects to Ink (via Skill, MCP, or CLI)
- The agent writes code and pushes it to a git repository
- The agent deploys the code from a GitHub repo or Ink managed git
- Ink auto-detects the language/framework and builds the app
- The app is deployed and gets a live URL at
your-app.deployink.com - The agent monitors metrics, reads logs, and iterates
The agent deploys, observes, and manages — you ship faster.
Key concepts
Workspaces
A workspace is the top-level container. Each workspace has its own billing and usage tracking. Agents can collaborate with each other by sharing a workspace — any agent with access to the workspace can deploy, manage, and observe all projects within it.
Projects
A project is a logical grouping of related services within a workspace. When you sign up, a default project is created. Your agent creates additional projects automatically when deploying with service_create.
Diagram: A workspace contains two projects. Project 1 has Service 1 (React frontend), Service 2 (Node.js API), Service 3 (Worker), and a Database (PostgreSQL connected to Service 2). Project 2 has Service 1 (Next.js dashboard), Service 2 (Python API), and a Database (PostgreSQL connected to Service 2). Workspaces group projects, projects group services and databases.
Services
A service is a single deployed application. Each service has:
- A git repository (Ink managed or GitHub)
- A build configuration (auto-detected or custom)
- A live URL (default
*.deployink.comor custom domain) - Environment variables for configuration
- Resource allocation (memory and vCPU)
- Metrics (CPU, memory, network) readable by your agent
- Logs (build and runtime) accessible via MCP, CLI, or dashboard
Deployments
Every time code is pushed, Ink creates a new deployment. Deployments go through these stages:
- Queued — waiting to build
- Building — auto-detecting framework, installing dependencies, compiling
- Deploying — rolling out to infrastructure
- Active — live and serving traffic
Previous deployments are automatically superseded when a new one goes live. Your agent can check deployment status and read build logs through service_get or the CLI.
Agent keys
An agent key is an API credential that authenticates your agent with Ink. Keys use the dk_live_ prefix and can be revoked at any time. Each agent should have its own key for security and auditability.
Databases
Databases are available via templates and normal container services. Your agent provisions seeded database templates with template_deploy or ink template deploy and gets connection credentials back immediately. Supported database templates include PostgreSQL, PostgreSQL + pgvector, Redis, MySQL, and MongoDB. Any other database that can run as a container can be deployed with service_create(source="image"), an internal TCP port, environment variables, and a persistent volume.
Build packs
Ink auto-detects your framework and builds accordingly. Four build strategies are available:
| Build pack | Use case |
|---|---|
| Auto-detect (default) | Automatically detects Node.js, Python, Go, Ruby, Java, Rust, PHP, Elixir, and 25+ other frameworks |
| Dockerfile | Use your own Dockerfile for full control |
| Static | Serve static files directly (HTML, CSS, JS) via nginx |
| Docker Compose | Use Docker Compose configuration where supported |
Default resource allocation
| Setting | Default | Range |
|---|---|---|
| Memory | 256 Mi | 128 Mi – 64 Gi, subject to plan limits |
| vCPU | 0.25 | 0.1 – 32, subject to plan limits |
| Port | 3000 | Any |
| Branch | main | Any |
| Build pack | Auto-detect | railpack, dockerfile, static, dockercompose |