🖥️ Session manager for tmux, built on libtmux.
This report presents the forensic synthetic code analysis of tmux-python/tmuxp, a Python project with 4,541 GitHub stars. SynthScan v2.0 examined 37,302 lines of code across 237 source files, recording 731 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 20.7 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 731 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 88 | def monkeypatch_plugin_test_packages(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | conftest.py | 121 | def pytest_collection_modifyitems(items: list[pytest.Item]) -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 39 | def test_tmux_version_fail_min() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 46 | def test_tmux_version_fail_max() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 53 | def test_tmux_version_fail_incompatible() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 60 | def test_tmuxp_version_fail_min() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 67 | def test_tmuxp_version_fail_max() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 74 | def test_tmuxp_version_fail_incompatible() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 81 | def test_libtmux_version_fail_min() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 88 | def test_libtmux_version_fail_max() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 95 | def test_libtmux_version_fail_incompatible() -> None: | CODE |
| LOW⚡ | tests/test_plugin.py | 102 | def test_plugin_version_check_logs_debug( | CODE |
| LOW | tests/test_util.py | 85 | def test_run_before_script_isatty( | CODE |
| LOW⚡ | tests/test_util.py | 125 | def test_beforeload_returncode() -> None: | CODE |
| LOW⚡ | tests/test_util.py | 134 | def test_beforeload_returns_stderr_messages() -> None: | CODE |
| LOW⚡ | tests/test_util.py | 143 | def test_get_session_should_default_to_local_attached_session( | CODE |
| LOW | tests/test_util.py | 159 | def test_get_session_should_return_first_session_if_no_active_session( | CODE |
| LOW | tests/test_util.py | 174 | def test_get_pane_logs_debug_on_failure( | CODE |
| LOW | tests/test_util.py | 205 | def test_oh_my_zsh_auto_title_logs_warning( | CODE |
| LOW | tests/test_log.py | 18 | def test_level_colors_no_colorama() -> None: | CODE |
| LOW | tests/test_log.py | 26 | def test_log_formatter_format_plain_text() -> None: | CODE |
| LOW | tests/test_log.py | 43 | def test_debug_log_formatter_format_smoke() -> None: | CODE |
| LOW | tests/test_log.py | 59 | def test_timestamp_format_has_minutes() -> None: | CODE |
| LOW⚡ | tests/test_log.py | 84 | def test_tmuxp_echo_default_stdout(capsys: pytest.CaptureFixture[str]) -> None: | CODE |
| LOW⚡ | tests/test_log.py | 92 | def test_tmuxp_echo_to_stderr(capsys: pytest.CaptureFixture[str]) -> None: | CODE |
| LOW⚡ | tests/test_log.py | 100 | def test_tmuxp_echo_none_is_no_op(capsys: pytest.CaptureFixture[str]) -> None: | CODE |
| LOW | tests/test_docs_tmux_layout.py | 45 | def test_arrange_fills_screen(case: ArrangeCase) -> None: | CODE |
| LOW | tests/test_docs_tmux_layout.py | 61 | def test_arrange_unknown_layout_raises() -> None: | CODE |
| LOW⚡ | tests/test_docs_tmux_layout.py | 86 | def test_highlight_emits_pygments_classes(case: HighlightCase) -> None: | CODE |
| LOW⚡ | tests/test_docs_tmux_layout.py | 93 | def test_highlight_leaves_command_builtin_default() -> None: | CODE |
| LOW⚡ | tests/test_docs_tmux_layout.py | 99 | def test_highlight_escapes_markup() -> None: | CODE |
| LOW | tests/test_docs_tmux_layout.py | 161 | def test_parse_size_invalid_raises() -> None: | CODE |
| LOW | tests/test_docs_tmux_layout.py | 167 | def test_render_layout_structure() -> None: | CODE |
| LOW | tests/test_docs_tmux_layout.py | 178 | def test_render_layout_clips_compact_pane_text_without_rescaling() -> None: | CODE |
| LOW | tests/test_docs_tmux_layout.py | 200 | def test_setup_registers_components() -> None: | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 14 | def test_private_path_collapses_home(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 22 | def test_private_path_collapses_home_exact(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 30 | def test_private_path_preserves_non_home(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 38 | def test_private_path_preserves_tmp(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 46 | def test_private_path_preserves_already_collapsed() -> None: | CODE |
| LOW | tests/_internal/test_private_path.py | 60 | def test_private_path_in_fstring(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/_internal/test_private_path.py | 69 | def test_private_path_similar_prefix_not_collapsed( | CODE |
| LOW | tests/_internal/test_private_path.py | 83 | def test_collapse_home_in_string_single_path(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/_internal/test_private_path.py | 91 | def test_collapse_home_in_string_multiple_paths( | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 103 | def test_collapse_home_in_string_no_home_paths( | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 113 | def test_collapse_home_in_string_mixed_paths(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW⚡ | tests/_internal/test_private_path.py | 121 | def test_collapse_home_in_string_empty() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 185 | def test_get_color_mode_none_returns_auto() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 190 | def test_get_color_mode_auto_string() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 195 | def test_get_color_mode_always_string() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 200 | def test_get_color_mode_never_string() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 205 | def test_get_color_mode_case_insensitive() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 212 | def test_get_color_mode_invalid_returns_auto() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 222 | def test_semantic_color_names() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 278 | def test_style_with_empty_tuple() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 286 | def test_style_with_rgb_value_too_high() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 292 | def test_style_with_rgb_value_negative() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 298 | def test_style_with_rgb_non_integer() -> None: | CODE |
| LOW⚡ | tests/_internal/test_colors.py | 307 | def test_heading_applies_bright_cyan_bold(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/_internal/test_colors.py | 41 | def test_auto_no_tty_disabled(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| 451 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 11 | CODE | |
| LOW | tests/test_plugin.py | 3 | CODE | |
| LOW | tests/constants.py | 3 | CODE | |
| LOW | tests/test_util.py | 3 | CODE | |
| LOW | tests/test_log.py | 3 | CODE | |
| LOW | tests/test_docs_tmux_layout.py | 3 | CODE | |
| LOW | tests/test_shell.py | 3 | CODE | |
| LOW | tests/_internal/conftest.py | 3 | CODE | |
| LOW | tests/_internal/test_private_path.py | 3 | CODE | |
| LOW | tests/_internal/test_colors.py | 3 | CODE | |
| LOW | tests/_internal/test_colors_formatters.py | 3 | CODE | |
| LOW | tests/_internal/test_colors_integration.py | 3 | CODE | |
| LOW | tests/workspace/test_freezer.py | 3 | CODE | |
| LOW | tests/workspace/conftest.py | 3 | CODE | |
| LOW | tests/workspace/test_options.py | 3 | CODE | |
| LOW | tests/workspace/test_finders_local.py | 3 | CODE | |
| LOW | tests/workspace/test_import_teamocil.py | 3 | CODE | |
| LOW | tests/workspace/test_builder_registry.py | 3 | CODE | |
| LOW | tests/workspace/test_progress.py | 3 | CODE | |
| LOW | tests/workspace/test_finder.py | 3 | CODE | |
| LOW | tests/workspace/test_builder.py | 3 | CODE | |
| LOW | tests/workspace/test_config.py | 3 | CODE | |
| LOW | tests/workspace/test_import_tmuxinator.py | 3 | CODE | |
| LOW | tests/tests/test_helpers.py | 3 | CODE | |
| LOW | tests/cli/conftest.py | 3 | CODE | |
| LOW | tests/cli/test_freeze_colors.py | 3 | CODE | |
| LOW | tests/cli/test_search.py | 3 | CODE | |
| LOW | tests/cli/test_freeze.py | 3 | CODE | |
| LOW | tests/cli/test_ls.py | 3 | CODE | |
| LOW | tests/cli/test_convert.py | 3 | CODE | |
| LOW | tests/cli/test_output.py | 3 | CODE | |
| LOW | tests/cli/test_debug_info_colors.py | 3 | CODE | |
| LOW | tests/cli/test_progress.py | 3 | CODE | |
| LOW | tests/cli/test_shell_colors.py | 3 | CODE | |
| LOW | tests/cli/test_prompt_colors.py | 3 | CODE | |
| LOW | tests/cli/test_import.py | 3 | CODE | |
| LOW | tests/cli/test_convert_colors.py | 3 | CODE | |
| LOW | tests/cli/test_formatter.py | 3 | CODE | |
| LOW | tests/cli/test_debug_info.py | 3 | CODE | |
| LOW | tests/cli/test_edit_colors.py | 3 | CODE | |
| LOW | tests/cli/test_help_examples.py | 3 | CODE | |
| LOW | tests/cli/test_shell.py | 3 | CODE | |
| LOW | tests/cli/test_cli.py | 3 | CODE | |
| LOW | tests/cli/test_load.py | 3 | CODE | |
| LOW | tests/cli/test_import_colors.py | 3 | CODE | |
| LOW | docs/conf.py | 3 | CODE | |
| LOW | docs/_ext/conftest.py | 7 | CODE | |
| LOW | docs/_ext/aafig.py | 15 | CODE | |
| LOW | docs/_ext/tmux_layout.py | 34 | CODE | |
| LOW | src/tmuxp/log.py | 4 | CODE | |
| LOW | src/tmuxp/util.py | 3 | CODE | |
| LOW | src/tmuxp/shell.py | 4 | CODE | |
| LOW | src/tmuxp/__init__.py | 7 | CODE | |
| LOW | src/tmuxp/__init__.py | 11 | CODE | |
| LOW | src/tmuxp/__init__.py | 11 | CODE | |
| LOW | src/tmuxp/__init__.py | 12 | CODE | |
| LOW | src/tmuxp/__init__.py | 12 | CODE | |
| LOW | src/tmuxp/__init__.py | 12 | CODE | |
| LOW | src/tmuxp/__init__.py | 12 | CODE | |
| LOW | src/tmuxp/__init__.py | 12 | CODE | |
| 63 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | docs/_ext/aafig.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | docs/_ext/tmux_layout.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/log.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/util.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/shell.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/__init__.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/types.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/exc.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/__about__.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/plugin.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/_compat.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/_internal/config_reader.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/_internal/__init__.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/_internal/types.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/_internal/private_path.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/_internal/private_path.py | 143 | __all__ = ["PrivatePath", "collapse_home_in_string"] | CODE |
| LOW | src/tmuxp/_internal/colors.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/freezer.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/finders.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/constants.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/__init__.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/importers.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/loader.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/validation.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/workspace/builder/__init__.py | 32 | __all__ = [ | CODE |
| LOW | src/tmuxp/workspace/builder/classic.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/_colors.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/_colors.py | 28 | __all__ = [ | CODE |
| LOW | src/tmuxp/cli/_output.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/import_config.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/_formatter.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/convert.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/shell.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/__init__.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/debug_info.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/edit.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/ls.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/utils.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/utils.py | 25 | __all__ = [ | CODE |
| LOW | src/tmuxp/cli/freeze.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/search.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/load.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/_progress.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tmuxp/cli/_progress.py | 902 | def update_message(self, message: str) -> None: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/workspace/test_finder.py | 425 | CODE | |
| LOW | tests/cli/test_help_examples.py | 13 | CODE | |
| LOW | tests/cli/test_help_examples.py | 42 | CODE | |
| LOW | docs/_ext/aafig.py | 166 | CODE | |
| LOW | src/tmuxp/util.py | 28 | CODE | |
| LOW | src/tmuxp/util.py | 144 | CODE | |
| LOW | src/tmuxp/shell.py | 106 | CODE | |
| LOW | src/tmuxp/shell.py | 298 | CODE | |
| LOW | src/tmuxp/workspace/freezer.py | 59 | CODE | |
| LOW | src/tmuxp/workspace/finders.py | 285 | CODE | |
| LOW | src/tmuxp/workspace/importers.py | 116 | CODE | |
| LOW | src/tmuxp/workspace/loader.py | 68 | CODE | |
| LOW | src/tmuxp/workspace/loader.py | 197 | CODE | |
| LOW | src/tmuxp/cli/_formatter.py | 172 | CODE | |
| LOW | src/tmuxp/cli/__init__.py | 281 | CODE | |
| LOW | src/tmuxp/cli/ls.py | 258 | CODE | |
| LOW | src/tmuxp/cli/ls.py | 399 | CODE | |
| LOW | src/tmuxp/cli/ls.py | 482 | CODE | |
| LOW | src/tmuxp/cli/search.py | 534 | CODE | |
| LOW | src/tmuxp/cli/search.py | 676 | CODE | |
| LOW | src/tmuxp/cli/load.py | 122 | CODE | |
| LOW | src/tmuxp/cli/load.py | 330 | CODE | |
| LOW | src/tmuxp/cli/load.py | 447 | CODE | |
| LOW | src/tmuxp/cli/_progress.py | 437 | CODE | |
| LOW | src/tmuxp/cli/_progress.py | 785 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/update-libtmux/SKILL.md | 29 | ## Step 0: Preflight | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 59 | ## Step 1: Study upstream changes | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 112 | ## Step 2: Create branch | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 120 | ## Step 3: Package commit | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 174 | ## Step 4: Code commit(s) — if needed | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 218 | ## Step 5: Test commit(s) — if needed | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 249 | ## Step 6: CHANGES commit | COMMENT |
| LOW | .claude/skills/update-libtmux/SKILL.md | 286 | ## Step 7: Push and open PR | COMMENT |
| LOW⚡ | .github/issue_template.md | 5 | ### Step 1: Provide a summary of your problem | COMMENT |
| LOW⚡ | .github/issue_template.md | 9 | ### Step 2: Provide tmuxp details | COMMENT |
| LOW⚡ | .github/issue_template.md | 14 | ### Step 3: Describe the problem: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/_ext/aafig.py | 206 | except Exception as e: | CODE |
| LOW | src/tmuxp/log.py | 161 | except Exception as e: | CODE |
| LOW | src/tmuxp/util.py | 162 | except Exception as e: | CODE |
| LOW | src/tmuxp/util.py | 184 | except Exception as e: | CODE |
| LOW | src/tmuxp/util.py | 203 | except Exception as e: | CODE |
| LOW | src/tmuxp/workspace/builder/classic.py | 70 | except Exception: | CODE |
| LOW | src/tmuxp/workspace/builder/classic.py | 532 | except Exception: | CODE |
| LOW | src/tmuxp/cli/load.py | 655 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/workspace/test_builder.py | 340 | # Print output for easier debugging if assertion fails | COMMENT |
| LOW | tests/cli/test_debug_info.py | 158 | # Set SHELL to a path under home directory | COMMENT |
| LOW | src/tmuxp/cli/search.py | 230 | # Check if prefix is a valid field alias | COMMENT |
| LOW | src/tmuxp/cli/search.py | 1301 | # Output results | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/cli/test_prompt_colors.py | 134 | # Create a path under the user's home directory | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/tmuxp/_internal/colors.py | 735 | CODE | |
| LOW | src/tmuxp/cli/load.py | 447 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/workspace/test_config.py | 101 | } | COMMENT |