EditLess Settings Reference
March 24, 2026 · View on GitHub
All EditLess settings are accessible through VS Code's Settings UI (Ctrl+,) or by editing settings.json directly. Each setting is prefixed with editless. and scoped appropriately (see the Scope column in each table — resource settings can vary per folder in multi-root workspaces, window settings apply to the whole VS Code window).
Discovery
Settings for discovering agent teams and standalone agents.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.discoveryDir | string | "" | resource | (Deprecated) Use discovery.scanPaths instead. Directory to scan for squad projects on startup. |
editless.discovery.scanPaths | array | [] | window | Additional directories to scan for agents and squads on startup and when configuration changes. Accepts absolute paths or paths relative to workspace root. |
editless.scanDebounceMs | number | 500 | resource | Debounce interval in milliseconds for file-system scanning. Increase this value if you experience excessive refreshes in large workspaces with many file changes. |
Example:
{
"editless.discovery.scanPaths": [
"./squads",
"C:\\teams\\shared-agents"
],
"editless.scanDebounceMs": 1000
}
CLI
Settings for configuring how EditLess launches Copilot CLI sessions.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.cli.command | string | "copilot" | window | Override the default copilot binary with a custom command or wrapper script. Supports multi-word commands (e.g., "my-wrapper copilot"). Can be overridden per-agent in agent settings. |
editless.cli.additionalArgs | string | "" | window | Additional command-line arguments appended to the Copilot CLI when launching sessions. Use this to pass flags like --yolo to every session. |
Example — use Agency as the launch command:
{
"editless.cli.command": "agency copilot",
"editless.cli.additionalArgs": ""
}
Note
Microsoft FTEs: there are also a couple of internal first-party options in this space that are not yet publicly announced. If you want to hear about those or want help mapping them to your scenario, please contact Casey Irvine.
GitHub Integration
Settings for displaying GitHub issues and pull requests in the Work Items and Pull Requests panes.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.github.repos | array | [] | resource | GitHub repositories to show in Work Items and Pull Requests panes. Use "owner/repo" format (e.g., ["octocat/hello-world"]). If empty, EditLess auto-detects repositories from workspace using git remote. |
editless.github.issueFilter | object | {} | resource | Filter which GitHub issues appear by label. See schema below. |
Issue Filter Schema
{
includeLabels?: string[]; // Only show issues with at least one of these labels (empty = show all)
excludeLabels?: string[]; // Hide issues that have any of these labels
}
Example — show only bugs and features, hide completed work:
{
"editless.github.repos": ["myorg/frontend", "myorg/backend"],
"editless.github.issueFilter": {
"includeLabels": ["type:bug", "type:feature"],
"excludeLabels": ["status:done", "wontfix"]
}
}
Azure DevOps Integration
Settings for displaying Azure DevOps work items and pull requests.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.ado.organization | string | "" | resource | Azure DevOps organization URL (e.g., "https://dev.azure.com/myorg"). Required to show work items and PRs from ADO. |
editless.ado.project | string | "" | resource | Azure DevOps project name to display in Work Items and Pull Requests panes (e.g., "MyProject"). |
Example:
{
"editless.ado.organization": "https://dev.azure.com/mycompany",
"editless.ado.project": "Core Platform"
}
Local Tasks
Settings for tracking file-based tasks alongside GitHub Issues and ADO Work Items. See docs/local-tasks.md for full format documentation.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.local.taskFolders | array | [] | resource | Directories containing task .md files (with YAML frontmatter) to show in the Work Items pane. Each directory is scanned for .md files with state, created, and session_id frontmatter fields. |
Example:
{
"editless.local.taskFolders": [
"C:\\workspace\\my-project\\tasks"
]
}
Refresh & Display
Settings for auto-refresh behavior and terminal/panel display.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.refreshInterval | number | 5 | window | Auto-refresh interval in minutes for Work Items and Pull Requests panels. EditLess also refreshes when the VS Code window regains focus. Set to 0 to disable auto-refresh entirely (manual refresh only). Minimum: 0. |
Example:
{
"editless.refreshInterval": 10
}
Notifications
Settings for controlling desktop toasts and notifications.
| Setting | Type | Default | Scope | Description |
|---|---|---|---|---|
editless.notifications.enabled | boolean | true | window | Master toggle for all EditLess notifications. When disabled, all EditLess toasts are suppressed — including inbox notifications. |
editless.notifications.inbox | boolean | true | window | Show notifications when new inbox items arrive (pending decisions, work items). A toast fires when the inbox count transitions from 0 → N. Requires editless.notifications.enabled to be on. |
Example:
{
"editless.notifications.enabled": true,
"editless.notifications.inbox": true
}
Complete Example settings.json
{
// Discovery
"editless.discovery.scanPaths": ["./squads"],
"editless.scanDebounceMs": 500,
// CLI
"editless.cli.command": "copilot",
"editless.cli.additionalArgs": "",
// GitHub
"editless.github.repos": ["myorg/frontend", "myorg/backend"],
"editless.github.issueFilter": {
"includeLabels": ["squad:platform"],
"excludeLabels": ["wontfix"]
},
// Azure DevOps
"editless.ado.organization": "https://dev.azure.com/mycompany",
"editless.ado.project": "Core Platform",
// Local Tasks
"editless.local.taskFolders": [],
// Refresh & Display
"editless.refreshInterval": 5,
// Notifications
"editless.notifications.enabled": true,
"editless.notifications.inbox": true
}
Agent Settings
As of v0.1.3, agents are auto-discovered from your workspace and personal directories. EditLess scans:
- Personal agents:
~/.copilot/agents/and~/.config/copilot/agents/(supports.mdand.agent.md) - Workspace agents:
.github/agents/, repo-local.copilot/agents/, and.agent.mdfiles in the workspace root - Squad teams:
.squad/or.ai-team/directories in your workspace folders
No registration file needed — just drop agent files in these locations and they appear in the sidebar.
Agent Settings File
User preferences for discovered agents are stored in agent-settings.json in VS Code's global storage directory. This file is managed automatically — you don't need to edit it manually. Settings include:
| Setting | Type | Description |
|---|---|---|
hidden | boolean | Whether the agent is hidden from the tree view. Set via "Hide Agent" context menu. |
model | string | Override the Copilot CLI --model flag for this agent (e.g., "gpt-4"). |
additionalArgs | string | Extra CLI flags for this agent (e.g., "--yolo"). Merged with global editless.cli.additionalArgs. |
command | string | Override editless.cli.command for this agent (e.g., "my-wrapper copilot"). |
Example agent-settings.json:
{
"agents": {
"my-squad": {
"hidden": false,
"model": "gpt-4",
"additionalArgs": "--yolo"
},
"code-reviewer": {
"hidden": false,
"command": "custom-copilot",
"additionalArgs": "--no-cache"
}
}
}
How Auto-Discovery Works
- Workspace scan — EditLess watches your workspace folders for
.squad/or.ai-team/directories. Any folder containing ateam.mdfile is treated as a squad. - Personal agent scan — EditLess scans personal Copilot
agents/directories for agent markdown files (.mdor.agent.md). - Additional scan paths — You can configure
editless.discovery.scanPathsto add extra directories. - Automatic updates — When you add, remove, or modify agent files, the tree view updates automatically (debounced by
editless.scanDebounceMs).
Managing Agent Settings
- Hide/show agents — Right-click an agent → "Hide Agent". Hidden agents appear under a collapsible "Hidden (N)" group.
- Per-agent model — Right-click an agent → "Change Model".
- Per-agent CLI settings — Right-click an agent → "Go to Settings" to open
agent-settings.json, then edit that agent's entry.
Migration from agent-registry.json
If you're upgrading from v0.1.2 or earlier, your existing agent-registry.json is automatically migrated to agent-settings.json on first activation. The old registry file is left in place for manual cleanup — you can delete it after confirming the migration worked.
Per-Agent CLI Settings
When launching an agent, EditLess builds a command line by combining global CLI settings with per-agent config overrides.
Command Override
The command field in agent-settings.json overrides editless.cli.command for that agent only. This is useful when you want one agent to launch through a different entry point, such as agency copilot:
// VS Code settings.json
{
"editless.cli.command": "copilot"
}
// agent-settings.json (in global storage)
{
"agents": {
"my-agent": {
"command": "agency copilot"
}
}
}
When this agent launches, EditLess uses agency copilot for that agent while other agents still use the global copilot command.
Model Override
The model field in agent-settings.json sets the Copilot CLI --model flag for that agent only, overriding any global settings:
// VS Code settings.json
{
"editless.cli.additionalArgs": "--yolo"
}
// agent-settings.json (in global storage)
{
"agents": {
"my-squad": {
"model": "gpt-4" // This agent always uses gpt-4
}
}
}
When this agent launches, the CLI receives: --model gpt-4 --yolo (global args still apply).
Additional Args Merge
The additionalArgs field in agent settings is merged with (not replaced by) global editless.cli.additionalArgs. The merge order is:
- Per-agent
additionalArgs(applied first) - Global
editless.cli.additionalArgs(applied second)
Flags are concatenated and split on whitespace.
Example:
// VS Code settings.json
{
"editless.cli.additionalArgs": "--verbose --cache-dir=/tmp/cache"
}
// agent-settings.json
{
"agents": {
"my-agent": {
"additionalArgs": "--no-telemetry"
}
}
}
Resulting command: --no-telemetry --verbose --cache-dir=/tmp/cache
CLI Command Assembly
EditLess builds the final Copilot CLI command from multiple sources. The command is constructed in this order:
- Binary: Per-agent
command→editless.cli.command→"copilot"(default) - Agent flag: Derived from agent
idanduniverse(auto-discovered from team.md):id === "builtin:copilot-cli"→ no--agentflaguniverse === "standalone"→--agent <id>- All others →
--agent squad
- Model: From per-agent
modelfield in agent-settings.json (if set) →--model <model> - Extra args: Per-agent
additionalArgs+ globaleditless.cli.additionalArgs(concatenated, per-agent first)
Example build process:
Binary: copilot
--agent flag: --agent squad
--model flag: --model gpt-4
Per-agent args: --yolo
Global args: --verbose
─────────────────────────────────────
Final command: copilot --agent squad --model gpt-4 --yolo --verbose
Migration from v0.1.2 and Earlier
v0.1.3: agent-registry.json → Auto-Discovery
The agent registry file has been eliminated in v0.1.3. Agents are now auto-discovered from your workspace and personal directories.
Migration process:
- On first activation of v0.1.3, EditLess reads your existing
agent-registry.json - Hidden status, model overrides, and additionalArgs are migrated to
agent-settings.jsonin global storage - The old
agent-registry.jsonis left in place for manual cleanup - Agents now appear automatically from discovered
.squad/or.ai-team/directories — no registration needed
What changed:
- ❌
agent-registry.json— no longer used (replaced by auto-discovery) - ❌
editless.registryPathsetting — removed - ❌ "Add to Registry" / "Promote Discovered Agent" commands — removed
- ✅
agent-settings.json— new file for user preferences (hidden, model, additionalArgs, command) - ✅ Auto-discovery — agents appear automatically when you add them to your workspace
Action required:
- None — migration is automatic. You can delete
agent-registry.jsonafter confirming your agents appear correctly.
v0.1.1: launchCommand → Structured Fields
If you're upgrading from v0.1.0, the registry format changed in v0.1.1. Old registries are automatically migrated in memory on load.
Old format (v0.1.0):
{
"squads": [
{
"id": "my-squad",
"launchCommand": "copilot --agent squad --model gpt-4 --yolo"
}
]
}
Auto-migrated to (v0.1.1+):
{
"squads": [
{
"id": "my-squad",
"model": "gpt-4",
"additionalArgs": "--yolo"
}
]
}
Known Limitations
| Issue | Impact | Workaround |
|---|---|---|
| Settings changes don't update existing entries | When you change global editless.cli.additionalArgs, agents discovered before the change won't pick up the new value until the extension reloads. | Reload the VS Code window after changing global CLI settings. |
For architectural details on how these settings are used, see docs/architecture.md.