11# Configuration
22
3- Check all available configs [ here ] ( #all-configs ) and its default values [ here] ( #default-values ) .
3+ Check all available configs and its default values [ here] ( #all-configs ) .
44
55## Ways to configure
66
@@ -62,41 +62,41 @@ Rules are Multi-Document context files (`.mdc`) and the following metadata is su
6262
6363There are 3 possible ways to configure rules following this order of priority:
6464
65- ### Project file
65+ === " Project file"
6666
67- A ` .eca/rules ` folder from the workspace root containing ` .mdc ` files with the rules.
67+ A `.eca/rules` folder from the workspace root containing `.mdc` files with the rules.
6868
69- ` .eca/rules/talk_funny.mdc `
70- ``` markdown
71- ---
72- description: Use when responding anything
73- ---
69+ `.eca/rules/talk_funny.mdc`
70+ ```markdown
71+ ---
72+ description: Use when responding anything
73+ ---
7474
75- - Talk funny like Mickey!
76- ```
75+ - Talk funny like Mickey!
76+ ```
7777
78- ### Global file
78+ === " Global file"
7979
80- A ` $XDG_CONFIG_HOME/eca/rules ` or ` ~/.config/eca/rules ` folder containing ` .mdc ` files with the rules.
80+ A `$XDG_CONFIG_HOME/eca/rules` or `~/.config/eca/rules` folder containing `.mdc` files with the rules.
8181
82- ` ~/.config/eca/rules/talk_funny.mdc `
83- ``` markdown
84- ---
85- description: Use when responding anything
86- ---
82+ `~/.config/eca/rules/talk_funny.mdc`
83+ ```markdown
84+ ---
85+ description: Use when responding anything
86+ ---
8787
88- - Talk funny like Mickey!
89- ```
88+ - Talk funny like Mickey!
89+ ```
9090
91- ### Config
91+ === " Config"
9292
93- Just add to your config the ` :rules ` pointing to ` .mdc ` files that will be searched from the workspace root if not an absolute path:
93+ Just add toyour config the `:rules` pointing to `.mdc` files that will be searched from the workspace root if not an absolute path:
9494
95- ``` javascript
96- {
97- " rules" : [{" path" : " my-rule.mdc" }]
98- }
99- ```
95+ ```javascript
96+ {
97+ "rules": [{"path": "my-rule.mdc"}]
98+ }
99+ ```
100100
101101## MCP
102102
@@ -119,134 +119,134 @@ For MCP servers configuration, use the `mcpServers` config, example:
119119You can configure custom command prompts for project, global or via ` commands ` config pointing to the path of the commands.
120120Prompts can use variables like ` $ARGS ` , ` $ARG1 ` , ` ARG2 ` , to replace in the prompt during command call.
121121
122- ### Local custom commands
122+ === " Local custom commands"
123123
124- A ` .eca/commands ` folder from the workspace root containing ` .md ` files with the custom prompt.
124+ A `.eca/commands` folder from the workspace root containing `.md` files with the custom prompt.
125125
126- ` .eca/commands/check-performance.md `
127- ``` markdown
128- Check for performance issues in $ARG1 and optimize if needed.
129- ```
126+ `.eca/commands/check-performance.md`
127+ ```markdown
128+ Check for performance issues in $ARG1 and optimize if needed.
129+ ```
130130
131- ### Global custom commands
131+ === " Global custom commands"
132132
133- A ` $XDG_CONFIG_HOME/eca/commands ` or ` ~/.config/eca/commands ` folder containing ` .md ` files with the custom command prompt.
133+ A `$XDG_CONFIG_HOME/eca/commands` or `~/.config/eca/commands` folder containing `.md` files with the custom command prompt.
134134
135- ` ~/.config/eca/commands/check-performance.mdc `
136- ``` markdown
137- Check for performance issues in $ARG1 and optimize if needed.
138- ```
135+ `~/.config/eca/commands/check-performance.mdc`
136+ ```markdown
137+ Check for performance issues in $ARG1 and optimize if needed.
138+ ```
139139
140- ### Config
140+ === " Config"
141141
142- Just add to your config the ` commands ` pointing to ` .md ` files that will be searched from the workspace root if not an absolute path:
142+ Just add to your config the `commands` pointing to `.md` files that will be searched from the workspace root if not an absolute path:
143143
144- ``` javascript
145- {
146- " commands" : [{" path" : " my-custom-prompt.md" }]
147- }
148- ```
144+ ```javascript
145+ {
146+ "commands": [{"path": "my-custom-prompt.md"}]
147+ }
148+ ```
149149
150150## All configs
151151
152- ### Schema
153-
154- ``` typescript
155- interface Config {
156- openaiApiKey? : string ;
157- openaiApiUrl? : string ;
158- anthropicApiKey? : string ;
159- anthropicApiUrl? : string ;
160- ollamaApiUrl: string ;
161- rules: [{path: string ;}];
162- commands: [{path: string ;}];
163- systemPromptTemplateFile? : string ;
164- nativeTools: {
165- filesystem: {enabled: boolean };
166- shell: {enabled: boolean ,
167- excludeCommands: string []};
168- };
169- disabledTools: string [],
170- toolCall? : {
171- manualApproval? : boolean | string [], // manual approve all tools or the specified tools
172- };
173- mcpTimeoutSeconds: number ;
174- mcpServers: {[key : string ]: {
175- command: string ;
176- args? : string [];
177- disabled? : boolean ;
178- }};
179- customProviders: {[key : string ]: {
180- api: ' openai-responses' | ' openai-chat' | ' anthropic' ;
181- models: string [];
182- defaultModel? : string ;
183- url? : string ;
184- urlEnv? : string ;
185- completionUrlRelativePath? : string ;
186- key? : string ;
187- keyEnv? : string ;
188- }};
189- models: {[key : string ]: {
190- extraPayload: {[key : string ]: any }
191- }};
192- ollama? : {
193- useTools: boolean ;
194- think: boolean ;
195- };
196- chat? : {
197- welcomeMessage: string ;
198- };
199- agentFileRelativePath: string ;
200- index? : {
201- ignoreFiles: [{
202- type: string ;
203- }];
204- repoMap? : {
205- maxTotalEntries? : number ;
206- maxEntriesPerDir? : number ;
152+ === "Schema"
153+
154+ ```typescript
155+ interface Config {
156+ openaiApiKey?: string;
157+ openaiApiUrl?: string;
158+ anthropicApiKey?: string;
159+ anthropicApiUrl?: string;
160+ ollamaApiUrl: string;
161+ rules: [{path: string;}];
162+ commands: [{path: string;}];
163+ systemPromptTemplateFile?: string;
164+ nativeTools: {
165+ filesystem: {enabled: boolean};
166+ shell: {enabled: boolean,
167+ excludeCommands: string[]};
207168 };
208- };
209- }
210- ```
169+ disabledTools: string[],
170+ toolCall?: {
171+ manualApproval?: boolean | string[], // manual approve all tools or the specified tools
172+ };
173+ mcpTimeoutSeconds: number;
174+ mcpServers: {[key: string]: {
175+ command: string;
176+ args?: string[];
177+ disabled?: boolean;
178+ }};
179+ customProviders: {[key: string]: {
180+ api: 'openai-responses' | 'openai-chat' | 'anthropic';
181+ models: string[];
182+ defaultModel?: string;
183+ url?: string;
184+ urlEnv?: string;
185+ completionUrlRelativePath?: string;
186+ key?: string;
187+ keyEnv?: string;
188+ }};
189+ models: {[key: string]: {
190+ extraPayload: {[key: string]: any}
191+ }};
192+ ollama?: {
193+ useTools: boolean;
194+ think: boolean;
195+ };
196+ chat?: {
197+ welcomeMessage: string;
198+ };
199+ agentFileRelativePath: string;
200+ index?: {
201+ ignoreFiles: [{
202+ type: string;
203+ }];
204+ repoMap?: {
205+ maxTotalEntries?: number;
206+ maxEntriesPerDir?: number;
207+ };
208+ };
209+ }
210+ ```
211211
212- ### Default values
212+ === " Default values"
213213
214- ``` javascript
215- {
216- " openaiApiKey" : null ,
217- " openaiApiUrl" : null ,
218- " anthropicApiKey" : null ,
219- " anthropicApiUrl" : null ,
220- " ollamaApiUrl" : " http://localhost:11434"
221- " rules" : [],
222- " commands" : [],
223- " nativeTools" : {" filesystem" : {" enabled" : true },
224- " shell" : {" enabled" : true ,
225- " excludeCommands" : []}},
226- " disabledTools" : [],
227- " toolCall" : {
228- " manualApproval" : null ,
229- },
230- " mcpTimeoutSeconds" : 60 ,
231- " mcpServers" : {},
232- " customProviders" : {},
233- " models" : {},
234- " ollama" : {
235- " useTools" : true ,
236- " think" : true
237- },
238- " chat" : {
239- " welcomeMessage" : " Welcome to ECA!\n\n Type '/' for commands\n\n "
240- },
241- " agentFileRelativePath" : " AGENT.md"
242- " index" : {
243- " ignoreFiles" : [ {
244- " type" : " gitignore"
245- } ],
246- " repoMap" : {
247- " maxTotalEntries" : 800 ,
248- " maxEntriesPerDir" : 50
214+ ```javascript
215+ {
216+ "openaiApiKey" : null,
217+ "openaiApiUrl" : null,
218+ "anthropicApiKey" : null,
219+ "anthropicApiUrl" : null,
220+ "ollamaApiUrl": "http://localhost:11434"
221+ "rules" : [],
222+ "commands" : [],
223+ "nativeTools": {"filesystem": {"enabled": true},
224+ "shell": {"enabled": true,
225+ "excludeCommands": []}},
226+ "disabledTools": [],
227+ "toolCall": {
228+ "manualApproval": null,
229+ },
230+ "mcpTimeoutSeconds" : 60,
231+ "mcpServers" : {},
232+ "customProviders": {},
233+ "models": {},
234+ "ollama" : {
235+ "useTools": true,
236+ "think": true
237+ },
238+ "chat" : {
239+ "welcomeMessage" : "Welcome to ECA!\n\nType '/' for commands\n\n"
240+ },
241+ "agentFileRelativePath": "AGENT.md"
242+ "index" : {
243+ "ignoreFiles" : [ {
244+ "type" : "gitignore"
245+ } ],
246+ "repoMap": {
247+ "maxTotalEntries": 800,
248+ "maxEntriesPerDir": 50
249+ }
250+ }
249251 }
250- }
251- }
252- ```
252+ ```
0 commit comments