overcode 0.5.6__tar.gz → 0.5.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {overcode-0.5.6 → overcode-0.5.8}/MANIFEST.in +1 -0
- {overcode-0.5.6/src/overcode.egg-info → overcode-0.5.8}/PKG-INFO +3 -1
- {overcode-0.5.6 → overcode-0.5.8}/README.md +2 -0
- overcode-0.5.8/docs/README.md +23 -0
- overcode-0.5.8/docs/advanced-features.md +640 -0
- overcode-0.5.8/docs/architecture.md +461 -0
- overcode-0.5.8/docs/backends.md +1795 -0
- overcode-0.5.8/docs/claude-session-files.md +125 -0
- overcode-0.5.8/docs/cli-reference.md +759 -0
- overcode-0.5.8/docs/configuration.md +731 -0
- overcode-0.5.8/docs/design/483-484/00_overview.md +56 -0
- overcode-0.5.8/docs/design/483-484/01_usage_log.md +183 -0
- overcode-0.5.8/docs/design/483-484/02_learning_journey.md +205 -0
- overcode-0.5.8/docs/design/483-484/03_overagent.md +181 -0
- overcode-0.5.8/docs/design/483-484/04_phasing_and_questions.md +74 -0
- overcode-0.5.8/docs/design/README.md +79 -0
- overcode-0.5.8/docs/design/acp-agent-integration-analysis.md +475 -0
- overcode-0.5.8/docs/design/agent-agnostic-backends-opencode.md +427 -0
- overcode-0.5.8/docs/design/agent-backend-hermes.md +207 -0
- overcode-0.5.8/docs/design/agent-backends-codex-grok.md +1288 -0
- overcode-0.5.8/docs/design/background-shell-classification.md +103 -0
- overcode-0.5.8/docs/design/bakeoffs/README.md +28 -0
- overcode-0.5.8/docs/design/bakeoffs/SYNTHESIS.md +483 -0
- overcode-0.5.8/docs/design/bakeoffs/candidates.md +271 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-bernstein.md +331 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-bobbit.md +407 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-ccmanager.md +348 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-claude-squad.md +300 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-cmux.md +316 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-composio.md +289 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-dmux.md +185 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-gastown.md +421 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-kagan.md +385 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-orca.md +291 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-superset.md +318 -0
- overcode-0.5.8/docs/design/bakeoffs/overcode-vs-vibe-kanban.md +408 -0
- overcode-0.5.8/docs/design/bakeoffs/zellij-vs-tmux.md +333 -0
- overcode-0.5.8/docs/design/e2e-devcontainer-testing.md +308 -0
- overcode-0.5.8/docs/design/model-alias-resolution.md +214 -0
- overcode-0.5.8/docs/design/opencode-stats-reader-performance.md +280 -0
- overcode-0.5.8/docs/design/scaling-audit-2026-09-22.md +891 -0
- overcode-0.5.8/docs/getting-started.md +191 -0
- overcode-0.5.8/docs/release-notes-0.3.0.md +60 -0
- overcode-0.5.8/docs/release-notes-0.4.2.md +39 -0
- overcode-0.5.8/docs/release-notes-0.5.1.md +48 -0
- overcode-0.5.8/docs/release-notes-0.5.2.md +7 -0
- overcode-0.5.8/docs/release-notes-0.5.3.md +85 -0
- overcode-0.5.8/docs/release-notes-0.5.4.md +40 -0
- overcode-0.5.8/docs/release-notes-0.5.5.md +8 -0
- overcode-0.5.8/docs/release-notes-0.5.6.md +6 -0
- overcode-0.5.8/docs/release-notes-0.5.7.md +5 -0
- overcode-0.5.8/docs/release-notes-0.5.8.md +8 -0
- overcode-0.5.8/docs/skill-profiles.md +117 -0
- overcode-0.5.8/docs/tui-guide.md +329 -0
- overcode-0.5.8/docs/tui-refactoring-plan.md +353 -0
- overcode-0.5.8/docs/ux-performance-analysis-2026-03-09.md +207 -0
- overcode-0.5.8/docs/wrappers.md +179 -0
- {overcode-0.5.6 → overcode-0.5.8}/pyproject.toml +3 -1
- overcode-0.5.8/setup.py +32 -0
- overcode-0.5.8/src/overcode/activity_log.py +526 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/__init__.py +6 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/base.py +7 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/claude_code.py +13 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/codex_stats.py +13 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/grok_stats.py +12 -6
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/hermes_stats.py +21 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/opencode.py +21 -4
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/opencode2_stats.py +54 -16
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/opencode_stats.py +153 -12
- overcode-0.5.8/src/overcode/backends/overagent.py +53 -0
- overcode-0.5.8/src/overcode/backends/shell.py +286 -0
- overcode-0.5.8/src/overcode/bundled_skills.py +155 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/__init__.py +5 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/_shared.py +31 -1
- overcode-0.5.8/src/overcode/cli/activity.py +164 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/agent.py +63 -6
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/config.py +0 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/doctor.py +11 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/jobs.py +3 -0
- overcode-0.5.8/src/overcode/cli/keys.py +178 -0
- overcode-0.5.8/src/overcode/cli/lifecycle.py +168 -0
- overcode-0.5.8/src/overcode/cli/skill_profiles.py +299 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/split.py +24 -1
- overcode-0.5.8/src/overcode/cli/view.py +243 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/command_palette.py +56 -4
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/config.py +1 -0
- overcode-0.5.8/src/overcode/data/keymaps/default.yaml +10 -0
- overcode-0.5.8/src/overcode/data/keymaps/vscode.yaml +83 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/doctor.py +6 -2
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/hermes_plugin/__init__.py +4 -2
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/history_reader.py +33 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/hook_handler.py +381 -30
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/hook_status_detector.py +142 -1
- overcode-0.5.8/src/overcode/journey.py +654 -0
- overcode-0.5.8/src/overcode/keymap.py +672 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/launcher.py +109 -3
- overcode-0.5.8/src/overcode/lifecycle.py +494 -0
- overcode-0.5.8/src/overcode/mentor.py +213 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/monitor_daemon.py +50 -14
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/monitor_daemon_state.py +2 -0
- overcode-0.5.8/src/overcode/overagent.py +305 -0
- overcode-0.5.8/src/overcode/prompt_lab.py +182 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/session_manager.py +224 -5
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/settings.py +5 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/sister_poller.py +2 -0
- overcode-0.5.8/src/overcode/skill_library.py +593 -0
- overcode-0.5.8/src/overcode/spawn.py +72 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/ssh_provisioner.py +11 -5
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/stats_reader.py +70 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/status_constants.py +29 -2
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/status_detector_factory.py +31 -4
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/status_patterns.py +24 -3
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/summarizer_client.py +19 -49
- overcode-0.5.8/src/overcode/summarizer_prompts.py +189 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/summary_columns.py +262 -8
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/supervisor_daemon.py +2 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/supervisor_daemon_core.py +7 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tmux_manager.py +20 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tmux_utils.py +6 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/transcript_index.py +17 -2
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui.py +309 -46
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui.tcss +23 -168
- overcode-0.5.8/src/overcode/tui_actions/activity.py +232 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_actions/daemon.py +58 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_actions/input.py +10 -4
- overcode-0.5.8/src/overcode/tui_actions/mentor.py +150 -0
- overcode-0.5.8/src/overcode/tui_actions/overagent.py +152 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_actions/session.py +74 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_actions/view.py +34 -3
- overcode-0.5.8/src/overcode/tui_actions/view_control.py +303 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_helpers.py +4 -4
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_logic.py +46 -0
- overcode-0.5.8/src/overcode/tui_theme.py +260 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/__init__.py +6 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/agent_select_modal.py +19 -17
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/command_bar.py +32 -6
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/command_palette.py +56 -74
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/daemon_status_bar.py +11 -2
- overcode-0.5.8/src/overcode/tui_widgets/dialog_style.py +194 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/fullscreen_preview.py +4 -0
- overcode-0.5.8/src/overcode/tui_widgets/help_overlay.py +450 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/instruction_history_modal.py +26 -28
- overcode-0.5.8/src/overcode/tui_widgets/journey_panel.py +218 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/modal_base.py +51 -6
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/new_agent_defaults_modal.py +45 -26
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/new_agent_modal.py +70 -53
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/passthru_config_modal.py +27 -35
- overcode-0.5.8/src/overcode/tui_widgets/preview_pane.py +259 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/rename_agent_modal.py +29 -35
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/session_summary.py +69 -3
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/sister_selection_modal.py +37 -42
- overcode-0.5.8/src/overcode/tui_widgets/skills_modal.py +318 -0
- overcode-0.5.8/src/overcode/tui_widgets/summary_config_modal.py +451 -0
- overcode-0.5.8/src/overcode/tui_widgets/summary_prompt_lab.py +393 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/tmux_config_modal.py +19 -22
- overcode-0.5.8/src/overcode/usage_analytics.py +437 -0
- overcode-0.5.8/src/overcode/view_control.py +205 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web_api.py +2 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web_control_api.py +48 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web_server.py +6 -0
- {overcode-0.5.6 → overcode-0.5.8/src/overcode.egg-info}/PKG-INFO +3 -1
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode.egg-info/SOURCES.txt +85 -0
- overcode-0.5.6/src/overcode/bundled_skills.py +0 -287
- overcode-0.5.6/src/overcode/tui_widgets/help_overlay.py +0 -241
- overcode-0.5.6/src/overcode/tui_widgets/preview_pane.py +0 -156
- overcode-0.5.6/src/overcode/tui_widgets/summary_config_modal.py +0 -357
- {overcode-0.5.6 → overcode-0.5.8}/LICENSE +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/setup.cfg +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/__init__.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/agent_scanner.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/codex.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/grok.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/hermes.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/opencode2.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/opencode2_patterns.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/backends/opencode2_plugin_install.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/claude_config.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/claude_pid.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/__main__.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/budget.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/daemon.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/focal.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/hooks.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/models.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/monitoring.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/parallelism.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/perms.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/sister.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/skills.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/tags.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/cli/wrappers.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/daemon_claude_skill.md +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/daemon_logging.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/daemon_utils.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/data/model_metadata.json +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/data_export.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/dependency_check.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/duration.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/entrypoint.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/exceptions.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/follow_mode.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/hermes_plugin/plugin.yaml +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/implementations.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/interfaces.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/job_launcher.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/job_manager.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/logging_config.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/mocks.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/model_metadata.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/monitor_daemon_core.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/notifier.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/opencode_plugin/overcode-telemetry-v2/index.js +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/opencode_plugin/overcode-telemetry-v2/overcode-telemetry-core.mjs +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/opencode_plugin/overcode-telemetry-v2/tui.js +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/opencode_plugin/overcode-telemetry.js +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/pane_capture_gate.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/pid_utils.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/presence_logger.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/pricing.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/process_resources.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/protocols.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/sandbox_detect.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/sister_controller.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/standing_instructions.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/stat_gate.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/status_detector.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/status_history.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/summarizer_component.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/summary_groups.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/supervisor_layout.sh +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/testing/__init__.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/testing/renderer.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/testing/tmux_driver.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/testing/tui_eye.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/testing/tui_eye_skill.md +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/time_context.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_actions/__init__.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_actions/navigation.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_render.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/column_header.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/daemon_panel.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/job_summary.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/jump_modal.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/status_timeline.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/tui_widgets/tui_log_panel.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/usage_monitor.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web/__init__.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web/templates/analytics.html +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web/templates/dashboard.html +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web_chartjs.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web_server_runner.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/web_templates.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/worker_guard.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode/wrapper.py +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode.egg-info/dependency_links.txt +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode.egg-info/entry_points.txt +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode.egg-info/requires.txt +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/src/overcode.egg-info/top_level.txt +0 -0
- {overcode-0.5.6 → overcode-0.5.8}/tests/test_e2e_multi_agent_jokes.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: overcode
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.8
|
|
4
4
|
Summary: A supervisor for managing multiple Claude Code instances in tmux
|
|
5
5
|
Author: Mike Bond
|
|
6
6
|
Project-URL: Homepage, https://github.com/mkb23/overcode
|
|
@@ -111,6 +111,7 @@ The TUI displays all agents with live status updates, showing:
|
|
|
111
111
|
- **Agent hierarchy** - parent/child delegation with follow mode and reporting
|
|
112
112
|
- **Cost budgets** - per-agent spending limits with automatic enforcement
|
|
113
113
|
- **Sleep mode** - pause agents and exclude them from stats
|
|
114
|
+
- **Shutdown and revive**: `overcode shutdown` stops agents, jobs, daemons and tmux sessions and keeps the agent records. After a reboot, `overcode revive --all` brings the agents back with their conversations.
|
|
114
115
|
|
|
115
116
|
### Supervisor Daemon
|
|
116
117
|
An optional Claude-powered orchestrator that:
|
|
@@ -168,6 +169,7 @@ Aggregate agents from multiple machines into one dashboard:
|
|
|
168
169
|
| `q` | Quit (or detach in tmux split) |
|
|
169
170
|
|
|
170
171
|
See the [TUI Guide](docs/tui-guide.md) for all keyboard shortcuts.
|
|
172
|
+
Every key can be remapped, and a `vscode` preset avoids the keys VSCode's terminal swallows: `overcode keys --use vscode` (see [Configuration → Keybindings](docs/configuration.md#keybindings)).
|
|
171
173
|
|
|
172
174
|
## Documentation
|
|
173
175
|
|
|
@@ -69,6 +69,7 @@ The TUI displays all agents with live status updates, showing:
|
|
|
69
69
|
- **Agent hierarchy** - parent/child delegation with follow mode and reporting
|
|
70
70
|
- **Cost budgets** - per-agent spending limits with automatic enforcement
|
|
71
71
|
- **Sleep mode** - pause agents and exclude them from stats
|
|
72
|
+
- **Shutdown and revive**: `overcode shutdown` stops agents, jobs, daemons and tmux sessions and keeps the agent records. After a reboot, `overcode revive --all` brings the agents back with their conversations.
|
|
72
73
|
|
|
73
74
|
### Supervisor Daemon
|
|
74
75
|
An optional Claude-powered orchestrator that:
|
|
@@ -126,6 +127,7 @@ Aggregate agents from multiple machines into one dashboard:
|
|
|
126
127
|
| `q` | Quit (or detach in tmux split) |
|
|
127
128
|
|
|
128
129
|
See the [TUI Guide](docs/tui-guide.md) for all keyboard shortcuts.
|
|
130
|
+
Every key can be remapped, and a `vscode` preset avoids the keys VSCode's terminal swallows: `overcode keys --use vscode` (see [Configuration → Keybindings](docs/configuration.md#keybindings)).
|
|
129
131
|
|
|
130
132
|
## Documentation
|
|
131
133
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Overcode Documentation
|
|
2
|
+
|
|
3
|
+
Welcome to the overcode documentation. Overcode is a TUI supervisor for managing multiple coding agents (Claude Code, opencode, Codex, Grok) in tmux.
|
|
4
|
+
|
|
5
|
+
## Guides
|
|
6
|
+
|
|
7
|
+
| Guide | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| [Getting Started](getting-started.md) | Installation, prerequisites, and launching your first agent |
|
|
10
|
+
| [TUI Guide](tui-guide.md) | Keyboard shortcuts, display modes, and navigation |
|
|
11
|
+
| [CLI Reference](cli-reference.md) | Complete reference for all commands and options |
|
|
12
|
+
| [Configuration](configuration.md) | Config file, environment variables, and presets |
|
|
13
|
+
| [Advanced Features](advanced-features.md) | Sleep mode, remote monitoring, and more |
|
|
14
|
+
| [Skill Profiles](skill-profiles.md) | Named sets of skills switched on per agent, instead of always on |
|
|
15
|
+
| [Agent Backends](backends.md) | Running opencode/Codex/Grok agents; support matrix and flag mapping |
|
|
16
|
+
| [Claude Session Files](claude-session-files.md) | How token counting and cost estimation works internally |
|
|
17
|
+
|
|
18
|
+
## Quick Links
|
|
19
|
+
|
|
20
|
+
- **New to overcode?** Start with [Getting Started](getting-started.md)
|
|
21
|
+
- **Looking for a keyboard shortcut?** See the [TUI Guide](tui-guide.md)
|
|
22
|
+
- **Need a command reference?** Check [CLI Reference](cli-reference.md)
|
|
23
|
+
- **Want to customize?** Read [Configuration](configuration.md)
|
|
@@ -0,0 +1,640 @@
|
|
|
1
|
+
# Advanced Features
|
|
2
|
+
|
|
3
|
+
This guide covers overcode's advanced capabilities for power users.
|
|
4
|
+
|
|
5
|
+
## Sleep Mode
|
|
6
|
+
|
|
7
|
+
Sleep mode lets you pause agents and exclude them from statistics.
|
|
8
|
+
|
|
9
|
+
### How It Works
|
|
10
|
+
|
|
11
|
+
1. Press `z` on an agent to toggle sleep mode
|
|
12
|
+
2. Sleeping agents show a grey/sleepy indicator (💤)
|
|
13
|
+
3. They're excluded from:
|
|
14
|
+
- Green time calculations
|
|
15
|
+
- Cost summaries
|
|
16
|
+
- Supervisor oversight
|
|
17
|
+
4. Press `Z` to hide sleeping agents from the list entirely
|
|
18
|
+
|
|
19
|
+
### Use Cases
|
|
20
|
+
|
|
21
|
+
- **Focus time**: Sleep agents you're not actively monitoring
|
|
22
|
+
- **Pause without killing**: Keep agent state but stop activity
|
|
23
|
+
- **Clean metrics**: Exclude agents from efficiency calculations
|
|
24
|
+
|
|
25
|
+
### Constraints
|
|
26
|
+
|
|
27
|
+
- **Cannot sleep running agents**: If Claude is actively working, you must wait for it to pause before sleeping. This prevents accidentally ignoring an agent mid-task.
|
|
28
|
+
|
|
29
|
+
## Agent Priority & Sorting
|
|
30
|
+
|
|
31
|
+
Organize agents by importance with priority values.
|
|
32
|
+
|
|
33
|
+
### Setting Priority
|
|
34
|
+
|
|
35
|
+
1. Press `V` on an agent to edit its value
|
|
36
|
+
2. Default is 1000; higher = more important
|
|
37
|
+
3. Press `S` to cycle sort modes until you reach "value" sorting
|
|
38
|
+
|
|
39
|
+
### Sort Modes
|
|
40
|
+
|
|
41
|
+
| Mode | Description |
|
|
42
|
+
|------|-------------|
|
|
43
|
+
| Alphabetical | Sort by agent name |
|
|
44
|
+
| Status | Red (stalled) first, then yellow, orange, green |
|
|
45
|
+
| Value | Highest priority values first |
|
|
46
|
+
| Tree | Parent/child hierarchy with tree connectors |
|
|
47
|
+
|
|
48
|
+
### CLI Access
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
overcode set-value my-agent 2000 # High priority
|
|
52
|
+
overcode set-value cleanup-bot 100 # Low priority
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Heartbeat
|
|
56
|
+
|
|
57
|
+
Heartbeat sends a periodic instruction to an agent, keeping it working even when it stalls at a prompt or finishes a task.
|
|
58
|
+
|
|
59
|
+
### Setting Up
|
|
60
|
+
|
|
61
|
+
1. Select an agent and press `H`
|
|
62
|
+
2. Enter a frequency (e.g., `5m`, `1h`, `300`)
|
|
63
|
+
3. Enter the instruction to send at each heartbeat (e.g., "continue working on the task")
|
|
64
|
+
|
|
65
|
+
The agent will receive the instruction at the configured interval whenever it's not actively running.
|
|
66
|
+
|
|
67
|
+
### How It Works
|
|
68
|
+
|
|
69
|
+
- The monitor daemon checks heartbeat timers every loop (~10s)
|
|
70
|
+
- If the agent is idle and the heartbeat interval has elapsed, the instruction is sent to the agent's tmux window
|
|
71
|
+
- The agent starts working as if a user typed the instruction
|
|
72
|
+
- Heartbeat timing resets after each send
|
|
73
|
+
|
|
74
|
+
### Pausing
|
|
75
|
+
|
|
76
|
+
Press `H` and enter `off` to disable heartbeat. The configuration is preserved — re-enable with `H` and a new frequency.
|
|
77
|
+
|
|
78
|
+
### Interaction with Cost Budgets
|
|
79
|
+
|
|
80
|
+
When an agent exceeds its cost budget, heartbeats are **silently skipped**. The heartbeat configuration stays intact — nothing is disabled or modified. Once the budget is raised or cleared, heartbeats resume automatically on the next daemon loop.
|
|
81
|
+
|
|
82
|
+
This prevents runaway spending: an agent can't burn through budget indefinitely via heartbeat-driven work.
|
|
83
|
+
|
|
84
|
+
### Interaction with Sleep Mode
|
|
85
|
+
|
|
86
|
+
Sleeping agents also skip heartbeats. Wake the agent with `z` to resume.
|
|
87
|
+
|
|
88
|
+
## Cost Budgets
|
|
89
|
+
|
|
90
|
+
Set a spending limit on individual agents to manage usage.
|
|
91
|
+
|
|
92
|
+
### Setting a Budget
|
|
93
|
+
|
|
94
|
+
**At launch** (preferred):
|
|
95
|
+
```bash
|
|
96
|
+
overcode launch -n my-agent --budget 5.00 -p "..."
|
|
97
|
+
```
|
|
98
|
+
If launched as a child agent, the budget is automatically deducted from the parent's budget. If the parent has an unlimited budget (0), the child gets the budget without any parent deduction.
|
|
99
|
+
|
|
100
|
+
**TUI**: Select an agent and press `B`, enter a dollar amount (e.g., `5.00`). Enter `0` to clear.
|
|
101
|
+
|
|
102
|
+
**CLI** (post-launch):
|
|
103
|
+
```bash
|
|
104
|
+
overcode budget set my-agent 5.00 # $5 budget
|
|
105
|
+
overcode budget set my-agent 0 # Clear budget
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Display
|
|
109
|
+
|
|
110
|
+
When `show_cost` is enabled (`$` key), agents with budgets show `$cost/$budget` instead of just `$cost`:
|
|
111
|
+
- **Orange** — under 80% of budget
|
|
112
|
+
- **Yellow** — 80-99% of budget
|
|
113
|
+
- **Red** — budget exceeded
|
|
114
|
+
|
|
115
|
+
The `overcode show <agent>` command also displays the budget on the Cost line.
|
|
116
|
+
|
|
117
|
+
### What Happens When Budget Is Exceeded
|
|
118
|
+
|
|
119
|
+
Budget enforcement is **soft** — the agent is not killed or put to sleep. Instead:
|
|
120
|
+
|
|
121
|
+
1. **Heartbeats are skipped** — the agent won't receive periodic instructions, so it naturally stops when it finishes its current work or hits a permission prompt
|
|
122
|
+
2. **Supervision is skipped** — the supervisor daemon won't launch a daemon Claude to approve prompts or steer the agent
|
|
123
|
+
|
|
124
|
+
The agent can still finish whatever it's currently doing. It just won't receive any more automated nudges.
|
|
125
|
+
|
|
126
|
+
### Resuming After Budget
|
|
127
|
+
|
|
128
|
+
To continue past a budget, either raise it or clear it:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
overcode set-budget my-agent 10.00 # Raise to $10
|
|
132
|
+
overcode set-budget my-agent 0 # Remove limit entirely
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Heartbeats and supervision resume automatically on the next daemon loop (~10s).
|
|
136
|
+
|
|
137
|
+
### No Global Default
|
|
138
|
+
|
|
139
|
+
Budgets are per-agent only. There is no global default budget in config.
|
|
140
|
+
|
|
141
|
+
## Agent Hierarchy
|
|
142
|
+
|
|
143
|
+
Agents can spawn child agents, creating a parent/child tree. This enables delegation patterns where a parent agent launches children to handle subtasks.
|
|
144
|
+
|
|
145
|
+
### Launching Child Agents
|
|
146
|
+
|
|
147
|
+
**CLI:**
|
|
148
|
+
```bash
|
|
149
|
+
# Explicit parent
|
|
150
|
+
overcode launch -n subtask --parent my-agent -d ~/project -p "Fix the auth bug"
|
|
151
|
+
|
|
152
|
+
# With follow mode (blocks until child finishes)
|
|
153
|
+
overcode launch -n subtask --parent my-agent --follow -p "Fix the auth bug"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Auto-detection:** When an agent runs `overcode launch` from within its own session, the parent is auto-detected from the `OVERCODE_SESSION_NAME` environment variable.
|
|
157
|
+
|
|
158
|
+
**Depth limit:** Hierarchies are limited to 5 levels deep.
|
|
159
|
+
|
|
160
|
+
### Follow Mode
|
|
161
|
+
|
|
162
|
+
Follow mode streams a child agent's output to stdout and blocks until the child reports completion via `overcode report`.
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Launch and follow — prompt must include overcode report at the end
|
|
166
|
+
overcode launch -n child --follow -p "Do the task. When done: overcode report --status success"
|
|
167
|
+
|
|
168
|
+
# Follow an already-running agent
|
|
169
|
+
overcode follow child-agent
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
When the child reports success, it's marked "done" — it stays alive in tmux but is hidden from default views.
|
|
173
|
+
|
|
174
|
+
### Reporting Completion
|
|
175
|
+
|
|
176
|
+
Child agents must explicitly signal completion by running `overcode report`:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
overcode report --status success --reason "All tests pass"
|
|
180
|
+
overcode report --status failure --reason "Build failed"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Without a report, the child enters `waiting_oversight` status (👁️) when it stops. The parent's follow mode blocks until a report arrives or the oversight policy triggers.
|
|
184
|
+
|
|
185
|
+
**Always include `overcode report` at the end of your `--prompt`.** This is the most common mistake when setting up delegation.
|
|
186
|
+
|
|
187
|
+
### Oversight Policies
|
|
188
|
+
|
|
189
|
+
Control what happens when a child stops without reporting:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Default: wait indefinitely for a report
|
|
193
|
+
overcode launch -n child --follow -p "..."
|
|
194
|
+
|
|
195
|
+
# Fail immediately if child stops without reporting
|
|
196
|
+
overcode launch -n child --follow --on-stuck fail -p "..."
|
|
197
|
+
|
|
198
|
+
# Wait up to 5 minutes, then fail
|
|
199
|
+
overcode launch -n child --follow --oversight-timeout 5m -p "..."
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
The TUI shows a countdown timer (⏳) for agents with a timeout policy.
|
|
203
|
+
|
|
204
|
+
### Budget Transfer
|
|
205
|
+
|
|
206
|
+
Transfer budget from a parent to a child agent:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
overcode budget transfer parent-agent child-agent 2.50
|
|
210
|
+
overcode budget show # See all budgets
|
|
211
|
+
overcode budget show my-agent # See one agent's budget
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
The source must be an ancestor of the target.
|
|
215
|
+
|
|
216
|
+
### Cascade Kill
|
|
217
|
+
|
|
218
|
+
Killing a parent kills all its descendants (deepest-first):
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
overcode kill parent-agent # Kills parent + all children
|
|
222
|
+
overcode kill parent-agent --no-cascade # Kills only parent, orphans children
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### TUI Tree View
|
|
226
|
+
|
|
227
|
+
Press `S` to cycle to "Tree" sort mode. Agents display in a hierarchy with tree connectors:
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
parent-agent 🟢 2.5h ...
|
|
231
|
+
├─child-1 🟢 1.2h ...
|
|
232
|
+
│ └─grandchild 🟠 0.5h ...
|
|
233
|
+
└─child-2 ✓ 0.8h ...
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- **`X`** — Collapse/expand children of the focused agent
|
|
237
|
+
- **`D`** — Show/hide "done" child agents (hidden by default)
|
|
238
|
+
|
|
239
|
+
The child count column (👶) shows how many direct children each agent has.
|
|
240
|
+
|
|
241
|
+
### Done Agents
|
|
242
|
+
|
|
243
|
+
When a child reports success or failure via `overcode report`, it enters the "done" state:
|
|
244
|
+
- Hidden from default list and TUI views
|
|
245
|
+
- Press `D` in TUI or use `--show-done` in CLI to reveal them
|
|
246
|
+
- Auto-archived by the monitor daemon after 1 hour
|
|
247
|
+
- Manually archive with `overcode cleanup --done`
|
|
248
|
+
|
|
249
|
+
### Waiting for Oversight
|
|
250
|
+
|
|
251
|
+
If a child stops without calling `overcode report`, it enters `waiting_oversight` (👁️):
|
|
252
|
+
- Visible in the TUI with a yellow indicator
|
|
253
|
+
- Parent's follow mode remains blocked, waiting for a report
|
|
254
|
+
- With `--oversight-timeout`, a countdown timer appears in the TUI
|
|
255
|
+
- Resolve by attaching to the child's tmux window and running `overcode report` manually, or let the timeout expire
|
|
256
|
+
|
|
257
|
+
### Filtered List
|
|
258
|
+
|
|
259
|
+
View a subtree from the CLI:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
overcode list parent-agent # Shows parent + all descendants
|
|
263
|
+
overcode list --show-done # Include done agents
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Jump to Attention
|
|
267
|
+
|
|
268
|
+
Press `b` to quickly navigate to agents needing attention.
|
|
269
|
+
|
|
270
|
+
### Priority Order
|
|
271
|
+
|
|
272
|
+
1. **Bell** (🔔) - Unvisited stalled agents (highest priority)
|
|
273
|
+
2. **Red** - Waiting for user input (already visited)
|
|
274
|
+
3. **Yellow** - No standing instructions
|
|
275
|
+
4. **Orange** - Waiting for supervisor
|
|
276
|
+
|
|
277
|
+
Press `b` repeatedly to cycle through all attention-needing agents.
|
|
278
|
+
|
|
279
|
+
### Bell Indicator
|
|
280
|
+
|
|
281
|
+
The bell (🔔) appears when an agent stalls and you haven't visited it yet. Focus the agent to mark it as "visited" and clear the bell. This helps you track which stalled agents you've already seen.
|
|
282
|
+
|
|
283
|
+
## Sync to Main
|
|
284
|
+
|
|
285
|
+
Quickly reset an agent to the main branch.
|
|
286
|
+
|
|
287
|
+
### How to Use
|
|
288
|
+
|
|
289
|
+
1. Select the agent
|
|
290
|
+
2. Press `c` twice (double-press for confirmation)
|
|
291
|
+
3. The agent runs:
|
|
292
|
+
- `git checkout main && git pull`
|
|
293
|
+
- `/clear` to reset conversation context
|
|
294
|
+
|
|
295
|
+
### Use Cases
|
|
296
|
+
|
|
297
|
+
- Agent went down a wrong path
|
|
298
|
+
- Starting fresh on a new task
|
|
299
|
+
- Pulling in changes from other agents
|
|
300
|
+
|
|
301
|
+
## Remote Monitoring
|
|
302
|
+
|
|
303
|
+
Monitor agents from anywhere with the web dashboard.
|
|
304
|
+
|
|
305
|
+
### Web Dashboard
|
|
306
|
+
|
|
307
|
+
Start the dashboard server:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
overcode web # Start on localhost:8080
|
|
311
|
+
overcode web --host 0.0.0.0 # LAN access (needs api_key)
|
|
312
|
+
overcode web --port 3000 # Custom port
|
|
313
|
+
overcode web --stop # Stop the server
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The server runs in the background — the command exits immediately. Run `overcode web` again to see the URL if already running.
|
|
317
|
+
|
|
318
|
+
Access `http://<your-ip>:8080` from your phone, tablet, or another machine.
|
|
319
|
+
|
|
320
|
+
Features:
|
|
321
|
+
- Summary statistics and daily activity charts
|
|
322
|
+
- Session browser with sorting
|
|
323
|
+
- Timeline visualization with agent status and user presence
|
|
324
|
+
- Efficiency metrics and cost analysis
|
|
325
|
+
- Live agent monitoring at `/dashboard`
|
|
326
|
+
- Sister-compatible `/api/status` endpoint
|
|
327
|
+
- Auto-refreshes, optimized for mobile screens
|
|
328
|
+
|
|
329
|
+
### TUI Toggle
|
|
330
|
+
|
|
331
|
+
Press `w` in the TUI to start/stop the web server. The URL appears in the daemon panel.
|
|
332
|
+
|
|
333
|
+
## AI Summarizer
|
|
334
|
+
|
|
335
|
+
Get AI-generated summaries of agent activity.
|
|
336
|
+
|
|
337
|
+
### Setup
|
|
338
|
+
|
|
339
|
+
1. Set your API key:
|
|
340
|
+
```bash
|
|
341
|
+
export OPENAI_API_KEY="sk-..."
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
2. Enable in TUI by pressing `a`
|
|
345
|
+
|
|
346
|
+
3. Press `l` to cycle to AI summary mode (💬 or 📖)
|
|
347
|
+
|
|
348
|
+
### Summary Modes
|
|
349
|
+
|
|
350
|
+
| Mode | Description |
|
|
351
|
+
|------|-------------|
|
|
352
|
+
| AI Short (💬) | Brief summary of current activity |
|
|
353
|
+
| AI Long (📖) | Detailed summary with broader context and goals |
|
|
354
|
+
|
|
355
|
+
### Custom Provider
|
|
356
|
+
|
|
357
|
+
Use any OpenAI-compatible API:
|
|
358
|
+
|
|
359
|
+
```yaml
|
|
360
|
+
# In ~/.overcode/config.yaml
|
|
361
|
+
summarizer:
|
|
362
|
+
api_url: https://your-provider.com/v1/chat/completions
|
|
363
|
+
model: your-model-name
|
|
364
|
+
api_key_var: YOUR_API_KEY_VAR
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### Prompts
|
|
368
|
+
|
|
369
|
+
The two summaries each have a prompt: **short** (what the agent is doing right now) and **context** (the task it is working on). Once saved, they live in `~/.overcode/prompts/summary-short.md` and `summary-context.md`; until then the built-in defaults are used. Edits are picked up on the next summary, with no restart.
|
|
370
|
+
|
|
371
|
+
Prompts can use `{pane_content}`, `{lines}`, `{previous_summary}` and `{status}`; any other braces are left as typed.
|
|
372
|
+
|
|
373
|
+
To tune them, open **AI summary prompts…** from the command palette (`/`). The top half edits the prompt; the bottom half shows what it produces for up to six live agents (the focused one first), re-run about every 2 seconds once you stop typing, next to each agent's current live summary. A call is only made when the draft or that agent's terminal changed, and lab calls count toward the summarizer's cost cap.
|
|
374
|
+
|
|
375
|
+
| Key | Action |
|
|
376
|
+
|-----|--------|
|
|
377
|
+
| `Ctrl+S` | Save (saving the built-in text removes the file) |
|
|
378
|
+
| `Ctrl+T` | Switch between the short and context prompts |
|
|
379
|
+
| `Ctrl+R` | Revert to the saved prompt |
|
|
380
|
+
| `Ctrl+L` | Load the built-in default |
|
|
381
|
+
| `Esc` | Close (twice if there are unsaved edits) |
|
|
382
|
+
|
|
383
|
+
### Cost
|
|
384
|
+
|
|
385
|
+
The summarizer only runs when enabled and the TUI is open. It makes requests every few seconds, so costs are minimal with GPT-4o-mini but can add up with larger models.
|
|
386
|
+
|
|
387
|
+
## Human Annotations
|
|
388
|
+
|
|
389
|
+
Add notes to agents for yourself or collaborators.
|
|
390
|
+
|
|
391
|
+
### Adding Annotations
|
|
392
|
+
|
|
393
|
+
1. Select an agent
|
|
394
|
+
2. Press `I` to edit annotation
|
|
395
|
+
3. Type your note
|
|
396
|
+
4. Press `Enter` to save
|
|
397
|
+
|
|
398
|
+
### Viewing
|
|
399
|
+
|
|
400
|
+
Press `l` to cycle to annotation mode (✏️) to see annotations in the summary line.
|
|
401
|
+
|
|
402
|
+
### Use Cases
|
|
403
|
+
|
|
404
|
+
- "Waiting on API credentials"
|
|
405
|
+
- "Don't touch until John reviews"
|
|
406
|
+
- "Blocked by issue #123"
|
|
407
|
+
- "Ready for testing"
|
|
408
|
+
|
|
409
|
+
## Data Export
|
|
410
|
+
|
|
411
|
+
Export session data for analysis in Jupyter or other tools.
|
|
412
|
+
|
|
413
|
+
### Parquet Export
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
overcode export analysis.parquet
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
Options:
|
|
420
|
+
- `--archived` / `-a`: Include archived sessions (default: true)
|
|
421
|
+
- `--timeline` / `-t`: Include status timeline (default: true)
|
|
422
|
+
- `--presence` / `-p`: Include presence data (default: true)
|
|
423
|
+
|
|
424
|
+
### Included Data
|
|
425
|
+
|
|
426
|
+
- Session metadata (name, directory, repo)
|
|
427
|
+
- Token usage and costs
|
|
428
|
+
- Time metrics (green, idle, sleep)
|
|
429
|
+
- Status history timeline
|
|
430
|
+
- User presence (if available)
|
|
431
|
+
|
|
432
|
+
### Jupyter Analysis
|
|
433
|
+
|
|
434
|
+
```python
|
|
435
|
+
import pandas as pd
|
|
436
|
+
|
|
437
|
+
df = pd.read_parquet('analysis.parquet')
|
|
438
|
+
|
|
439
|
+
# Cost by agent
|
|
440
|
+
df.groupby('name')['cost'].sum().sort_values(ascending=False)
|
|
441
|
+
|
|
442
|
+
# Green time efficiency
|
|
443
|
+
df['efficiency'] = df['green_time'] / (df['green_time'] + df['idle_time'])
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
Parquet export and the TUI timeline both read only the last 24h/3h of
|
|
447
|
+
`agent_status_history.csv` — the source CSV itself is rotated to compressed
|
|
448
|
+
`.gz` archives and retained long-term rather than growing unbounded. See
|
|
449
|
+
[History Retention](configuration.md#history-retention) in the configuration
|
|
450
|
+
docs for the rotation/retention knobs.
|
|
451
|
+
|
|
452
|
+
## Presence Tracking
|
|
453
|
+
|
|
454
|
+
Overcode tracks when you're at your computer to correlate with agent activity.
|
|
455
|
+
|
|
456
|
+
### How It Works
|
|
457
|
+
|
|
458
|
+
Presence tracking works on all platforms. Sleep detection (gap inference), TUI heartbeat state, and CSV logging are cross-platform. On macOS, Quartz APIs provide richer idle-seconds and screen-lock detection; on other platforms idle is reported as 0 and locked as false.
|
|
459
|
+
|
|
460
|
+
### Data Location
|
|
461
|
+
|
|
462
|
+
```
|
|
463
|
+
~/.overcode/presence_log.csv
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### Analytics
|
|
467
|
+
|
|
468
|
+
The web dashboard (`overcode web`) overlays presence data on timelines, showing when agents were working while you were away vs. actively monitoring.
|
|
469
|
+
|
|
470
|
+
## Cloud Relay
|
|
471
|
+
|
|
472
|
+
Push status to a remote endpoint for custom integrations.
|
|
473
|
+
|
|
474
|
+
### Configuration
|
|
475
|
+
|
|
476
|
+
```yaml
|
|
477
|
+
relay:
|
|
478
|
+
enabled: true
|
|
479
|
+
url: https://your-worker.workers.dev/update
|
|
480
|
+
api_key: your-secret-key
|
|
481
|
+
interval: 30 # seconds
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Payload
|
|
485
|
+
|
|
486
|
+
The relay sends JSON with:
|
|
487
|
+
- All agent statuses
|
|
488
|
+
- Token usage
|
|
489
|
+
- Costs
|
|
490
|
+
- Current activity
|
|
491
|
+
|
|
492
|
+
### Use Cases
|
|
493
|
+
|
|
494
|
+
- Custom dashboards
|
|
495
|
+
- Slack notifications
|
|
496
|
+
- Integration with project management tools
|
|
497
|
+
|
|
498
|
+
## Sister Integration
|
|
499
|
+
|
|
500
|
+
Aggregate agents from multiple machines into a single TUI. When running overcode on 2-3 machines simultaneously, sister integration gives you read-only visibility into all agents from one place.
|
|
501
|
+
|
|
502
|
+
### Prerequisites
|
|
503
|
+
|
|
504
|
+
Each machine must be running `overcode web`:
|
|
505
|
+
|
|
506
|
+
```bash
|
|
507
|
+
# On each remote machine
|
|
508
|
+
overcode web
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Setup Option A: SSH Tunnels (Recommended)
|
|
512
|
+
|
|
513
|
+
SSH tunnels keep all traffic encrypted with no API key needed.
|
|
514
|
+
|
|
515
|
+
On the **monitoring machine**, add tunnels in `~/.ssh/config`:
|
|
516
|
+
|
|
517
|
+
```
|
|
518
|
+
Host macbook-pro
|
|
519
|
+
HostName 192.168.1.10
|
|
520
|
+
LocalForward 15337 localhost:8080
|
|
521
|
+
|
|
522
|
+
Host desktop
|
|
523
|
+
HostName 192.168.1.20
|
|
524
|
+
LocalForward 25337 localhost:8080
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
Open the tunnels (or use `autossh` for persistence):
|
|
528
|
+
|
|
529
|
+
```bash
|
|
530
|
+
ssh -N macbook-pro &
|
|
531
|
+
ssh -N desktop &
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
Configure sisters in `~/.overcode/config.yaml`:
|
|
535
|
+
|
|
536
|
+
```yaml
|
|
537
|
+
hostname: "mac-studio"
|
|
538
|
+
|
|
539
|
+
sisters:
|
|
540
|
+
- name: "macbook-pro"
|
|
541
|
+
url: "http://localhost:15337"
|
|
542
|
+
- name: "desktop"
|
|
543
|
+
url: "http://localhost:25337"
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
### Setup Option B: Direct LAN with API Key
|
|
547
|
+
|
|
548
|
+
Expose the web server directly on the LAN. Requires an API key for security.
|
|
549
|
+
|
|
550
|
+
On each **remote machine**, add to `~/.overcode/config.yaml`:
|
|
551
|
+
|
|
552
|
+
```yaml
|
|
553
|
+
web:
|
|
554
|
+
api_key: "your-shared-secret"
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
Start the server bound to all interfaces:
|
|
558
|
+
|
|
559
|
+
```bash
|
|
560
|
+
overcode web --host 0.0.0.0
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
On the **monitoring machine**, configure sisters:
|
|
564
|
+
|
|
565
|
+
```yaml
|
|
566
|
+
hostname: "mac-studio"
|
|
567
|
+
|
|
568
|
+
sisters:
|
|
569
|
+
- name: "macbook-pro"
|
|
570
|
+
url: "http://192.168.1.10:8080"
|
|
571
|
+
api_key: "your-shared-secret"
|
|
572
|
+
- name: "desktop"
|
|
573
|
+
url: "http://192.168.1.20:8080"
|
|
574
|
+
api_key: "your-shared-secret"
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
### What It Looks Like
|
|
578
|
+
|
|
579
|
+
When sisters are configured, a **Host** column appears in the TUI:
|
|
580
|
+
|
|
581
|
+
```
|
|
582
|
+
Host Name Status Cost Green Activity
|
|
583
|
+
mac-studio agent1 running $1.23 12m Writing tests...
|
|
584
|
+
mac-studio agent2 waiting $0.45 8m (waiting for user)
|
|
585
|
+
macbook-pro agent3 running $2.34 25m Refactoring auth...
|
|
586
|
+
desktop agent5 running $0.67 5m Adding endpoint...
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
- Local agents appear first, remote agents grouped by host
|
|
590
|
+
- Local hostname is dimmed, remote hostnames are bold magenta
|
|
591
|
+
- The footer shows: `Sisters: macbook-pro(2/3) desktop(1/1)`
|
|
592
|
+
- Remote agents are read-only (interactive actions are blocked)
|
|
593
|
+
|
|
594
|
+
### Troubleshooting
|
|
595
|
+
|
|
596
|
+
- **Sister shows `--`**: Check that `overcode web` is running on the remote machine and the tunnel/URL is reachable
|
|
597
|
+
- **401 Unauthorized**: API key mismatch between server and client config
|
|
598
|
+
- **No Host column**: Sisters config is empty or missing — the column is auto-hidden
|
|
599
|
+
|
|
600
|
+
## Multiple Daemon Warning
|
|
601
|
+
|
|
602
|
+
If the TUI detects multiple monitor daemon processes, it shows a warning every 5 seconds.
|
|
603
|
+
|
|
604
|
+
### Resolution
|
|
605
|
+
|
|
606
|
+
Press `\` to restart the monitor daemon. This kills existing daemons and starts a fresh one.
|
|
607
|
+
|
|
608
|
+
### Prevention
|
|
609
|
+
|
|
610
|
+
This typically happens if:
|
|
611
|
+
- Multiple TUIs are started simultaneously
|
|
612
|
+
- Previous daemon didn't shut down cleanly
|
|
613
|
+
|
|
614
|
+
## Diagnostic Mode
|
|
615
|
+
|
|
616
|
+
For debugging TUI issues:
|
|
617
|
+
|
|
618
|
+
```bash
|
|
619
|
+
overcode monitor --diagnostics
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
This disables auto-refresh timers, letting you manually refresh with `r` and observe state changes.
|
|
623
|
+
|
|
624
|
+
## Terminal Compatibility
|
|
625
|
+
|
|
626
|
+
### Color Issues
|
|
627
|
+
|
|
628
|
+
If colors render incorrectly, press `M` for monochrome mode. This strips ANSI codes from the preview pane.
|
|
629
|
+
|
|
630
|
+
### Mouse Issues
|
|
631
|
+
|
|
632
|
+
If mouse events interfere with your terminal:
|
|
633
|
+
1. Press `y` to enter copy mode
|
|
634
|
+
2. Mouse capture is disabled
|
|
635
|
+
3. Select text normally
|
|
636
|
+
4. Press `y` again to re-enable
|
|
637
|
+
|
|
638
|
+
### Large Repos
|
|
639
|
+
|
|
640
|
+
For repos with many files, Claude's output can be verbose. Use `v` to cycle through detail line counts (5/10/20/50) to manage preview pane size.
|