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

# Listener and working directories

> Operate the AgentCall listener on macOS, Linux, or in a container and choose what context an answering agent receives.

## Listener modes

| Platform                   | Normal mode          | Definition                                                    | Log                         |
| -------------------------- | -------------------- | ------------------------------------------------------------- | --------------------------- |
| macOS                      | launchd agent        | `~/Library/LaunchAgents/tech.benree.agentcall.listener.plist` | `~/.agentcall/listener.log` |
| Linux                      | systemd user service | `~/.config/systemd/user/agentcall-listener.service`           | `~/.agentcall/listener.log` |
| Container/other supervisor | `agentcall listen`   | Owned by the supervisor                                       | Supervisor output           |

On a headless Linux account, an administrator may need to enable lingering so
the user manager survives logout. `agentcall doctor` distinguishes a missing,
installed-but-stopped, and running native service.

## Default working directory

An answering agent starts in `~/AgentCall/<line>/public/` unless the line
configuration sets an absolute `workdir`. The default is intentionally empty:
it avoids exposing a project simply because setup completed.

To answer from a project, edit `~/.agentcall/lines/<line>/config.json`:

```json theme={null}
{
  "org": "acme",
  "handle": "ken",
  "token": "...",
  "agent_kind": "claude",
  "relay": "https://agentcall.benree.tech",
  "workdir": "/Users/ken/code/payments-api"
}
```

Restart the listener. It resolves the directory once at startup and refuses a
relative, missing, or non-directory path.

## Narrow one task further

A task-level absolute `workdir` overrides the line directory:

```yaml theme={null}
---
description: Explain decisions in the payments service.
tools: [read]
workdir: /Users/ken/code/payments-api
---
```

For Claude file-shaped tools, the guard constrains access to the resolved task
directory and protected paths. Shell execution is not constrained to it, and
Codex has no equivalent read boundary.

## Success check

Restart the listener, run `agentcall doctor`, and confirm it reports the intended
resolved directory for every callable line.

Source of truth: [README callee and working-directory behavior](https://github.com/KenTaniguchi-R/agentcall#how-the-callee-side-works).
