ECA - Editor Code Assistant
ECA AI coding agent configuration file
| Type | object |
|---|---|
| File match |
**/eca/config.json
**/.eca/config.json
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/eca-editor-code-assistant/latest.json |
| Source | https://eca.dev/config.json |
Validate with Lintel
npx @lintel/lintel check
Configuration schema for ECA (Editor Code Assistant). See https://eca.dev/config/introduction for full documentation.
Properties
JSON Schema reference for editor validation support.
LLM provider configurations. Each key is the provider name.
Default model in format 'provider/model'. When null, ECA decides the default model.
The default agent to use for new chats.
Number of days to keep old chats and tool call output cache before cleanup. Set to 0 to disable cleanup entirely.
Named agent configurations for different workflows.
Deprecated: use 'defaultAgent' instead. Backward compatible alias.
Deprecated: use 'agent' instead. Backward compatible alias.
Shell actions that run before or after specific events.
Rules are contexts passed to the LLM during a prompt, useful to tune prompts or LLM responses.
List of tool names to disable globally.
Custom command prompt files.
User-defined command-line tools the LLM can use.
Tool call configuration including approval rules and tool-specific settings.
4 nested properties
Tool approval configuration.
4 nested properties
Default approval mode for tools not explicitly configured.
Tools that are automatically allowed. Key is tool or server name.
Tools that require user approval. Key is tool or server name.
Tools that are denied. Key is tool or server name.
Configuration for the read_file tool.
1 nested properties
Maximum number of lines returned by read_file.
Configuration for the shell_command tool.
3 nested properties
Custom shell executable path. Overrides the default platform shell (bash on Linux/macOS, powershell on Windows).
Arguments passed to the shell before the script argument. E.g. ["-l", "-c"] for bash.
Maximum length of shell command summary.
Output truncation settings for tool results.
2 nested properties
Maximum number of lines in tool output.
Maximum size in kilobytes for tool output.
Timeout in seconds for MCP server operations.
Timeout in seconds for LSP operations.
Timeout in seconds to wait without receiving data before considering a LLM stream stalled.
MCP (Model Context Protocol) server configurations.
Custom prompt configurations. Values support dynamic strings like ${file:path} and ${classpath:path}.
8 nested properties
System prompt for chat interactions.
Prompt for generating chat titles.
Prompt for compacting chat context.
Prompt for the /init command.
Prompt for skill creation.
System prompt for inline completions.
System prompt for rewrites.
Custom descriptions for specific tools. Key is the tool name.
Custom welcome message shown when ECA starts.
Context window usage percentage at which auto-compact triggers.
Indexing configuration for workspace files.
2 nested properties
Repository map configuration for context building.
2 nested properties
Maximum total entries in the repo map.
Maximum entries per directory in the repo map.
Inline completion configuration.
1 nested properties
Model to use for inline completions.
Rewrite feature configuration.
1 nested properties
Model to use for rewrites. Defaults to the same model selection as chat.
Built-in variant definitions keyed by model-name regex pattern.
OpenTelemetry OTLP collector configuration. Keys follow otlp auto-configure settings.
Path to a custom netrc credential file. When null, searches ~/.netrc or ~/_netrc.
Chat feature settings.
1 nested properties
Whether to automatically generate a title for new chats.
Plugin system for loading external configuration from git repos or local paths. Each key (except install) is a named plugin source with a source URL or path. install lists plugin names to install from any registered source.
1 nested properties
List of plugin names to install from registered sources.
Remote web control server configuration. When enabled, starts an embedded HTTP server allowing a web frontend (web.eca.dev) to observe and control chat sessions in real-time.
4 nested properties
Enables the remote HTTP server.
Host used in the logged URL for web.eca.dev to connect back to. Can be a LAN IP, public IP, domain, or tunnel URL. When unset, auto-detected via InetAddress/getLocalHost.
Port the HTTP server listens on. When unset, tries port 7777, then 7778, 7779, etc. up to 20 attempts.
Auth token for Bearer authentication. When unset, a 32-byte hex token is auto-generated and logged to stderr.
Network configuration for custom CA certificates and mTLS client certificates. Values support dynamic string interpolation (e.g. ${env:SSL_CERT_FILE}).
4 nested properties
Path to a PEM file containing custom CA certificates. These are added to the JVM default trust store, so public CAs remain trusted. Falls back to SSL_CERT_FILE or NODE_EXTRA_CA_CERTS environment variables.
Path to a PEM file containing the client certificate for mutual TLS (mTLS). Falls back to ECA_CLIENT_CERT environment variable.
Path to a PEM file containing the client private key for mutual TLS (mTLS). Supports both unencrypted and encrypted PKCS8 keys. Falls back to ECA_CLIENT_KEY environment variable.
Passphrase for an encrypted client private key. Only needed when the key file is encrypted. Falls back to ECA_CLIENT_KEY_PASSPHRASE environment variable.
Definitions
Additional request payload fields applied when a variant is selected. Empty object ({}) can be used to remove a built-in variant override.
Variant set applied when the model name matches this regex key.
Named variants provided for matching models.
Provider names for which this regex-based variant set should not apply.
Configuration for an LLM provider.
The API protocol to use for this provider.
Whether to fetch available models from the provider's API.
Base URL for the provider's API. Supports dynamic strings like ${env:VAR}.
API key for authentication. Supports dynamic strings like ${env:MY_API_KEY}.
Credential file lookup in format [login@]machine[:port] for netrc-based authentication.
Whether this provider requires authentication.
Custom relative URL path for completion requests.
Custom start tag for thinking/reasoning blocks in model responses.
Custom end tag for thinking/reasoning blocks in model responses.
HTTP client implementation to use.
Custom retry rules. Each rule can match by HTTP status code and/or error text regex pattern. When matched, the request is retried with exponential backoff.
Available models for this provider. Each key is the model alias.
Configuration for a specific model.
The actual model identifier sent to the API, if different from the alias key.
Additional fields to include in the API request payload.
Additional HTTP headers to include in API requests.
How to handle reasoning/thinking history in conversation context.
Named payload presets for this model. Merged with built-in variants; same-name entries override built-ins. Setting a variant to {} removes that built-in variant.
A named agent configuration.
Name of another agent to inherit configuration from. The current agent's settings are deep-merged on top of the inherited agent's settings.
Agent mode. 'primary' for standalone agents, 'subagent' for agent-spawnable agents.
Description of this agent's purpose. Required for subagents — shown to the LLM so it knows when to spawn this agent. Supports dynamic strings like ${file:path} and ${classpath:path}.
System prompt for this agent. Overrides the default system prompt. Supports dynamic strings like ${file:path} and ${classpath:path}.
Maximum number of tool-call steps before the agent is halted. Useful for limiting subagent execution.
Default model for this agent, overriding the global default.
Default variant for this agent. Used when available for the selected model.
Tools to disable for this agent.
Context window usage percentage at which auto-compact triggers for this agent.
Tool call configuration including approval rules and tool-specific settings.
4 nested properties
Tool approval configuration.
4 nested properties
Default approval mode for tools not explicitly configured.
Tools that are automatically allowed. Key is tool or server name.
Tools that require user approval. Key is tool or server name.
Tools that are denied. Key is tool or server name.
Configuration for the read_file tool.
1 nested properties
Maximum number of lines returned by read_file.
Configuration for the shell_command tool.
3 nested properties
Custom shell executable path. Overrides the default platform shell (bash on Linux/macOS, powershell on Windows).
Arguments passed to the shell before the script argument. E.g. ["-l", "-c"] for bash.
Maximum length of shell command summary.
Output truncation settings for tool results.
2 nested properties
Maximum number of lines in tool output.
Maximum size in kilobytes for tool output.
Custom prompt configurations. Values support dynamic strings like ${file:path} and ${classpath:path}.
8 nested properties
System prompt for chat interactions.
Prompt for generating chat titles.
Prompt for compacting chat context.
Prompt for the /init command.
Prompt for skill creation.
System prompt for inline completions.
System prompt for rewrites.
Custom descriptions for specific tools. Key is the tool name.
A hook configuration for running shell actions on events.
The event type that triggers this hook.
List of actions to execute when the hook triggers.
Regex pattern for matching server__tool-name. Only for *ToolCall hook types.
Whether to show hook execution in chat.
For postToolCall hooks, whether to run even if the tool errored.
A shell action executed by a hook.
Action type.
Inline shell script to execute.
Path to a shell script file to execute.
Timeout in milliseconds for this action.
A user-defined command-line tool.
Description of what the tool does. Used by the LLM to decide when to use it.
Command template with {{argument_name}} placeholders.
Schema defining the tool's parameters.
2 nested properties
Parameter definitions.
List of required parameter names.
Tool call configuration including approval rules and tool-specific settings.
Tool approval configuration.
4 nested properties
Default approval mode for tools not explicitly configured.
Tools that are automatically allowed. Key is tool or server name.
Tools that require user approval. Key is tool or server name.
Tools that are denied. Key is tool or server name.
Configuration for the read_file tool.
1 nested properties
Maximum number of lines returned by read_file.
Configuration for the shell_command tool.
3 nested properties
Custom shell executable path. Overrides the default platform shell (bash on Linux/macOS, powershell on Windows).
Arguments passed to the shell before the script argument. E.g. ["-l", "-c"] for bash.
Maximum length of shell command summary.
Output truncation settings for tool results.
2 nested properties
Maximum number of lines in tool output.
Maximum size in kilobytes for tool output.
Tool approval configuration.
Default approval mode for tools not explicitly configured.
Tools that are automatically allowed. Key is tool or server name.
Tools that require user approval. Key is tool or server name.
Tools that are denied. Key is tool or server name.
Matcher configuration for a tool approval rule.
Map of argument name to list of Java regex patterns to match against.
MCP server configuration. Use 'url' for remote HTTP servers or 'command' for stdio servers.
URL for remote HTTP-streamable or SSE MCP servers.
Command to launch a stdio MCP server.
Arguments for the stdio MCP server command.
Environment variables to set for the MCP server process.
Whether this MCP server is disabled.
Custom HTTP headers to include in requests to this MCP server. If an Authorization header is set, OAuth is skipped entirely.
OAuth client ID for servers that require a pre-registered OAuth application (e.g. Databricks, Slack). When set, dynamic client registration is skipped.
OAuth client secret for servers that require confidential OAuth (e.g. Slack MCP). Used together with clientId for token exchange.
Fixed port for the OAuth callback server. Required by providers like Slack that mandate pre-registered redirect URIs. When set, the callback uses HTTPS with a bundled localhost certificate. Register https://localhost:<port>/auth/callback as the redirect URI in your OAuth app.
Custom prompt configurations. Values support dynamic strings like ${file:path} and ${classpath:path}.
System prompt for chat interactions.
Prompt for generating chat titles.
Prompt for compacting chat context.
Prompt for the /init command.
Prompt for skill creation.
System prompt for inline completions.
System prompt for rewrites.
Custom descriptions for specific tools. Key is the tool name.