Quick Start¶
Deploy a Claude Code, DeepAgents, OpenClaw, or OpenCode agent in under 5 minutes.
Prerequisites¶
A cluster with Language Operator installed and access to a large language model.
Step 1: Create a Cluster¶
A LanguageCluster is a managed namespace for logically grouped agents, models, and tools.
kubectl apply -f - <<EOF
apiVersion: langop.io/v1alpha1
kind: LanguageCluster
metadata:
name: language-operator-demo
spec:
domain: agents.example.com
EOF
Wait for it to be ready:
Switch into its namespace:
Step 2: Configure an LLM¶
Store your API key in a secret:
Create a LanguageModel pointing to it:
kubectl apply -f - <<EOF
apiVersion: langop.io/v1alpha1
kind: LanguageModel
metadata:
name: claude-sonnet
spec:
provider: anthropic
modelName: claude-sonnet-4-5
apiKeySecretRef:
name: anthropic-credentials
key: api-key
EOF
Step 3: Deploy an Agent¶
Choose one of the bundled runtimes:
Claude Code authenticates to Anthropic directly (not through the gateway), so it doesn't use the LanguageModel from Step 2 — and it needs egress to reach api.anthropic.com:
kubectl apply -f - <<EOF
apiVersion: langop.io/v1alpha1
kind: LanguageAgent
metadata:
name: code-agent
spec:
runtime: claude-code
networkPolicies:
egress:
- to:
- cidr: "0.0.0.0/0"
ports:
- port: 443
protocol: TCP
EOF
You'll log in interactively in Step 5 (or set an API key — see the Claude Code guide).
DeepAgents runs a task autonomously, so it needs instructions alongside the model:
kubectl apply -f - <<EOF
apiVersion: langop.io/v1alpha1
kind: LanguageAgent
metadata:
name: researcher
spec:
runtime: deepagents
models:
- name: claude-sonnet
instructions: |
Research the public API of the "deepagents" Python library, then write
a concise summary to /workspace/summary.md. When the file is written, stop.
EOF
Step 4: Check Status¶
Watch the agent pod come up:
Step 5: Access the Agent¶
Port-forward the WebSocket terminal:
Open http://localhost:8080, then run /login inside Claude Code and complete the browser flow to authenticate with your Claude account. Credentials persist on the workspace PVC. See the Claude Code guide for headless API-key / token auth.
DeepAgents starts working as soon as the pod is Running — there's nothing to log into. Watch the run stream:
For a browser view of the same stream plus human-in-the-loop controls, port-forward the service:
Retrieve the auto-generated gateway token:
TOKEN=$(kubectl get secret openclaw-runtime -o jsonpath='{.data.OPENCLAW_GATEWAY_TOKEN}' | base64 -d)
echo "Token: $TOKEN"
If you have a domain configured on your LanguageCluster, open https://openclaw.<cluster-domain> and enter the token when prompted, or connect the OpenClaw CLI directly to wss://openclaw.<cluster-domain>.
Otherwise, port-forward for local access:
kubectl port-forward svc/openclaw 18789:18789
# connect to ws://localhost:18789 with the token above
OpenClaw uses a WebSocket gateway on port 18789. Connect using the OpenClaw browser extension or CLI client (see github.com/openclaw/openclaw).
Access is gated by the cluster OIDC proxy — there is no separate opencode password.
If you have a domain and auth enabled on your LanguageCluster, open https://opencode.<cluster-domain> and sign in through the cluster's OIDC provider.
Otherwise, port-forward for local access (this bypasses the proxy, so no login is required):
Then open http://localhost:3000 or attach the TUI (OpenCode v1.0.10+):
Note: opencode attach against the https://opencode.<cluster-domain> URL won't work — the OIDC proxy needs a browser session. Attach via the port-forwarded http://localhost:3000 instead. opencode has no built-in auth, so enable cluster auth to protect it.