Getting started
Three steps from a fresh machine to a running portal. There is no separate daemon-start step: commands start it automatically when needed.
Step 1: Requirements
| Component | Required? | Why |
|---|---|---|
| Windows 10 1809+ x64 or Ubuntu Desktop 22.04 / 24.04 x86-64 |
Yes | agent sessions run in ConPTY or Linux PTYs |
| Agent CLI on PATH | Yes | claude, codex or opencode — the tool that produces responses. Without it, the portal opens but spawn will fail. |
| Git 2.5+ | For fan-out | each agent needs a separate git worktree |
Step 2: Install
Download for Windows. Double-click the agentdc-windows-amd64.exe file you downloaded.
- If SmartScreen appears, click More info → Run anyway — the binary is not code-signed.
- The binary installs itself into
%LOCALAPPDATA%\Programs\AgentDC\agentdc.exe, creating AgentDC shortcut on your Desktop and an App entry in Start/Search. - A single terminal opens and remains visible while the app runs. Close it or press
Ctrl+Cto stop AgentDC.
After installation, use Desktop or Start to run the app from its canonical path. You can remove the downloaded installer once AgentDC has opened successfully.
Linux x64: download the binary, make it executable, then launch it:
$ curl -fL https://agentdc.nqdiepoii.com/download/linux-amd64/agentdc-linux-amd64 -o agentdc chmod +x agentdc ./agentdc
On first launch it installs itself into ~/.local/bin/agentdc, writes a desktop entry under
${XDG_DATA_HOME:-~/.local/share}/applications, and opens a visible terminal and browser portal. Existing agent CLIs on PATH are reused; new machines can install Claude Code, Codex or OpenCode from Agents.
Zalo works on Windows and Linux x64. Linux server/systemd, ARM and package-manager installation are not supported. The verified scope is Ubuntu Desktop 22.04 / 24.04 x86-64.
PowerShell is an alternative for automated or unattended installation. Open PowerShell (the Windows version is sufficient) and paste:
# install or update $ irm https://…/install.ps1 | iex
The script installs the app at its canonical path, creates Desktop and Start/Search shortcuts, and opens a visible terminal. Running it again replaces code only; the current daemon and live sessions are preserved.
Data lives separately in AGENTDC_HOME and is never included in the download package. Installation and updates do not copy, delete or reset it.
# install the app and shortcuts without launching AgentDC $ & ([scriptblock]::Create((irm https://…/install.ps1))) -NoStart
Step 3: Check your machine
AgentDC installation does not change PATH. Documentation examples use the alias
agentdc; set it once in the current PowerShell session before running commands:
$ $AgentDC = "$env:LOCALAPPDATA\Programs\AgentDC\agentdc.exe" $ Set-Alias -Name agentdc -Value $AgentDC $ agentdc doctor [ok] windows build 26200 >= 17763 [ok] agent binary claude [ok] git 2.51.0 [ok] config C:\Users\you\AppData\Local\agentdc [--] daemon not running (the CLI starts one on demand)
doctor checks 9 components: Windows build, agent CLI, git, config, write access, knowledge base, daemon, home claim and database. If one check FAIL , later checks
still run — except config, because all subsequent checks require configuration.
doctor does more than inspect: it creates the configuration folder, token and database if missing. On a fresh machine, it is the fastest way to prepare everything.
Settings
Two key environment variables
Both are optional:
AGENTDC_HOME |
config, database, token and logs. Defaults to %LOCALAPPDATA%\agentdc on Windows or ~/.config/agentdc on Linux |
AGENTDC_PORT | default 8770 |
One daemon per AGENTDC_HOME. To run another daemon, change AGENTDC_HOME, not just the port. Changing only the port is rejected with an explanation.
AGENTDC_HOME at a OneDrive/Dropbox-synced folder. An open SQLite database can be corrupted there.
Three logs, three locations
daemon.log | daemon routing, background work and errors |
logs\<sid>.log |
a conversation's terminal transcript — contains ANSI color codes; do not open it in Notepad |
update-apply.log |
the most recent self-update; inspect this if the app does not restart after an update |
All paths are relative to <AGENTDC_HOME>.
Portal
$ agentdc portal portal: http://127.0.0.1:8770/?k=…
This command starts the daemon if needed, creates a single-use key and opens the portal in your browser.
agentdc app is the equivalent CLI command to open the app with a visible terminal. Desktop and Start/Search shortcuts and a double-clicked download run AgentDC without arguments.
http://127.0.0.1:8770/ directly returns 401. This is expected.
The portal requires a session cookie, which agentdc portal creates. Sessions are held in memory, so restarting the daemon invalidates them: run
agentdc portal.On a dedicated single-user machine, set
AGENTDC_PORTAL_OPEN=1 before starting the daemon to remove the cookie requirement. Origin checks, route allowlists and header checks remain enabled.
Projects and conversations
- Sidebar → + Add project → choose a working folder.
- Sidebar → + Add conversation → choose a project and agent.
A project is the working context: agents start with that project's directory as their cwd. Long-term memory belongs to the project, not the conversation. Conversations in the same project share one pillar tree.
You can also use the CLI:
# add a project and start an agent session $ agentdc project add myapp C:\code\myapp $ agentdc spawn myapp # send a prompt and stream output until the agent is idle $ agentdc send <sid> "read the README and explain the project"
Safety mode
The new-conversation dialog includes a Safety modeswitch: the agent runs in normal mode, without permission-bypass flags. The daemon adds a system prompt defining boundaries from the start. Enable it for conversations that interact with external users.
Persistent sessions
Agents run in ConPTY sessions managed by the daemon , not by your terminal. Closing a CLI terminal used forattach, closing the portal tab or signing out does not end the session or its transcript. The terminal opened by an AgentDC shortcut is different: it hosts the daemon, so closing it or pressing Ctrl+C stops AgentDC and its live sessions.
# attach to a live session; press Ctrl-] to detach $ agentdc attach <sid> # or read the transcript $ agentdc logs <sid>
Fan-out
One prompt, N agents, N independent git worktrees. Compare results side by side and choose which one to keep.
$ agentdc fanout myapp --n 3 "add parser tests" run 7f3a: 3 worktrees branched from commit 1c9de2f 3/3 agents completed # compare the three attempts $ agentdc fanout diff 7f3a # inspect the full patch for attempt 2 $ agentdc fanout diff 7f3a 2 # clean up worktrees, branches and records $ agentdc fanout clean 7f3a
--n accepts 2 to 8. The project must be a git repository with a commit . These two conditions are validated by the client with separate error messages.
fanout diff counts untracked files. Agents often
do not commit, so reading only git diff would report zero and make the comparison look empty.
CLI reference
The portal is the main interface; the CLI is for scripting and recovery when the portal is unavailable. Every command supports --help.
The commands below use a PowerShell session alias, because AgentDC is not added to
PATH:
$ $AgentDC = "$env:LOCALAPPDATA\Programs\AgentDC\agentdc.exe" $ Set-Alias -Name agentdc -Value $AgentDC
The alias exists only in the current PowerShell window; all agentdc …
examples below call the executable at its canonical path.
| attach | attach this terminal to a live session (exit: Ctrl-]) |
| app | open AgentDC with a visible app terminal; closing it stops the daemon |
| completion | generate shell completions |
| daemon | run the daemon in the foreground |
| doctor | inspect AgentDC's environment and dependencies |
| fanout | spawn N agents with the same prompt, each in its own git worktree |
| kb | Knowledge Base: propose and read knowledge pages |
| licenses | print third-party license notices embedded in the binary |
| logs | read a session transcript |
| ls | list sessions |
| portal | open the portal in your browser |
| project | manage projects |
| rm | stop a session and remove its record (the transcript is preserved) |
| send | send a prompt and stream output until the agent is idle |
| spawn | spawn an agent session in a project |
| status | daemon status (without auto-start the daemon) |
| stop | stop a session (gracefully first, then kill) |
| view | open a file in the portal viewer |
status, doctor, --version and
completion will auto-start the daemon if needed. status intentionally do not: a status command that starts the daemon cannot tell you whether it was already running.
Machine-readable output
$ agentdc ls --json | ConvertFrom-Json $ agentdc status --json
ls, status, fanout list and
fanout diff accept --json. An empty list returns
[], never null.
MCP for agents
One AgentDC endpoint for compatible MCP clients. Configurations for Codex, Claude Code and OpenCode are shown below; new clients use the same contract.
AgentDC must be running in its terminal for agents to connect to
http://127.0.0.1:8770/mcp. MCP shares the daemon, projects, sessions and memory with the portal. It does not open another app or send an initial prompt into a session.
%LOCALAPPDATA%\agentdc\token, or the
<AGENTDC_HOME>\token if you changed the data directory. This is a local administrator credential: do not commit or share it, and connect only over
127.0.0.1.
Codex
Add this server to ~/.codex/config.toml, then restart Codex:
[mcp_servers.agentdc]
url = "http://127.0.0.1:8770/mcp"
http_headers = { Authorization = "Bearer <TOKEN>" }
tool_timeout_sec = 1200
Claude Code
Register at user scope to make AgentDC available in every project:
$ claude mcp add --transport http --scope user agentdc http://127.0.0.1:8770/mcp --header "Authorization: Bearer <TOKEN>" $ claude mcp get agentdc
OpenCode 1.x
Add a remote server to your active OpenCode configuration, then restart OpenCode:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"agentdc": {
"type": "remote",
"url": "http://127.0.0.1:8770/mcp",
"enabled": true,
"oauth": false,
"headers": {
"Authorization": "Bearer <TOKEN>"
}
}
}
}
Tool
status | read daemon status, the current version and available updates |
list_agents | discover agent profiles and their installation, enablement and resume state |
list_projects | list projects managed by AgentDC |
list_sessions | list sessions, optionally filtered by project |
spawn_session | create a session using a profile ID returned by list_agents |
prompt_session | send a prompt and receive cleaned UTF-8 output |
stop_session | stop one specific session at the user's request |
search_memory | search long-term memory within one project |
record_memory | record a decision in an existing memory branch |
update_status | read download and installation progress for an update |
The three listing tools accept cursor/limit and return
next_cursor; search_memory uses
before/next_before. All wire output, including text fallbacks for older MCP clients, is capped at 256 KiB and reports
truncated; more projects, sessions or agents will not overflow the client's context.
MCP exposes only the controlled operations above. Project deletion, history deletion, daemon shutdown and update application still require direct user action in AgentDC.
Automatic updates
The daemon checks for updates on startup, then every minute. A new release shows an update indicator in the portal. Click it to see release notes, download percentage and bytes transferred, verification of sha256 and installation status.
The AgentDC terminal continuously reports version checks, release notes, download milestones, verification, replacement, errors and when the new binary is ready.
Updates replace application code only. AgentDC downloads the complete new release binary, rather than appending data to the existing binary. The running file is temporarily renamed to agentdc.exe.old, and the new file takes the name
agentdc.exe. The current daemon keeps running from .old, preserving its agent sessions. The next launch uses the new binary and removes .old.
The database, configuration, history and all of AGENTDC_HOME stay in place. They are not copied with the binary and are never included in downloads. Only program-file disk usage temporarily nearly doubles between installation and the next launch.
Ctrl+C stops AgentDC. During an update, wait until the terminal confirms installation before closing it.
.old is still used by the current daemon.
Activate the new version
Once the terminal reports installation complete, keep using your current sessions. When convenient, close the terminal and open AgentDC from its shortcut. You can also launch the canonical app from PowerShell:
$ & "$env:LOCALAPPDATA\Programs\AgentDC\agentdc.exe"
Update details are recorded in <AGENTDC_HOME>\update-apply.log; startup errors and runtime status are in <AGENTDC_HOME>\daemon.log. By default,
<AGENTDC_HOME> is %LOCALAPPDATA%\agentdc.
Disable update checks
AGENTDC_NO_UPDATE_CHECK=1 |
disables them completely. Only the exact value 1 |
AGENTDC_UPDATE_URL |
points to another mirror |
A go build self-built binary has no update channel and makes no update network requests. No update indicator is shown.
Troubleshooting
Opening 127.0.0.1:8770 returns 401 |
has not agentdc portal, or the portal session expired |
A new route returns 404 but /status 200 |
an older executable is still running in the daemon |
spawn fails |
Claude Code, Codex or OpenCode is missing from PATH. Run agentdc doctor |
fanout is rejected |
the project is not a git repository or has no commits |
A session shows orphaned |
the previous daemon died without cleanup; the record exists but the process does not |
| The app does not open after an update | relaunch AgentDC using the command under Activate the new version; inspect <AGENTDC_HOME>\update-apply.log
and daemon.log |
| The update cannot write a file | check antivirus and write permissions for %LOCALAPPDATA%\Programs\AgentDC; double-clicking a new download can repair the canonical installation |
agentdc doctor answers most of these questions. Run it before searching the logs.
What's new
Loading release history…