How gu1p/tak works
Tak is a workspace task orchestrator with a separate local daemon that owns run scheduling and execution. The principal workflow loads and resolves workspace tasks, submits a run to the daemon, executes local or remotely placed work, and exposes persisted status and outputs. The README documents additional Makefile, graph-viewing, remote-management, and update capabilities. Source excerpts are limited, so edges reflect documented workflow or directly visible behavior; uncertain internal wiring is omitted.
Main entry points: main.rs Tak CLI · attempt_coordinator.rs Attempt coordinator · local_daemon.rs Daemon protocol client · resolve.rs Run resolution
Components 26
Authoring and planning
- Workspace loader
crates/tak-loader/src/loader/mod.rs - Make integration
crates/tak-make/src/application/run_make.rs - Task model and planner
crates/tak-core/src/planner.rs
CLI and client
- Tak CLI
crates/tak/src/main.rs - Run resolution
crates/tak/src/cli/daemon_run/resolve.rs - Run submission
crates/tak/src/cli/daemon_run/submission.rs - Daemon protocol client
crates/tak-proto/src/local_daemon.rs - Run history and outputs
crates/tak/src/cli/runs_cli.rs - Run dashboard
crates/tak/src/cli/run_dashboard.rs
Daemon coordination
- Local takd
crates/takd/src/agent.rs - Attempt coordinator
crates/takd/src/daemon/attempt_coordinator.rs - Resource leases
crates/takd/src/daemon/lease/manager_public_methods.rs - Peer placement
crates/takd/src/daemon/peer_manager.rs - Persisted run state
crates/takd/src/daemon/local_attempt_transport/durable_state.rs
Execution
- Worker runtime
crates/tak-exec/src/worker_runtime.rs - Step execution
crates/tak-exec/src/step_execution.rs - Container runtime
crates/tak-exec/src/container_runtime/mod.rs - Remote worker
crates/tak-exec/src/remote_worker.rs - Container engine
crates/takd/src/daemon/transport/container_engine_selection.rs
Operations
- Remote commands
crates/tak/src/cli/remote_status/mod.rs - Graph viewer
crates/tak/src/web/server.rs - Self-update
crates/tak-update/src/lib.rs
Other components
- Engineer
- TASKS.py / Makefile
- Remote agents
- Docker / Podman
Connections 31
- Engineer → Tak CLI: invokes
- TASKS.py / Makefile → Workspace loader: loads definitions
- TASKS.py / Makefile → Make integration: provides Makefile
- Tak CLI → Workspace loader: loads workspace
- Tak CLI → Make integration: submits goal
- Workspace loader → Task model and planner: produces task model
- Tak CLI → Run resolution: resolves targets
- Run resolution → Task model and planner: validates graph
- Run resolution → Run submission: passes resolved run
- Run submission → Daemon protocol client: encodes request
- Daemon protocol client → Local takd: sends run request
- Local takd → Attempt coordinator: coordinates attempts
- Attempt coordinator → Resource leases: acquires resources
- Attempt coordinator → Peer placement: selects placement
- Attempt coordinator → Persisted run state: persists run state
- Attempt coordinator → Worker runtime: dispatches local work
- Worker runtime → Step execution: runs steps
- Step execution → Container runtime: uses container runtime
- Container runtime → Container engine: selects engine
- Container engine → Docker / Podman: probes engine
- Attempt coordinator → Remote worker: dispatches remote work
- Remote worker → Remote agents: executes remotely
- Daemon protocol client → Run history and outputs: retrieves run data
- Run history and outputs → Persisted run state: reads persisted state
- Run history and outputs → Run dashboard: attaches events
- Engineer → Remote commands: manages remotes
- Remote commands → Daemon protocol client: queries daemon
- Engineer → Graph viewer: opens graph UI
- Tak CLI → Graph viewer: serves task graph
- Engineer → Self-update: requests update
- Tak CLI → Self-update: runs update flow