Skip to content

Configuration and storage

Dline keeps durable state, runtime resources, user documents, and project capabilities under separate roots. Each location has its own owner and should not be merged into one configuration directory.

The default is ~/.dline/data/. It holds canonical settings, workspace state, profile metadata, and secrets:

~/.dline/data/
├── globalState.json
├── secrets.json
├── settings/
│ ├── settings.json
│ └── api_profiles.json
├── secrets/
│ ├── api_keys.json
│ └── provider_secrets.json
└── workspaces/
└── <workspace-hash>/
├── workspaceState.json
└── settings.json

Do not edit these files while Dline is running. Settings and profiles are updated through their owning repositories so that multiple VS Code windows do not overwrite one another with stale snapshots.

The default is ~/.dline/. It holds resources such as provider metadata, caches, and Puppeteer data:

~/.dline/
├── providers/
├── cache/
└── puppeteer/

User-facing task data and global capabilities live under the operating system’s Documents directory, normally ~/Documents/dline/:

~/Documents/dline/
├── tasks/
├── rules/
├── workflows/
├── skills/
├── subagents/
├── mcp/
├── hooks/
├── settings/
│ └── mcp_settings.json
└── checkpoints/

DLINE_DOCS_DIR is the complete Dline documents root. When it is set, Dline does not append another dline directory.

Repository-scoped capabilities use explicit project paths:

your-project/
├── .agents/
│ ├── rules/
│ ├── workflows/
│ ├── skills/
│ ├── subagents/
│ └── mcp/
└── .agentignore

Commit the .agents/ resources and the .agentignore policy that you intend to share with collaborators, but keep credentials out of the repository. Workspace MCP descriptors reject inline secrets in sensitive fields and require environment-variable references instead.

VariableDescriptionDefault
DLINE_DIRParent of the state and data root; Dline appends data/~/.dline
DLINE_HOME_DIRResource home for provider metadata, caches, and Puppeteer data~/.dline
DLINE_DOCS_DIRComplete documents root for tasks and global capabilitiesdline under the system Documents directory
DLINE_COMMAND_PERMISSIONSJSON policy that restricts shell commandsunset

Set path overrides before launching VS Code so that the extension host inherits them. For a fully isolated environment, set all three path variables; overriding only one does not isolate the others.

Restrict which shell commands Dline can run:

Terminal window
export DLINE_COMMAND_PERMISSIONS='{"allow": ["npm *", "git *"], "deny": ["rm -rf *"]}'

Format:

{
"allow": ["pattern1", "pattern2"],
"deny": ["pattern3"],
"allowRedirects": true
}

Rules:

  • deny takes precedence over allow.
  • When allow is set, any command that does not match it is denied.
  • allowRedirects controls shell redirects (>, >>, <) and defaults to false.

The current public extension surface does not provide a stable third-party plugin or lifecycle-hook installation API. The Hooks and Plugins pages linked above describe planned boundaries, not an installable contract.