https://github.com/brandonkramer/agentd
Domain helpers for user-scoped agent daemons: home layout, run environment, harness registry, and managed-agent reconciliation.
https://github.com/brandonkramer/agentd
agents daemon go golang harness library managed-agents reconciliation
Last synced: 17 days ago
JSON representation
Domain helpers for user-scoped agent daemons: home layout, run environment, harness registry, and managed-agent reconciliation.
- Host: GitHub
- URL: https://github.com/brandonkramer/agentd
- Owner: brandonkramer
- License: mit
- Created: 2026-06-01T22:27:04.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-01T23:14:42.000Z (about 1 month ago)
- Last Synced: 2026-06-02T01:12:27.850Z (about 1 month ago)
- Topics: agents, daemon, go, golang, harness, library, managed-agents, reconciliation
- Language: Go
- Size: 64.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# agentd
Helpers for local-scoped agent daemons.
## Install
```bash
go get github.com/brandonkramer/agentd
```
## Usage
Resolve the daemon home (from `AGENTD_HOME` or `~/.agentd`):
```go
home, err := agentd.Agentd.Resolve()
if err != nil {
return err
}
```
Mark child processes with run metadata:
```go
env := agentd.ChildEnv(home, runID, map[string]string{
"WORK_DIR": workDir,
})
```
Prepare a headless run (built-in harnesses: `generic-command`, `claude-code`):
```go
h, err := harness.Get("generic-command")
if err != nil {
return err
}
prep, err := h.Prepare(&harness.WorkInput{
RunDir: runDir,
WorkDir: workDir,
CommandTemplate: "claude -p < {prompt}",
PromptContent: prompt,
})
if err != nil {
return err
}
// prep.Command, prep.ExecPath, prep.ExecArgs, prep.PromptPath
```
Load managed agents from `~/agents.toml` and project `.agentd/agents.toml`:
```go
managed.SetDriverValidator(func(name string) error {
_, err := harness.Get(name)
return err
})
specs, err := managed.LoadMergedSpecs(home, projectRoot, managed.DefaultStore)
if err != nil {
return err
}
mgr, err := managed.NewReconcilerManager(home, projectRoot, engine, managed.DefaultStore)
if err != nil {
return err
}
```
## Development
```bash
make check
```