Configuration

Config file

vibespace uses a YAML config file at ~/.vibespace/config.yaml. You only need to include the values you want to override — everything else uses built-in defaults.

Terminal window
# Use the sample config as a starting point
cp config.sample.yaml ~/.vibespace/config.yaml

Alternatively, specify a custom path:

Terminal window
vibespace --config /path/to/config.yaml status
# or
export VIBESPACE_CONFIG=/path/to/config.yaml

Priority chain

Values are resolved in this order (last wins):

  1. Built-in defaults
  2. Config file (~/.vibespace/config.yaml)
  3. Environment variables (VIBESPACE_*)
  4. CLI flags (--cpu, --memory, etc.)

Minimal example

A config file only needs the values you want to change:

resources:
cpu: "500m"
cpu_limit: "2000m"
memory: "1Gi"
memory_limit: "4Gi"
storage: "20Gi"

Full reference

See config.sample.yaml for every available option with comments and defaults.

Images

images:
claude: "ghcr.io/vibespacehq/vibespace/claude-code:latest"
codex: "ghcr.io/vibespacehq/vibespace/codex:latest"
init: "busybox:latest"

Resources

Default requests/limits for new vibespace pods.

resources:
cpu: "250m" # CPU request (scheduling guarantee)
cpu_limit: "1000m" # CPU limit (max burst)
memory: "512Mi" # Memory request
memory_limit: "1Gi" # Memory limit
storage: "10Gi" # Persistent volume size
ResourceConfig keyEnv varCLI flag
CPU requestresources.cpuVIBESPACE_DEFAULT_CPU--cpu
CPU limitresources.cpu_limitVIBESPACE_DEFAULT_CPU_LIMIT--cpu-limit
Memory requestresources.memoryVIBESPACE_DEFAULT_MEMORY--memory
Memory limitresources.memory_limitVIBESPACE_DEFAULT_MEMORY_LIMIT--memory-limit
Storageresources.storageVIBESPACE_DEFAULT_STORAGE--storage

Agent defaults

agent:
allowed_tools:
- "Bash(read_only:true)"
- "Read"
- "Write"
- "Edit"
- "Glob"
- "Grep"
skip_permissions: false
share_credentials: false
model: ""
prefixes:
claude: "claude"
codex: "codex"

Cluster

VM resources for vibespace init.

cluster:
cpu: 4 # CPU cores
memory: 8 # Memory in GB
disk: 60 # Disk in GB
SettingConfig keyEnv varCLI flag
CPU corescluster.cpuVIBESPACE_CLUSTER_CPU--cpu
Memory (GB)cluster.memoryVIBESPACE_CLUSTER_MEMORY--memory
Disk (GB)cluster.diskVIBESPACE_CLUSTER_DISK--disk

Ports

ports:
ssh: 22
ttyd: 7681
permission: 18080
wireguard: 51820
management: 7780
registration: 7781
local_port_multiplier: 10000

Network (remote mode)

network:
server_ip: "10.100.0.1"
client_ip_start: 2
invite_token_ttl: "30m"

DNS

dns:
domain: "vibespace.internal"

Kubernetes

kubernetes:
namespace: "vibespace"
deployment_strategy: "Recreate" # or "RollingUpdate"
init_container_uid: 1000
init_container_mode: 755
capabilities:
- CHOWN
- DAC_OVERRIDE
- FOWNER
- SETUID
- SETGID
- NET_BIND_SERVICE
- KILL
- SYS_CHROOT
- AUDIT_WRITE

Timeouts

timeouts:
daemon_socket: "10s"
permission_hook: "300s"
cluster_startup: "10m"
cluster_poll_interval: "5s"

TUI

tui:
monitor:
refresh_interval: "5s"
history_length: 60
syntax_theme: "monokai"

Theme

Customize all colors in hex format.

theme:
brand:
teal: "#00ABAB"
pink: "#F102F3"
orange: "#FF7D4B"
yellow: "#F5F50A"
semantic:
success: "#00ABAB"
error: "#FF4D4D"
warning: "#FF7D4B"
dim: "#666666"
muted: "#444444"
text_light: "#1a1a1a"
text_dark: "#FFFFFF"
tui_colors:
user: "#00FF9F"
tool: "#FF7D4B"
timestamp: "#555555"
code_bg: "#1a1a2e"
code_fg: "#87CEEB"
thinking: "#F102F3"
agent_palette:
- "#F102F3"
- "#FF7D4B"
- "#00D9FF"
- "#7B61FF"
- "#F5F50A"
- "#00FF9F"
- "#FF6B6B"

Agent configuration

Each agent has settings you can view and change at runtime:

Terminal window
# Show config for all agents
vibespace config show --vibespace my-project
# Show config for a specific agent
vibespace config show claude-1 --vibespace my-project
# Change settings
vibespace config set claude-1 --vibespace my-project --model sonnet --max-turns 50

Available settings

SettingFlagApplies toDescription
Model--modelBothWhich model the agent uses
Max turns--max-turnsBothLimit conversation turns (0 = unlimited)
System prompt--system-promptBothCustom system prompt
Skip permissions--skip-permissionsClaudeRun without asking for tool approval
Allowed tools--allowed-toolsClaudeComma-separated whitelist
Disallowed tools--disallowed-toolsClaudeComma-separated blacklist
Reasoning effort--reasoning-effortCodexlow, medium, high, xhigh

Resource allocation

Set resource limits when creating a vibespace:

Terminal window
vibespace create my-project -t claude-code \
--cpu 500m --cpu-limit 2000m \
--memory 1Gi --memory-limit 2Gi \
--storage 20Gi

Requests (e.g. --cpu, --memory) control scheduling — how much the Kubernetes scheduler reserves for the pod. Limits (e.g. --cpu-limit, --memory-limit) cap the maximum the pod can use.

Setting requests lower than limits allows overcommit: pods are scheduled with less overhead but can burst when they need to. This is useful for running many agents since most are idle at any given time.

Agent density guidelines

How many agents you can run depends on your cluster size and resource requests:

ClusterCPU RequestMemory RequestApproximate Max Agents
4 CPU / 8GB250m512Mi~16
4 CPU / 8GB100m256Mi~30
8 CPU / 16GB100m256Mi~60
16 CPU / 32GB50m128Mi~200

These assume most agents are idle. Active agents use more CPU and memory — plan for your expected concurrency.

Cluster sizing

Control the cluster VM resources at init time:

Terminal window
vibespace init --cpu 8 --memory 16 --disk 100

Debug logging

Terminal window
# Log to ~/.vibespace/debug.log
VIBESPACE_DEBUG=1 vibespace status
# Set log level
VIBESPACE_LOG_LEVEL=debug vibespace create my-project -t claude-code

Output control

VariableEffect
NO_COLORDisable all color output
Non-TTY stdoutAutomatically switches to JSON output