claude-code-tools 0.2.6__tar.gz → 0.2.7__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.
Potentially problematic release.
This version of claude-code-tools might be problematic. Click here for more details.
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/PKG-INFO +56 -12
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/README.md +55 -11
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/__init__.py +1 -1
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/find_session.py +23 -14
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/pyproject.toml +2 -3
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/.gitignore +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/LICENSE +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/codex_bridge_mcp.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/dotenv_vault.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/env_safe.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/find_claude_session.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/find_codex_session.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/tmux_cli_controller.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/tmux_remote_controller.py +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/cc-codex-instructions.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/claude-code-chutes.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/claude-code-tmux-tutorials.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/dot-zshrc.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/find-claude-session.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/lmsh.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/reddit-post.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/tmux-cli-instructions.md +0 -0
- {claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/docs/vault-documentation.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-tools
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: Collection of tools for working with Claude Code
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -182,10 +182,28 @@ See [docs/lmsh.md](docs/lmsh.md) for details.
|
|
|
182
182
|
|
|
183
183
|
**Unified session finder** - Search across both Claude Code and Codex sessions simultaneously.
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
### Setup (Recommended)
|
|
186
|
+
|
|
187
|
+
Add this function to your shell config (.bashrc/.zshrc) for persistent directory changes:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
fs() {
|
|
191
|
+
# Check if user is asking for help
|
|
192
|
+
if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]; then
|
|
193
|
+
find-session --help
|
|
194
|
+
return
|
|
195
|
+
fi
|
|
196
|
+
# Run find-session in shell mode and evaluate the output
|
|
197
|
+
eval "$(find-session --shell "$@" | sed '/^$/d')"
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Or source the provided function:
|
|
202
|
+
```bash
|
|
203
|
+
source /path/to/claude-code-tools/scripts/fs-function.sh
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Why use the shell wrapper?** When you resume a session from a different directory, the wrapper ensures the directory change persists after the session exits. Without it, you'll be back in your original directory after exiting the session (though the session itself runs in the correct directory).
|
|
189
207
|
|
|
190
208
|
### Usage
|
|
191
209
|
|
|
@@ -215,6 +233,7 @@ fs "keywords" -n 15
|
|
|
215
233
|
- **Multi-agent search**: Searches both Claude Code and Codex sessions simultaneously
|
|
216
234
|
- **Unified display**: Single table showing sessions from all agents with agent column
|
|
217
235
|
- **Smart resume**: Automatically uses correct CLI tool (`claude` or `codex`) based on selected session
|
|
236
|
+
- **Persistent directory changes**: Using the `fs` wrapper ensures you stay in the session's directory after exit
|
|
218
237
|
- **Optional keyword search**: Keywords are optional—omit them to show all sessions
|
|
219
238
|
- **Action menu** after session selection:
|
|
220
239
|
- Resume session (default)
|
|
@@ -228,6 +247,8 @@ fs "keywords" -n 15
|
|
|
228
247
|
- Reverse chronological ordering (most recent first)
|
|
229
248
|
- Press Enter to cancel (no need for Ctrl+C)
|
|
230
249
|
|
|
250
|
+
Note: You can also use `find-session` directly, but directory changes won't persist after exiting sessions.
|
|
251
|
+
|
|
231
252
|
### Configuration (Optional)
|
|
232
253
|
|
|
233
254
|
Create `~/.config/find-session/config.json` to customize agent settings:
|
|
@@ -335,27 +356,48 @@ Search and resume Codex sessions by keywords. Usage is similar to `find-claude-s
|
|
|
335
356
|
- Extracts metadata from `session_meta` entries in Codex JSONL files
|
|
336
357
|
- Resumes sessions with `codex resume <session-id>`
|
|
337
358
|
|
|
359
|
+
### Setup (Recommended)
|
|
360
|
+
|
|
361
|
+
Add this function to your shell config (.bashrc/.zshrc) for persistent directory changes:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
fcs-codex() {
|
|
365
|
+
# Check if user is asking for help
|
|
366
|
+
if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]; then
|
|
367
|
+
find-codex-session --help
|
|
368
|
+
return
|
|
369
|
+
fi
|
|
370
|
+
# Run find-codex-session in shell mode and evaluate the output
|
|
371
|
+
eval "$(find-codex-session --shell "$@" | sed '/^$/d')"
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Or source the provided function:
|
|
376
|
+
```bash
|
|
377
|
+
source /path/to/claude-code-tools/scripts/fcs-codex-function.sh
|
|
378
|
+
```
|
|
379
|
+
|
|
338
380
|
### Usage
|
|
339
381
|
|
|
340
382
|
```bash
|
|
341
383
|
# Search in current project only (default)
|
|
342
|
-
|
|
384
|
+
fcs-codex "keyword1,keyword2"
|
|
343
385
|
|
|
344
386
|
# Show all sessions in current project (no keyword filtering)
|
|
345
|
-
|
|
387
|
+
fcs-codex
|
|
346
388
|
|
|
347
389
|
# Search across all projects
|
|
348
|
-
|
|
349
|
-
|
|
390
|
+
fcs-codex "keywords" -g
|
|
391
|
+
fcs-codex "keywords" --global
|
|
350
392
|
|
|
351
393
|
# Show all sessions across all projects
|
|
352
|
-
|
|
394
|
+
fcs-codex -g
|
|
353
395
|
|
|
354
396
|
# Limit number of results
|
|
355
|
-
|
|
397
|
+
fcs-codex "keywords" -n 5
|
|
356
398
|
|
|
357
399
|
# Custom Codex home directory
|
|
358
|
-
|
|
400
|
+
fcs-codex "keywords" --codex-home /custom/path
|
|
359
401
|
```
|
|
360
402
|
|
|
361
403
|
### Features
|
|
@@ -375,6 +417,8 @@ find-codex-session "keywords" --codex-home /custom/path
|
|
|
375
417
|
- Multi-line preview wrapping for better readability
|
|
376
418
|
- Press Enter to cancel (no need for Ctrl+C)
|
|
377
419
|
|
|
420
|
+
Note: You can also use `find-codex-session` directly, but directory changes won't persist after exiting Codex.
|
|
421
|
+
|
|
378
422
|
Looks like this --
|
|
379
423
|
|
|
380
424
|

|
|
@@ -168,10 +168,28 @@ See [docs/lmsh.md](docs/lmsh.md) for details.
|
|
|
168
168
|
|
|
169
169
|
**Unified session finder** - Search across both Claude Code and Codex sessions simultaneously.
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
171
|
+
### Setup (Recommended)
|
|
172
|
+
|
|
173
|
+
Add this function to your shell config (.bashrc/.zshrc) for persistent directory changes:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
fs() {
|
|
177
|
+
# Check if user is asking for help
|
|
178
|
+
if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]; then
|
|
179
|
+
find-session --help
|
|
180
|
+
return
|
|
181
|
+
fi
|
|
182
|
+
# Run find-session in shell mode and evaluate the output
|
|
183
|
+
eval "$(find-session --shell "$@" | sed '/^$/d')"
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Or source the provided function:
|
|
188
|
+
```bash
|
|
189
|
+
source /path/to/claude-code-tools/scripts/fs-function.sh
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Why use the shell wrapper?** When you resume a session from a different directory, the wrapper ensures the directory change persists after the session exits. Without it, you'll be back in your original directory after exiting the session (though the session itself runs in the correct directory).
|
|
175
193
|
|
|
176
194
|
### Usage
|
|
177
195
|
|
|
@@ -201,6 +219,7 @@ fs "keywords" -n 15
|
|
|
201
219
|
- **Multi-agent search**: Searches both Claude Code and Codex sessions simultaneously
|
|
202
220
|
- **Unified display**: Single table showing sessions from all agents with agent column
|
|
203
221
|
- **Smart resume**: Automatically uses correct CLI tool (`claude` or `codex`) based on selected session
|
|
222
|
+
- **Persistent directory changes**: Using the `fs` wrapper ensures you stay in the session's directory after exit
|
|
204
223
|
- **Optional keyword search**: Keywords are optional—omit them to show all sessions
|
|
205
224
|
- **Action menu** after session selection:
|
|
206
225
|
- Resume session (default)
|
|
@@ -214,6 +233,8 @@ fs "keywords" -n 15
|
|
|
214
233
|
- Reverse chronological ordering (most recent first)
|
|
215
234
|
- Press Enter to cancel (no need for Ctrl+C)
|
|
216
235
|
|
|
236
|
+
Note: You can also use `find-session` directly, but directory changes won't persist after exiting sessions.
|
|
237
|
+
|
|
217
238
|
### Configuration (Optional)
|
|
218
239
|
|
|
219
240
|
Create `~/.config/find-session/config.json` to customize agent settings:
|
|
@@ -321,27 +342,48 @@ Search and resume Codex sessions by keywords. Usage is similar to `find-claude-s
|
|
|
321
342
|
- Extracts metadata from `session_meta` entries in Codex JSONL files
|
|
322
343
|
- Resumes sessions with `codex resume <session-id>`
|
|
323
344
|
|
|
345
|
+
### Setup (Recommended)
|
|
346
|
+
|
|
347
|
+
Add this function to your shell config (.bashrc/.zshrc) for persistent directory changes:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
fcs-codex() {
|
|
351
|
+
# Check if user is asking for help
|
|
352
|
+
if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]; then
|
|
353
|
+
find-codex-session --help
|
|
354
|
+
return
|
|
355
|
+
fi
|
|
356
|
+
# Run find-codex-session in shell mode and evaluate the output
|
|
357
|
+
eval "$(find-codex-session --shell "$@" | sed '/^$/d')"
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Or source the provided function:
|
|
362
|
+
```bash
|
|
363
|
+
source /path/to/claude-code-tools/scripts/fcs-codex-function.sh
|
|
364
|
+
```
|
|
365
|
+
|
|
324
366
|
### Usage
|
|
325
367
|
|
|
326
368
|
```bash
|
|
327
369
|
# Search in current project only (default)
|
|
328
|
-
|
|
370
|
+
fcs-codex "keyword1,keyword2"
|
|
329
371
|
|
|
330
372
|
# Show all sessions in current project (no keyword filtering)
|
|
331
|
-
|
|
373
|
+
fcs-codex
|
|
332
374
|
|
|
333
375
|
# Search across all projects
|
|
334
|
-
|
|
335
|
-
|
|
376
|
+
fcs-codex "keywords" -g
|
|
377
|
+
fcs-codex "keywords" --global
|
|
336
378
|
|
|
337
379
|
# Show all sessions across all projects
|
|
338
|
-
|
|
380
|
+
fcs-codex -g
|
|
339
381
|
|
|
340
382
|
# Limit number of results
|
|
341
|
-
|
|
383
|
+
fcs-codex "keywords" -n 5
|
|
342
384
|
|
|
343
385
|
# Custom Codex home directory
|
|
344
|
-
|
|
386
|
+
fcs-codex "keywords" --codex-home /custom/path
|
|
345
387
|
```
|
|
346
388
|
|
|
347
389
|
### Features
|
|
@@ -361,6 +403,8 @@ find-codex-session "keywords" --codex-home /custom/path
|
|
|
361
403
|
- Multi-line preview wrapping for better readability
|
|
362
404
|
- Press Enter to cancel (no need for Ctrl+C)
|
|
363
405
|
|
|
406
|
+
Note: You can also use `find-codex-session` directly, but directory changes won't persist after exiting Codex.
|
|
407
|
+
|
|
364
408
|
Looks like this --
|
|
365
409
|
|
|
366
410
|

|
|
@@ -262,21 +262,30 @@ def display_interactive_ui(
|
|
|
262
262
|
ui_console.print("[red]Invalid choice. Please try again.[/red]")
|
|
263
263
|
|
|
264
264
|
|
|
265
|
-
def show_action_menu(session: dict) -> Optional[str]:
|
|
265
|
+
def show_action_menu(session: dict, stderr_mode: bool = False) -> Optional[str]:
|
|
266
266
|
"""Show action menu for selected session."""
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
print(f"
|
|
267
|
+
output = sys.stderr if stderr_mode else sys.stdout
|
|
268
|
+
|
|
269
|
+
print(f"\n=== Session: {session['session_id'][:16]}... ===", file=output)
|
|
270
|
+
print(f"Agent: {session['agent_display']}", file=output)
|
|
271
|
+
print(f"Project: {session['project']}", file=output)
|
|
270
272
|
if session.get("branch"):
|
|
271
|
-
print(f"Branch: {session['branch']}")
|
|
272
|
-
print(f"\nWhat would you like to do?")
|
|
273
|
-
print("1. Resume session (default)")
|
|
274
|
-
print("2. Show session file path")
|
|
275
|
-
print("3. Copy session file to file (*.jsonl) or directory")
|
|
276
|
-
print()
|
|
273
|
+
print(f"Branch: {session['branch']}", file=output)
|
|
274
|
+
print(f"\nWhat would you like to do?", file=output)
|
|
275
|
+
print("1. Resume session (default)", file=output)
|
|
276
|
+
print("2. Show session file path", file=output)
|
|
277
|
+
print("3. Copy session file to file (*.jsonl) or directory", file=output)
|
|
278
|
+
print(file=output)
|
|
277
279
|
|
|
278
280
|
try:
|
|
279
|
-
|
|
281
|
+
if stderr_mode:
|
|
282
|
+
# In stderr mode, prompt to stderr so it's visible
|
|
283
|
+
sys.stderr.write("Enter choice [1-3] (or Enter for 1): ")
|
|
284
|
+
sys.stderr.flush()
|
|
285
|
+
choice = sys.stdin.readline().strip()
|
|
286
|
+
else:
|
|
287
|
+
choice = input("Enter choice [1-3] (or Enter for 1): ").strip()
|
|
288
|
+
|
|
280
289
|
if not choice or choice == "1":
|
|
281
290
|
return "resume"
|
|
282
291
|
elif choice == "2":
|
|
@@ -284,10 +293,10 @@ def show_action_menu(session: dict) -> Optional[str]:
|
|
|
284
293
|
elif choice == "3":
|
|
285
294
|
return "copy"
|
|
286
295
|
else:
|
|
287
|
-
print("Invalid choice.")
|
|
296
|
+
print("Invalid choice.", file=output)
|
|
288
297
|
return None
|
|
289
298
|
except KeyboardInterrupt:
|
|
290
|
-
print("\nCancelled.")
|
|
299
|
+
print("\nCancelled.", file=output)
|
|
291
300
|
return None
|
|
292
301
|
|
|
293
302
|
|
|
@@ -421,7 +430,7 @@ Examples:
|
|
|
421
430
|
)
|
|
422
431
|
if selected_session:
|
|
423
432
|
# Show action menu
|
|
424
|
-
action = show_action_menu(selected_session)
|
|
433
|
+
action = show_action_menu(selected_session, stderr_mode=args.shell)
|
|
425
434
|
if action:
|
|
426
435
|
handle_action(selected_session, action, shell_mode=args.shell)
|
|
427
436
|
else:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "claude-code-tools"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.7"
|
|
4
4
|
description = "Collection of tools for working with Claude Code"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -18,7 +18,6 @@ dev = ["commitizen>=3.0.0"]
|
|
|
18
18
|
find-claude-session = "claude_code_tools.find_claude_session:main"
|
|
19
19
|
find-codex-session = "claude_code_tools.find_codex_session:main"
|
|
20
20
|
find-session = "claude_code_tools.find_session:main"
|
|
21
|
-
fs = "claude_code_tools.find_session:main"
|
|
22
21
|
vault = "claude_code_tools.dotenv_vault:main"
|
|
23
22
|
tmux-cli = "claude_code_tools.tmux_cli_controller:main"
|
|
24
23
|
env-safe = "claude_code_tools.env_safe:main"
|
|
@@ -45,7 +44,7 @@ exclude = [
|
|
|
45
44
|
|
|
46
45
|
[tool.commitizen]
|
|
47
46
|
name = "cz_conventional_commits"
|
|
48
|
-
version = "0.2.
|
|
47
|
+
version = "0.2.7"
|
|
49
48
|
tag_format = "v$version"
|
|
50
49
|
version_files = [
|
|
51
50
|
"pyproject.toml:version",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/find_claude_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/tmux_cli_controller.py
RENAMED
|
File without changes
|
{claude_code_tools-0.2.6 → claude_code_tools-0.2.7}/claude_code_tools/tmux_remote_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|