Skip to content

Ops Dashboard

Reference

The public API is create_app, build_config, and Config, exported from attune.ops. The runner and read-side helpers are imported from their submodules.

attune.ops

Symbol Purpose
build_config(project_root=None, *, host="127.0.0.1", port=8765, allow_run=False, specs_roots=None, trusted_hosts=None, runs_retention_days=30, specs_candidates_enabled=False) -> Config Build the dashboard config.
create_app(config, *, runner=None) -> FastAPI Build the FastAPI app (sync).
Config Settings dataclass. Properties: bulletin_dir, memory_dir, runs_dir, sessions_dir, telemetry_path. allow_run defaults False.

attune.ops.runner

Symbol Purpose
RunnerService(*, history_limit=20, command_builder=None, executor=None, persistence_dir=None, project_root=None, bulletin=None, actor_id=None, actor_kind="dashboard") Workflow runner.
RunnerService.start(workflow, *, path=None) -> Run Async. Launch a run (one at a time).
RunnerService.recent / .get / .get_or_load / .handle_stdout_line Sync history/lookup helpers.
RunnerService.current / .persistence_dir Properties.
Run.subscribe() -> AsyncIterator Async. SSE event feed.
Run.append_line / .mark_done / .to_dict / .to_record Sync run helpers.
Run.duration_seconds / .is_terminal Properties.
RunnerBusyError(current_run_id) Raised on a concurrent start().
prune_old_runs(...) / echo_command_builder Retention + a default command builder.

Read-side submodules

Module Key public API
ops.data read_telemetry_summary, list_workflows, list_features, home_kpis, list_recent_sessions, env_health, family_versions, workflow_default_scope, sparkline_points, …
ops.anthropic_cost fetch_summary(*, refresh=False) -> tuple[CostSummary \| None, CostFetchError \| None]; CostSummary, CostFetchError, CostFetchErrorKind.
ops.help_data coverage_gaps, search, list_features, get_template.
ops.spec_lifecycle derive_lifecycle(spec, *, now=None) -> str (only public function) + STALE_THRESHOLD_DAYS.
ops.interaction_counters EVENTS = ('pill_click', 'rec_card_click', 'scope_picker_change').
ops.cli add_subparser, cmd_ops, main.

CLI flags (attune ops / python -m attune.ops)

Flag Effect
--host / --port Bind address (default 127.0.0.1:8765).
--project-root Project to serve.
--no-browser Don't auto-open a browser.
--read-only Disable runs (allow_run=False); runs are enabled otherwise.
--specs-root DIR Spec directory (repeatable).
--trusted-host Allow a remote host.
--runs-retention-days History retention (default 30).
--specs-candidates / --no-specs-candidates Toggle spec candidate display.