claude-code-tools 1.23.1__tar.gz → 1.24.0__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.
Files changed (117) hide show
  1. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/PKG-INFO +1 -1
  2. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/__init__.py +1 -1
  3. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/aichat.py +48 -1
  4. claude_code_tools-1.24.0/claude_code_tools/move_account.py +721 -0
  5. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_claude_to_codex.py +47 -2
  6. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/pyproject.toml +2 -2
  7. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/.gitignore +0 -0
  8. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/LICENSE +0 -0
  9. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/README.md +0 -0
  10. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/action_rpc.py +0 -0
  11. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/__init__.py +0 -0
  12. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/backends.py +0 -0
  13. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/cli.py +0 -0
  14. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/config.py +0 -0
  15. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/convert.py +0 -0
  16. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/discord_bot.py +0 -0
  17. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/locking.py +0 -0
  18. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/paths.py +0 -0
  19. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/registry.py +0 -0
  20. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/session.py +0 -0
  21. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/store.py +0 -0
  22. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/tmux.py +0 -0
  23. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/trust.py +0 -0
  24. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/claude_continue.py +0 -0
  25. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_continue.py +0 -0
  26. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server.py +0 -0
  27. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_cli.py +0 -0
  28. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_fingerprint.py +0 -0
  29. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_generation.py +0 -0
  30. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_legacy.py +0 -0
  31. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_models.py +0 -0
  32. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_process.py +0 -0
  33. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_reservation.py +0 -0
  34. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_retry.py +0 -0
  35. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_reuse.py +0 -0
  36. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_state.py +0 -0
  37. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_supervisor.py +0 -0
  38. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_worker.py +0 -0
  39. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/config.py +0 -0
  40. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/csv2gsheet.py +0 -0
  41. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/delete_session.py +0 -0
  42. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/dotenv_vault.py +0 -0
  43. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/env_safe.py +0 -0
  44. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_all.py +0 -0
  45. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_claude_session.py +0 -0
  46. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_codex_session.py +0 -0
  47. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_session.py +0 -0
  48. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_claude_session.py +0 -0
  49. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_codex_session.py +0 -0
  50. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_original_session.py +0 -0
  51. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_session.py +0 -0
  52. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_trimmed_sessions.py +0 -0
  53. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/fix_session.py +0 -0
  54. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/gdoc2docx.py +0 -0
  55. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/gdoc2md.py +0 -0
  56. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/gsheet2csv.py +0 -0
  57. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/md2gdoc.py +0 -0
  58. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/__init__.py +0 -0
  59. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/cli.py +0 -0
  60. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/hooks.py +0 -0
  61. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/models.py +0 -0
  62. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/prompt_detect.py +0 -0
  63. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/store.py +0 -0
  64. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/watcher.py +0 -0
  65. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/node_menu_ui.py +0 -0
  66. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_claude_noise.py +0 -0
  67. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_codex_flatten.py +0 -0
  68. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_codex_to_claude.py +0 -0
  69. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_render.py +0 -0
  70. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_service.py +0 -0
  71. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/resolve_session.py +0 -0
  72. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/resolve_session_names.py +0 -0
  73. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/resolve_session_render.py +0 -0
  74. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/search_index.py +0 -0
  75. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_lineage.py +0 -0
  76. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_menu.py +0 -0
  77. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_menu_cli.py +0 -0
  78. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_resolution.py +0 -0
  79. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_utils.py +0 -0
  80. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/smart_trim.py +0 -0
  81. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/smart_trim_core.py +0 -0
  82. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/tmux_cli_controller.py +0 -0
  83. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/tmux_execution_helpers.py +0 -0
  84. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/tmux_remote_controller.py +0 -0
  85. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_in_place.py +0 -0
  86. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_session.py +0 -0
  87. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_session_claude.py +0 -0
  88. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_session_codex.py +0 -0
  89. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli.py +0 -0
  90. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_contract.py +0 -0
  91. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_formatting.py +0 -0
  92. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_identity_policy.py +0 -0
  93. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_manifest.py +0 -0
  94. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_projection.py +0 -0
  95. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_rendering.py +0 -0
  96. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_snapshots.py +0 -0
  97. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_store_backends.py +0 -0
  98. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_processes.py +0 -0
  99. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_runs.py +0 -0
  100. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_store_io.py +0 -0
  101. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_validation.py +0 -0
  102. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/agent-tunnel-spec.md +0 -0
  103. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/claude-code-tmux-tutorials.md +0 -0
  104. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/dot-zshrc.md +0 -0
  105. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/find-claude-session.md +0 -0
  106. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/intercom-spec.md +0 -0
  107. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/lmsh.md +0 -0
  108. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/local-llm-setup.md +0 -0
  109. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/msg-phase-a-plan.md +0 -0
  110. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/msg-plan-v2.md +0 -0
  111. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/tmux-cli-instructions.md +0 -0
  112. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/vault-documentation.md +0 -0
  113. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/hatch_build.py +0 -0
  114. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/action_config.js +0 -0
  115. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/menu.js +0 -0
  116. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/package-lock.json +0 -0
  117. {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/package.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-tools
3
- Version: 1.23.1
3
+ Version: 1.24.0
4
4
  Summary: Collection of tools for working with Claude Code
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.11
@@ -1,3 +1,3 @@
1
1
  """Claude Code Tools - Collection of utilities for Claude Code."""
2
2
 
3
- __version__ = "1.23.1"
3
+ __version__ = "1.24.0"
@@ -226,9 +226,15 @@ def main(ctx, claude_home, codex_home):
226
226
  # 'port' is also skipped: its contract requires the detected
227
227
  # direction line to be the FIRST output, so the indexer's progress
228
228
  # bar must never print before it.
229
+ # 'trim-in-place' is skipped because it never queries the index
230
+ # (it resolves a path directly) and it runs under the >trim hook's
231
+ # time budget: indexing ~13.6k session files took 2-30s depending
232
+ # on the backlog, against a ~0.3s trim, which is what made >trim
233
+ # time out. Trimming also rewrites the file, so indexing its
234
+ # pre-trim content first is wasted work twice over.
229
235
  skip_auto_index_cmds = ['build-index', 'clear-index', 'index-stats']
230
236
  should_skip = (
231
- ctx.invoked_subcommand in ('port', 'resolve')
237
+ ctx.invoked_subcommand in ('port', 'resolve', 'trim-in-place')
232
238
  or ctx.invoked_subcommand in skip_auto_index_cmds
233
239
  or any(cmd in sys.argv for cmd in skip_auto_index_cmds)
234
240
  )
@@ -1639,6 +1645,47 @@ def move_session(
1639
1645
  console.print(f" [cyan]{resume_cmd}[/cyan]")
1640
1646
 
1641
1647
 
1648
+ @main.command("move-account")
1649
+ @click.argument("session", required=True)
1650
+ @click.option("--to", "to_home", required=True,
1651
+ help="Target config dir (account), e.g. ~/.claude or ~/.codex")
1652
+ @click.option("--from", "from_home", default=None,
1653
+ help="Source config dir (default: search all local homes — "
1654
+ "env-var home, ~/.claude / ~/.codex, and "
1655
+ "~/.claude-* / ~/.codex-* siblings)")
1656
+ @click.option("--agent",
1657
+ type=click.Choice(["claude", "codex"], case_sensitive=False),
1658
+ default=None,
1659
+ help="Agent type (auto-detected from the config dirs "
1660
+ "if not specified)")
1661
+ @click.option("--keep", is_flag=True,
1662
+ help="Copy instead of move (leave source account untouched)")
1663
+ def move_account(session, to_home, from_home, agent, keep):
1664
+ """Move a session to a different account (config dir).
1665
+
1666
+ Accounts are config dirs like ~/.claude vs ~/.claude-rja (or
1667
+ ~/.codex vs ~/.codex-rja), normally selected via CLAUDE_CONFIG_DIR
1668
+ / CODEX_HOME. The session stays in the same project. Claude moves
1669
+ relocate the transcript and its sidecar dir (subagents,
1670
+ tool-results, workflows); Codex moves relocate the rollout file
1671
+ and its thread-name entries in session_index.jsonl.
1672
+
1673
+ SESSION may be a session UUID (full or partial), a Claude session
1674
+ name assigned with /rename, or a Codex thread name.
1675
+
1676
+ \b
1677
+ Examples:
1678
+ aichat move-account cowrite-fable-21jul2026 \\
1679
+ --from ~/.claude-rja --to ~/.claude
1680
+ aichat move-account af574e84 --to ~/.claude-rja --keep
1681
+ aichat move-account my-codex-thread \\
1682
+ --from ~/.codex-rja --to ~/.codex
1683
+ """
1684
+ from claude_code_tools.move_account import run_move_account
1685
+
1686
+ run_move_account(session, to_home, from_home, keep, agent)
1687
+
1688
+
1642
1689
  def _protect_surrogateescape_bytes(
1643
1690
  line: str,
1644
1691
  *,