-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path.deva.example
More file actions
90 lines (83 loc) · 2.68 KB
/
.deva.example
File metadata and controls
90 lines (83 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# deva Configuration File Example
#
# This file demonstrates the .deva config file format.
# Config files are loaded in this order:
# 1. $XDG_CONFIG_HOME/deva/.deva (usually ~/.config/deva/.deva)
# 2. $HOME/.deva
# 3. ./.deva (project-specific)
# 4. ./.deva.local (gitignored overrides)
#
# Lines starting with # are comments.
# Blank lines are ignored.
# VOLUME Directives
# Mount host directories into container
# Format: VOLUME=<host-path>:<container-path>:<mode>
# Modes: ro (read-only), rw (read-write)
VOLUME=$HOME/.ssh:/home/deva/.ssh:ro
VOLUME=$HOME/projects/shared:/home/deva/shared:ro
# ENV Directives
# Set environment variables in container
# Format: ENV=<VAR_NAME>=<value>
ENV=EDITOR=vim
ENV=LANG=en_US.UTF-8
# Variable Assignments
# Set deva.sh behavior variables
# These control wrapper behavior, not container environment
AUTH_METHOD=claude
PROFILE=rust
EPHEMERAL=false
# Common Use Cases:
#
# 1. Mount read-only SSH keys:
# VOLUME=$HOME/.ssh:/home/deva/.ssh:ro
#
# 2. Mount project dependencies:
# VOLUME=$HOME/shared-libs:/home/deva/libs:ro
#
# 3. Set default editor:
# ENV=EDITOR=nvim
#
# 4. Enable Docker-in-Docker:
# ENV=DOCKER_IN_DOCKER=true
#
# 5. Set default profile:
# PROFILE=rust
#
# 6. Disable ephemeral containers (persistent):
# EPHEMERAL=false
#
# 7. Enable Codex browser MCP for this project:
# DEFAULT_AGENT=codex
# CODEX_BROWSER_MCP=true
#
# Optional session-only Codex config overrides:
# CODEX_CONFIG=features.apps=false
# CODEX_CONFIG=features.plugins=false
# Hybrid Agent Setup:
#
# Hybrid is the DEFAULT. deva walks every populated subdir under
# ~/.config/deva/ (claude, codex, gemini) and mounts each agent's
# canonical entries into the container. Populated = you either
# hand-created the subdir or autolink symlinked it from legacy
# ~/.claude, ~/.codex, ~/.gemini on first run.
#
# No .deva entries required for the common case. To opt OUT of
# hybrid for a single invocation, pass --config-home DIR to
# isolate that run to a single home.
#
# Use VOLUME= only when you want to mount host paths OUTSIDE
# ~/.config/deva/ (e.g. a shared secrets vault) at an agent target.
# VOLUME= entries win over the default per-agent mount at the same
# container target (first-writer-wins; CLI -v beats .deva).
#
# Auth credentials inside mounted agent dirs ride along — hybrid
# only makes sense if you trust every agent equally.
# Project-Specific Config (.deva in project root):
#
# VOLUME=./vendor:/home/deva/project/vendor:ro
# ENV=DATABASE_URL=postgres://localhost/dev
# PROFILE=rust
# Personal Overrides (.deva.local - add to .gitignore):
#
# VOLUME=$HOME/personal-keys:/home/deva/keys:ro
# ENV=API_KEY=secret-key-here