> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coralos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Registry

export const ServerConfigList = ({table, config, examples}) => {
  let hyphens = config.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
  let underscores = config.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
  let examplesToml = examples.join(", ");
  return <CodeGroup>
            <CodeBlock filename="Command line">
                {examples.map(example => <span key={example}>--{table}.{hyphens}={example} </span>)}
            </CodeBlock>

            <CodeBlock filename="Config file">
                <span>{table}.{underscores} = [{examplesToml}]</span>
            </CodeBlock>
        </CodeGroup>;
};

export const ServerConfigSingle = ({table, config, example}) => {
  let hyphens = config.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
  let underscores = config.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
  return <CodeGroup>
            <CodeBlock filename="Command line">
                <span>--{table}.{hyphens}={example}</span>
            </CodeBlock>

            <CodeBlock filename="Config file">
                <span>{table}.{underscores} = {example}</span>
            </CodeBlock>
        </CodeGroup>;
};

# Local agents

<Badge color="blue">default</Badge> empty list <br />

<ServerConfigList table="registry" config="localAgents" examples={["\"/path/to/agent\"", "\"/all/my/agents/*\""]} />

A list of paths to agents on the local machine. Any agent included in this list will be available to the Coral server
in the local agent registry source.

Consider the following directory structure:

<Tree>
  <Tree.Folder name="/path/to/agents" defaultOpen>
    <Tree.Folder name="agent1" defaultOpen>
      <Tree.File name="coral-agent.toml" />
    </Tree.Folder>

    <Tree.Folder name="agent2" defaultOpen>
      <Tree.File name="coral-agent.toml" />
    </Tree.Folder>

    <Tree.Folder name="agent3" defaultOpen>
      <Tree.File name="coral-agent.toml" />
    </Tree.Folder>
  </Tree.Folder>
</Tree>

Adding just `agent1` could be done with:

```toml theme={null}
[registry]
local_agents = ["/path/to/agents/agent1"]
```

Adding all agents (`agent1`, `agent2` and `agent3`) could be done with:

```toml theme={null}
[registry]
local_agents = ["/path/to/agents/*"]
```

Sometimes, you may want to use multiple wildcard paths, for example if you keep your agents in folders with versions:

<Tree>
  <Tree.Folder name="/path/to/agents" defaultOpen>
    <Tree.Folder name="agent1" defaultOpen>
      <Tree.Folder name="1.0.0" defaultOpen>
        <Tree.File name="coral-agent.toml" />
      </Tree.Folder>

      <Tree.Folder name="1.0.1" defaultOpen>
        <Tree.File name="coral-agent.toml" />
      </Tree.Folder>
    </Tree.Folder>

    <Tree.Folder name="agent2" defaultOpen>
      <Tree.Folder name="1.0.0" defaultOpen>
        <Tree.File name="coral-agent.toml" />
      </Tree.Folder>

      <Tree.Folder name="1.0.1" defaultOpen>
        <Tree.File name="coral-agent.toml" />
      </Tree.Folder>
    </Tree.Folder>
  </Tree.Folder>
</Tree>

This can be facilitated with:

```toml theme={null}
[registry]
local_agents = ["/path/to/agents/*/*"]
```

<Warning>
  The wildcard `*` is not permitted as part of a path segment, only as a full path segment.

  <br />

  <Icon icon="check" color="green" size={24} /> Good

  ```toml theme={null}
  [registry]
  local_agents = ["/path/to/agents/*/*"]
  ```

  <Icon icon="x" color="red" size={24} /> Bad

  ```toml theme={null}
  [registry]
  local_agents = ["/path/to/agents*"]
  ```
</Warning>

# Include Coral home agents

<Badge color="blue">default</Badge> `true` <br />

<ServerConfigSingle table="registry" config="includeCoralHomeAgents" example="false" />

If this is set to `true`, the following directories will be added to [local agents](#local-agents):

* `${HOME}/.coral/agents/*/*`
* `${HOME}/.coral/agents/*`
* `${HOME}/.coral/agents/locallinked/*/*`

It is recommended to use this configuration option instead of manually adding the above paths to [local agents](#local-agents).

# Watch local agents

<Badge color="blue">default</Badge> `true` <br />

<ServerConfigSingle table="registry" config="watchLocalAgents" example="false" />

If this is set to true, modifications to local agents will be automatically detected and reloaded.

Detected changes include:

* Deletion of an agent
* Modification of an agent
* New agents (for example, those that match a path that uses a wildcard)

<Warning>
  It is possible due to a JVM limitation that changes to agents, especially those made programmatically, are not
  detected via this watch option. Consider setting [local agent rescan timer](#local-agent-rescan-timer) to a
  non-zero value.
</Warning>

# Local agent rescan timer

<ServerConfigSingle table="registry" config="localAgentRescanTimer" example="&#x22;30s&#x22;" />

See [here](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/-companion/parse.html) for more information on the format.

If this is set to a non-zero value, the Coral server will periodically rescan the local agent registry for changes.

Scanning the filesystem can be expensive, especially if the [local agents](#local-agents) list contains many paths with
wildcards. Consider setting this to a high value or disabling it entirely.

# Include debug agents

<Badge color="blue">default</Badge> `true` <br />

<ServerConfigSingle table="registry" config="includeDebugAgents" example="false" />

If this is true, the Coral server [debug agents](/guides/debugging#built-in-debug-agents) will be available in the
server's local agent registry source.

# Include marketplace agents

<Badge color="blue">default</Badge> `true` <br />

<ServerConfigSingle table="registry" config="includeMarketplaceAgents" example="false" />

If this is true, the Coral server will be able to directly use agents from the [Marketplace](/concepts/marketplace).
