Skip to content

Agents

Tyr distinguishes between daemons (the tyrd process itself) and discovered agents (AI processes observed by a daemon).

Daemons

A daemon is a single tyrd instance running on a host. It has:

FieldExampleNotes
agent_id4f27e3c1-ab89-...Assigned by server on first enrollment
namealice-laptopHuman label passed via --name
client_certPEM blobIssued by internal CA during enrollment
last_seentimestampHeartbeat every 30s (configurable)
kernel6.8.0-51-genericReported on connect
capabilities{lsm, tls_capture, enforce}Feature flags supported by this agent

Daemons authenticate over mTLS on the gRPC channel. A daemon whose cert is revoked can no longer stream.

Discovered agents

When tyrd sees an AI process on its host (by fingerprint — binary path, cmdline, env markers), it registers a discovered agent:

FieldExample
id (uuid)a1b2c3d4-...
daemon_agent_idparent daemon
agent_typecursor / copilot / claude-code / autogen / …
display_nameoverrideable in the UI
pid (live)active PID if currently running
process_signaturehash of binary + cmdline pattern
first_seentimestamp

The goal: you don’t enroll “Cursor” — Tyr finds it and gives you a handle to attach policies to.

Unregistered-agent policy

When tyrd sees a new process that doesn’t match any known agent_type, what should happen? Configured by unregistered_agents in tyrd.yaml:

ValueBehavior
audit(default) Let it run, record events, flag for review. Safe default.
quarantineApply a strict base policy until an admin approves or assigns an overlay.
denyHard block execution entirely — only classified agents can run.

See Configuration for the full list of fields.

Heartbeats and reconnects

  • Heartbeat interval: 30 s default (heartbeat_interval_s in config).
  • A daemon last_seen > 90s ago is shown as stale in the UI.
  • Re-connect is automatic with exponential backoff.
  • During a disconnect, events are buffered to disk (buffer_size_mb, default 500 MB) and replayed on reconnect.

Listing and filtering

Terminal window
tyr agent list # all daemons
tyr agent list --include-archived # include soft-deleted
# Future — today via UI
tyr discovered-agent list # all AI processes observed

Deletion

  • Deleting a daemon removes its certificate and all its discovered-agent records.
  • Events from that daemon remain for retention purposes.
  • A daemon on the wire when its record is deleted will be rejected on next heartbeat and can re-enroll with a fresh token.

→ Next: Policies · AI detection