deepctl 0.3.2__tar.gz → 0.4.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepctl
3
- Version: 0.3.2
3
+ Version: 0.4.0
4
4
  Summary: Official Deepgram CLI for speech recognition and audio intelligence
5
5
  Author-email: Deepgram <devrel@deepgram.com>
6
6
  Maintainer-email: Deepgram <devrel@deepgram.com>
@@ -27,8 +27,8 @@ Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  Requires-Dist: click>=8.0.0
29
29
  Requires-Dist: deepgram-sdk<8,>=7.7.0
30
- Requires-Dist: deepctl-core>=0.2.18
31
- Requires-Dist: deepctl-cmd-login>=0.1.19
30
+ Requires-Dist: deepctl-core>=0.3.0
31
+ Requires-Dist: deepctl-cmd-login>=0.2.0
32
32
  Requires-Dist: deepctl-cmd-projects>=0.2.0
33
33
  Requires-Dist: deepctl-cmd-transcribe>=0.1.12
34
34
  Requires-Dist: deepctl-cmd-usage>=0.2.1
@@ -39,14 +39,14 @@ Requires-Dist: deepctl-cmd-debug-browser>=0.1.12
39
39
  Requires-Dist: deepctl-cmd-debug-network>=0.1.12
40
40
  Requires-Dist: deepctl-cmd-debug-audio>=0.1.14
41
41
  Requires-Dist: deepctl-cmd-debug-probe>=0.0.2
42
- Requires-Dist: deepctl-cmd-debug-toolkit>=0.1.0
42
+ Requires-Dist: deepctl-cmd-debug-toolkit>=0.2.0
43
43
  Requires-Dist: deepctl-cmd-ffprobe>=0.0.3
44
44
  Requires-Dist: deepctl-cmd-update>=0.2.7
45
- Requires-Dist: deepctl-cmd-plugin>=0.1.13
46
- Requires-Dist: deepctl-cmd-skills>=0.0.8
47
- Requires-Dist: deepctl-cmd-init>=0.0.4
45
+ Requires-Dist: deepctl-cmd-plugin>=0.1.14
46
+ Requires-Dist: deepctl-cmd-skills>=0.0.9
47
+ Requires-Dist: deepctl-cmd-init>=0.1.0
48
48
  Requires-Dist: deepctl-cmd-models>=0.1.1
49
- Requires-Dist: deepctl-cmd-speak>=0.0.4
49
+ Requires-Dist: deepctl-cmd-speak>=0.0.5
50
50
  Requires-Dist: deepctl-cmd-keys>=0.1.0
51
51
  Requires-Dist: deepctl-cmd-read>=0.1.0
52
52
  Requires-Dist: deepctl-cmd-listen>=0.0.14
@@ -268,8 +268,15 @@ container so it is directly playable. Pass an `aura-*` model to use the Speak v1
268
268
  batch REST API instead, which supports containerized formats like MP3.
269
269
 
270
270
  ```bash
271
+ # Quickstart — synthesize and hear it straight away
272
+ dg speak "Hello from Deepgram" --play
273
+
274
+ # Discover voices
275
+ dg speak --list-voices
276
+
271
277
  # Flux TTS (v2, WebSocket streaming) — the default
272
278
  dg speak "Hello from Flux" -o hello.wav
279
+ dg speak "Save it and play it" -o hello.wav --play
273
280
  # Piped audio is a streaming WAV; -loglevel error hides ffmpeg's cosmetic
274
281
  # end-of-stream notice (the audio is complete).
275
282
  dg speak "Hello from Flux" | ffplay -loglevel error -nodisp -autoexit -
@@ -288,6 +295,15 @@ echo "Hello" | dg speak -o greeting.mp3 -m aura-2-asteria-en
288
295
  dg speak "Hola, bienvenido a Deepgram" -o hola.mp3 -m aura-2-selena-es
289
296
  ```
290
297
 
298
+ `--play` uses the first available system player (`ffplay`, `afplay`, `paplay`,
299
+ or `aplay`); install `ffmpeg` if none is present. With the Flux default the
300
+ audio is streamed into the player as it arrives, so playback starts at
301
+ first-audio latency rather than after the whole utterance. Each fallback
302
+ player is checked against the requested format before the API call: `aplay`
303
+ plays PCM/WAV only and `paplay` adds FLAC and Opus but not MP3 or AAC, while
304
+ `ffplay` and `afplay` (macOS) play every format. Playing Aura's default MP3 on
305
+ Linux needs `ffplay` or `--encoding flac`.
306
+
291
307
  ### Text Intelligence
292
308
 
293
309
  Analyze text for sentiment, summaries, topics, and intents.
@@ -359,14 +375,42 @@ Add to your editor's MCP config:
359
375
 
360
376
  ### AI Tool Integration
361
377
 
362
- Automatically detect and configure AI coding assistants with Deepgram skills.
378
+ Install the Deepgram skills as folders in each AI coding assistant's skills folder.
363
379
 
364
380
  ```bash
365
381
  dg skills status # Detect AI tools
366
382
  dg skills setup # Interactive setup wizard
367
383
  dg skills install --all # Install for all detected tools
384
+ dg skills update # Replace the folders deepctl installed
385
+ dg skills remove --all # Delete the folders deepctl installed
368
386
  ```
369
387
 
388
+ | Tool | Skills folder |
389
+ |---|---|
390
+ | Claude Code | `~/.claude/skills` |
391
+ | OpenAI Codex | `~/.agents/skills` |
392
+ | Gemini CLI | `~/.gemini/skills` |
393
+ | Cursor | `~/.cursor/skills` |
394
+ | OpenCode | `~/.config/opencode/skills` |
395
+ | Cline | `~/.cline/skills` |
396
+ | Amazon Q Developer, Aider | none: deepctl prints where to get the skills |
397
+
398
+ deepctl replaces or deletes a folder only if skills.json records it for that tool, it is a real folder directly in that tool's skills folder, it holds deepctl's `.deepctl-skill` marker, and its contents are exactly what deepctl installed. So folders from `npx skills add`, and symlinked skill folders, are left alone.
399
+
400
+ These commands abort if the filesystem cannot provide locking or no-replace directory moves. Installed skill folders and skills.json stay as they were, though the tool's skills folder and `~/.deepctl/skills/skills.json.lock` may already have been created. While another `dg skills`, `dg login` or `dg plugin` command is changing skills, the next one waits up to 30 seconds for it to finish. If another of these commands removes or changes a tool's skills while `dg skills update` or a plugin refresh is running, the refresh leaves that tool as the other command left it and prints a warning. That holds even for the same ref, because a branch such as `main` can move between two downloads. `dg skills update` run with `--ref` still applies its ref to a tool another command updated, but does not reinstall skills another command removed.
401
+
402
+ `dg login` offers to install the skills, and `dg plugin install`, `update` and `remove` refresh the installed ones, through the same path as `dg skills install` and `update`. A skills installation failure prints a warning on stderr and does not change those commands' exit codes. Ctrl-C still cancels the command.
403
+
404
+ If you edit a deepctl folder, or add a file or link to it, deepctl leaves it alone: `update` stops without changing anything and `remove` won't delete it. To get updates again, rename or move your edited copy, or delete it yourself. Opening a skill folder in Finder or Explorer can add `.DS_Store`, `Thumbs.db` or `desktop.ini`, which counts as an edit.
405
+
406
+ #### Upgrading from deepctl 0.2.16 through 0.3.x
407
+
408
+ On macOS and Linux, once `dg skills install` or `update` (or `dg login`, or `dg plugin install`, `update` or `remove`) has installed a tool's skill folders, deepctl removes the files older deepctl wrote for that tool, and prints which ones on stderr: `~/.claude/commands/deepgram/*.md`, `~/.cursor/rules/deepctl.mdc`, `~/.cline/rules/deepctl.md`, and the section between the `<!-- BEGIN deepctl CLI Reference` and `<!-- END deepctl CLI Reference -->` lines in `~/.codex/instructions.md`, `~/.gemini/GEMINI.md` and `~/.opencode/agents.md`. In those three files, everything between the two marker lines is removed, including anything you changed there; the rest of the file is kept, apart from the blank line deepctl added before its section. Deepctl keeps the original file next to it as `.deepctl-kept-v03-*`; compare it for any late write from an open editor, then delete it if you do not need it.
409
+
410
+ deepctl removes a file only if its content is exactly a deepgram/skills version that older deepctl copied, even if you made that copy yourself. It keeps a file you edited, a link, a file in a folder reached through a link (such as a dotfiles `~/.claude`), and a section that is incomplete, repeated or in a read-only or locked file, and warns once about each file 0.3.x recorded. An I/O failure, such as permission denied, is retried on the next install or update, with a warning for files 0.3.x recorded. Amazon Q Developer and Aider files (`~/.amazonq/rules/deepctl.md`, `~/.deepctl/skills/deepctl-conventions.md`) are kept, because those tools have no skill folders; if you delete Aider's, also remove its entry under `read:` in `~/.aider.conf.yml`.
411
+
412
+ On Windows, deepctl leaves this 0.3.x content untouched because a parent folder could become a junction during cleanup; remove it yourself if you do not need it. While deepctl works on a file on macOS or Linux, it moves it to `.deepctl-v03-<name>` in the same folder. If deepctl is interrupted, the next install or update puts the file back and says so. If both the file and its `.deepctl-v03-<name>` are there, as after you saved the file while deepctl was editing it, deepctl changes neither and names both on each run until you compare them and delete the `.deepctl-v03-<name>` copy; it does the same if `.deepctl-v03-<name>` is a link or folder deepctl didn't make. A `.deepctl-v03-*.tmp` file is an unused draft; delete it.
413
+
370
414
  ### Starter Apps
371
415
 
372
416
  Scaffold a new project from Deepgram templates.
@@ -184,8 +184,15 @@ container so it is directly playable. Pass an `aura-*` model to use the Speak v1
184
184
  batch REST API instead, which supports containerized formats like MP3.
185
185
 
186
186
  ```bash
187
+ # Quickstart — synthesize and hear it straight away
188
+ dg speak "Hello from Deepgram" --play
189
+
190
+ # Discover voices
191
+ dg speak --list-voices
192
+
187
193
  # Flux TTS (v2, WebSocket streaming) — the default
188
194
  dg speak "Hello from Flux" -o hello.wav
195
+ dg speak "Save it and play it" -o hello.wav --play
189
196
  # Piped audio is a streaming WAV; -loglevel error hides ffmpeg's cosmetic
190
197
  # end-of-stream notice (the audio is complete).
191
198
  dg speak "Hello from Flux" | ffplay -loglevel error -nodisp -autoexit -
@@ -204,6 +211,15 @@ echo "Hello" | dg speak -o greeting.mp3 -m aura-2-asteria-en
204
211
  dg speak "Hola, bienvenido a Deepgram" -o hola.mp3 -m aura-2-selena-es
205
212
  ```
206
213
 
214
+ `--play` uses the first available system player (`ffplay`, `afplay`, `paplay`,
215
+ or `aplay`); install `ffmpeg` if none is present. With the Flux default the
216
+ audio is streamed into the player as it arrives, so playback starts at
217
+ first-audio latency rather than after the whole utterance. Each fallback
218
+ player is checked against the requested format before the API call: `aplay`
219
+ plays PCM/WAV only and `paplay` adds FLAC and Opus but not MP3 or AAC, while
220
+ `ffplay` and `afplay` (macOS) play every format. Playing Aura's default MP3 on
221
+ Linux needs `ffplay` or `--encoding flac`.
222
+
207
223
  ### Text Intelligence
208
224
 
209
225
  Analyze text for sentiment, summaries, topics, and intents.
@@ -275,14 +291,42 @@ Add to your editor's MCP config:
275
291
 
276
292
  ### AI Tool Integration
277
293
 
278
- Automatically detect and configure AI coding assistants with Deepgram skills.
294
+ Install the Deepgram skills as folders in each AI coding assistant's skills folder.
279
295
 
280
296
  ```bash
281
297
  dg skills status # Detect AI tools
282
298
  dg skills setup # Interactive setup wizard
283
299
  dg skills install --all # Install for all detected tools
300
+ dg skills update # Replace the folders deepctl installed
301
+ dg skills remove --all # Delete the folders deepctl installed
284
302
  ```
285
303
 
304
+ | Tool | Skills folder |
305
+ |---|---|
306
+ | Claude Code | `~/.claude/skills` |
307
+ | OpenAI Codex | `~/.agents/skills` |
308
+ | Gemini CLI | `~/.gemini/skills` |
309
+ | Cursor | `~/.cursor/skills` |
310
+ | OpenCode | `~/.config/opencode/skills` |
311
+ | Cline | `~/.cline/skills` |
312
+ | Amazon Q Developer, Aider | none: deepctl prints where to get the skills |
313
+
314
+ deepctl replaces or deletes a folder only if skills.json records it for that tool, it is a real folder directly in that tool's skills folder, it holds deepctl's `.deepctl-skill` marker, and its contents are exactly what deepctl installed. So folders from `npx skills add`, and symlinked skill folders, are left alone.
315
+
316
+ These commands abort if the filesystem cannot provide locking or no-replace directory moves. Installed skill folders and skills.json stay as they were, though the tool's skills folder and `~/.deepctl/skills/skills.json.lock` may already have been created. While another `dg skills`, `dg login` or `dg plugin` command is changing skills, the next one waits up to 30 seconds for it to finish. If another of these commands removes or changes a tool's skills while `dg skills update` or a plugin refresh is running, the refresh leaves that tool as the other command left it and prints a warning. That holds even for the same ref, because a branch such as `main` can move between two downloads. `dg skills update` run with `--ref` still applies its ref to a tool another command updated, but does not reinstall skills another command removed.
317
+
318
+ `dg login` offers to install the skills, and `dg plugin install`, `update` and `remove` refresh the installed ones, through the same path as `dg skills install` and `update`. A skills installation failure prints a warning on stderr and does not change those commands' exit codes. Ctrl-C still cancels the command.
319
+
320
+ If you edit a deepctl folder, or add a file or link to it, deepctl leaves it alone: `update` stops without changing anything and `remove` won't delete it. To get updates again, rename or move your edited copy, or delete it yourself. Opening a skill folder in Finder or Explorer can add `.DS_Store`, `Thumbs.db` or `desktop.ini`, which counts as an edit.
321
+
322
+ #### Upgrading from deepctl 0.2.16 through 0.3.x
323
+
324
+ On macOS and Linux, once `dg skills install` or `update` (or `dg login`, or `dg plugin install`, `update` or `remove`) has installed a tool's skill folders, deepctl removes the files older deepctl wrote for that tool, and prints which ones on stderr: `~/.claude/commands/deepgram/*.md`, `~/.cursor/rules/deepctl.mdc`, `~/.cline/rules/deepctl.md`, and the section between the `<!-- BEGIN deepctl CLI Reference` and `<!-- END deepctl CLI Reference -->` lines in `~/.codex/instructions.md`, `~/.gemini/GEMINI.md` and `~/.opencode/agents.md`. In those three files, everything between the two marker lines is removed, including anything you changed there; the rest of the file is kept, apart from the blank line deepctl added before its section. Deepctl keeps the original file next to it as `.deepctl-kept-v03-*`; compare it for any late write from an open editor, then delete it if you do not need it.
325
+
326
+ deepctl removes a file only if its content is exactly a deepgram/skills version that older deepctl copied, even if you made that copy yourself. It keeps a file you edited, a link, a file in a folder reached through a link (such as a dotfiles `~/.claude`), and a section that is incomplete, repeated or in a read-only or locked file, and warns once about each file 0.3.x recorded. An I/O failure, such as permission denied, is retried on the next install or update, with a warning for files 0.3.x recorded. Amazon Q Developer and Aider files (`~/.amazonq/rules/deepctl.md`, `~/.deepctl/skills/deepctl-conventions.md`) are kept, because those tools have no skill folders; if you delete Aider's, also remove its entry under `read:` in `~/.aider.conf.yml`.
327
+
328
+ On Windows, deepctl leaves this 0.3.x content untouched because a parent folder could become a junction during cleanup; remove it yourself if you do not need it. While deepctl works on a file on macOS or Linux, it moves it to `.deepctl-v03-<name>` in the same folder. If deepctl is interrupted, the next install or update puts the file back and says so. If both the file and its `.deepctl-v03-<name>` are there, as after you saved the file while deepctl was editing it, deepctl changes neither and names both on each run until you compare them and delete the `.deepctl-v03-<name>` copy; it does the same if `.deepctl-v03-<name>` is a link or folder deepctl didn't make. A `.deepctl-v03-*.tmp` file is an unused draft; delete it.
329
+
286
330
  ### Starter Apps
287
331
 
288
332
  Scaffold a new project from Deepgram templates.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "deepctl"
7
- version = "0.3.2" # x-release-please-version
7
+ version = "0.4.0" # x-release-please-version
8
8
  description = "Official Deepgram CLI for speech recognition and audio intelligence"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -35,8 +35,8 @@ requires-python = ">=3.10"
35
35
  dependencies = [
36
36
  "click>=8.0.0",
37
37
  "deepgram-sdk>=7.7.0,<8",
38
- "deepctl-core>=0.2.18",
39
- "deepctl-cmd-login>=0.1.19",
38
+ "deepctl-core>=0.3.0",
39
+ "deepctl-cmd-login>=0.2.0",
40
40
  "deepctl-cmd-projects>=0.2.0",
41
41
  "deepctl-cmd-transcribe>=0.1.12",
42
42
  "deepctl-cmd-usage>=0.2.1",
@@ -47,14 +47,14 @@ dependencies = [
47
47
  "deepctl-cmd-debug-network>=0.1.12",
48
48
  "deepctl-cmd-debug-audio>=0.1.14",
49
49
  "deepctl-cmd-debug-probe>=0.0.2",
50
- "deepctl-cmd-debug-toolkit>=0.1.0",
50
+ "deepctl-cmd-debug-toolkit>=0.2.0",
51
51
  "deepctl-cmd-ffprobe>=0.0.3",
52
52
  "deepctl-cmd-update>=0.2.7",
53
- "deepctl-cmd-plugin>=0.1.13",
54
- "deepctl-cmd-skills>=0.0.8",
55
- "deepctl-cmd-init>=0.0.4",
53
+ "deepctl-cmd-plugin>=0.1.14",
54
+ "deepctl-cmd-skills>=0.0.9",
55
+ "deepctl-cmd-init>=0.1.0",
56
56
  "deepctl-cmd-models>=0.1.1",
57
- "deepctl-cmd-speak>=0.0.4",
57
+ "deepctl-cmd-speak>=0.0.5",
58
58
  "deepctl-cmd-keys>=0.1.0",
59
59
  "deepctl-cmd-read>=0.1.0",
60
60
  "deepctl-cmd-listen>=0.0.14",
@@ -1,7 +1,7 @@
1
1
  """deepctl - Official command-line interface for Deepgram's speech
2
2
  recognition API."""
3
3
 
4
- __version__ = "0.3.2" # x-release-please-version
4
+ __version__ = "0.4.0" # x-release-please-version
5
5
  __author__ = "Deepgram"
6
6
  __email__ = "devrel@deepgram.com"
7
7
  __license__ = "MIT"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepctl
3
- Version: 0.3.2
3
+ Version: 0.4.0
4
4
  Summary: Official Deepgram CLI for speech recognition and audio intelligence
5
5
  Author-email: Deepgram <devrel@deepgram.com>
6
6
  Maintainer-email: Deepgram <devrel@deepgram.com>
@@ -27,8 +27,8 @@ Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  Requires-Dist: click>=8.0.0
29
29
  Requires-Dist: deepgram-sdk<8,>=7.7.0
30
- Requires-Dist: deepctl-core>=0.2.18
31
- Requires-Dist: deepctl-cmd-login>=0.1.19
30
+ Requires-Dist: deepctl-core>=0.3.0
31
+ Requires-Dist: deepctl-cmd-login>=0.2.0
32
32
  Requires-Dist: deepctl-cmd-projects>=0.2.0
33
33
  Requires-Dist: deepctl-cmd-transcribe>=0.1.12
34
34
  Requires-Dist: deepctl-cmd-usage>=0.2.1
@@ -39,14 +39,14 @@ Requires-Dist: deepctl-cmd-debug-browser>=0.1.12
39
39
  Requires-Dist: deepctl-cmd-debug-network>=0.1.12
40
40
  Requires-Dist: deepctl-cmd-debug-audio>=0.1.14
41
41
  Requires-Dist: deepctl-cmd-debug-probe>=0.0.2
42
- Requires-Dist: deepctl-cmd-debug-toolkit>=0.1.0
42
+ Requires-Dist: deepctl-cmd-debug-toolkit>=0.2.0
43
43
  Requires-Dist: deepctl-cmd-ffprobe>=0.0.3
44
44
  Requires-Dist: deepctl-cmd-update>=0.2.7
45
- Requires-Dist: deepctl-cmd-plugin>=0.1.13
46
- Requires-Dist: deepctl-cmd-skills>=0.0.8
47
- Requires-Dist: deepctl-cmd-init>=0.0.4
45
+ Requires-Dist: deepctl-cmd-plugin>=0.1.14
46
+ Requires-Dist: deepctl-cmd-skills>=0.0.9
47
+ Requires-Dist: deepctl-cmd-init>=0.1.0
48
48
  Requires-Dist: deepctl-cmd-models>=0.1.1
49
- Requires-Dist: deepctl-cmd-speak>=0.0.4
49
+ Requires-Dist: deepctl-cmd-speak>=0.0.5
50
50
  Requires-Dist: deepctl-cmd-keys>=0.1.0
51
51
  Requires-Dist: deepctl-cmd-read>=0.1.0
52
52
  Requires-Dist: deepctl-cmd-listen>=0.0.14
@@ -268,8 +268,15 @@ container so it is directly playable. Pass an `aura-*` model to use the Speak v1
268
268
  batch REST API instead, which supports containerized formats like MP3.
269
269
 
270
270
  ```bash
271
+ # Quickstart — synthesize and hear it straight away
272
+ dg speak "Hello from Deepgram" --play
273
+
274
+ # Discover voices
275
+ dg speak --list-voices
276
+
271
277
  # Flux TTS (v2, WebSocket streaming) — the default
272
278
  dg speak "Hello from Flux" -o hello.wav
279
+ dg speak "Save it and play it" -o hello.wav --play
273
280
  # Piped audio is a streaming WAV; -loglevel error hides ffmpeg's cosmetic
274
281
  # end-of-stream notice (the audio is complete).
275
282
  dg speak "Hello from Flux" | ffplay -loglevel error -nodisp -autoexit -
@@ -288,6 +295,15 @@ echo "Hello" | dg speak -o greeting.mp3 -m aura-2-asteria-en
288
295
  dg speak "Hola, bienvenido a Deepgram" -o hola.mp3 -m aura-2-selena-es
289
296
  ```
290
297
 
298
+ `--play` uses the first available system player (`ffplay`, `afplay`, `paplay`,
299
+ or `aplay`); install `ffmpeg` if none is present. With the Flux default the
300
+ audio is streamed into the player as it arrives, so playback starts at
301
+ first-audio latency rather than after the whole utterance. Each fallback
302
+ player is checked against the requested format before the API call: `aplay`
303
+ plays PCM/WAV only and `paplay` adds FLAC and Opus but not MP3 or AAC, while
304
+ `ffplay` and `afplay` (macOS) play every format. Playing Aura's default MP3 on
305
+ Linux needs `ffplay` or `--encoding flac`.
306
+
291
307
  ### Text Intelligence
292
308
 
293
309
  Analyze text for sentiment, summaries, topics, and intents.
@@ -359,14 +375,42 @@ Add to your editor's MCP config:
359
375
 
360
376
  ### AI Tool Integration
361
377
 
362
- Automatically detect and configure AI coding assistants with Deepgram skills.
378
+ Install the Deepgram skills as folders in each AI coding assistant's skills folder.
363
379
 
364
380
  ```bash
365
381
  dg skills status # Detect AI tools
366
382
  dg skills setup # Interactive setup wizard
367
383
  dg skills install --all # Install for all detected tools
384
+ dg skills update # Replace the folders deepctl installed
385
+ dg skills remove --all # Delete the folders deepctl installed
368
386
  ```
369
387
 
388
+ | Tool | Skills folder |
389
+ |---|---|
390
+ | Claude Code | `~/.claude/skills` |
391
+ | OpenAI Codex | `~/.agents/skills` |
392
+ | Gemini CLI | `~/.gemini/skills` |
393
+ | Cursor | `~/.cursor/skills` |
394
+ | OpenCode | `~/.config/opencode/skills` |
395
+ | Cline | `~/.cline/skills` |
396
+ | Amazon Q Developer, Aider | none: deepctl prints where to get the skills |
397
+
398
+ deepctl replaces or deletes a folder only if skills.json records it for that tool, it is a real folder directly in that tool's skills folder, it holds deepctl's `.deepctl-skill` marker, and its contents are exactly what deepctl installed. So folders from `npx skills add`, and symlinked skill folders, are left alone.
399
+
400
+ These commands abort if the filesystem cannot provide locking or no-replace directory moves. Installed skill folders and skills.json stay as they were, though the tool's skills folder and `~/.deepctl/skills/skills.json.lock` may already have been created. While another `dg skills`, `dg login` or `dg plugin` command is changing skills, the next one waits up to 30 seconds for it to finish. If another of these commands removes or changes a tool's skills while `dg skills update` or a plugin refresh is running, the refresh leaves that tool as the other command left it and prints a warning. That holds even for the same ref, because a branch such as `main` can move between two downloads. `dg skills update` run with `--ref` still applies its ref to a tool another command updated, but does not reinstall skills another command removed.
401
+
402
+ `dg login` offers to install the skills, and `dg plugin install`, `update` and `remove` refresh the installed ones, through the same path as `dg skills install` and `update`. A skills installation failure prints a warning on stderr and does not change those commands' exit codes. Ctrl-C still cancels the command.
403
+
404
+ If you edit a deepctl folder, or add a file or link to it, deepctl leaves it alone: `update` stops without changing anything and `remove` won't delete it. To get updates again, rename or move your edited copy, or delete it yourself. Opening a skill folder in Finder or Explorer can add `.DS_Store`, `Thumbs.db` or `desktop.ini`, which counts as an edit.
405
+
406
+ #### Upgrading from deepctl 0.2.16 through 0.3.x
407
+
408
+ On macOS and Linux, once `dg skills install` or `update` (or `dg login`, or `dg plugin install`, `update` or `remove`) has installed a tool's skill folders, deepctl removes the files older deepctl wrote for that tool, and prints which ones on stderr: `~/.claude/commands/deepgram/*.md`, `~/.cursor/rules/deepctl.mdc`, `~/.cline/rules/deepctl.md`, and the section between the `<!-- BEGIN deepctl CLI Reference` and `<!-- END deepctl CLI Reference -->` lines in `~/.codex/instructions.md`, `~/.gemini/GEMINI.md` and `~/.opencode/agents.md`. In those three files, everything between the two marker lines is removed, including anything you changed there; the rest of the file is kept, apart from the blank line deepctl added before its section. Deepctl keeps the original file next to it as `.deepctl-kept-v03-*`; compare it for any late write from an open editor, then delete it if you do not need it.
409
+
410
+ deepctl removes a file only if its content is exactly a deepgram/skills version that older deepctl copied, even if you made that copy yourself. It keeps a file you edited, a link, a file in a folder reached through a link (such as a dotfiles `~/.claude`), and a section that is incomplete, repeated or in a read-only or locked file, and warns once about each file 0.3.x recorded. An I/O failure, such as permission denied, is retried on the next install or update, with a warning for files 0.3.x recorded. Amazon Q Developer and Aider files (`~/.amazonq/rules/deepctl.md`, `~/.deepctl/skills/deepctl-conventions.md`) are kept, because those tools have no skill folders; if you delete Aider's, also remove its entry under `read:` in `~/.aider.conf.yml`.
411
+
412
+ On Windows, deepctl leaves this 0.3.x content untouched because a parent folder could become a junction during cleanup; remove it yourself if you do not need it. While deepctl works on a file on macOS or Linux, it moves it to `.deepctl-v03-<name>` in the same folder. If deepctl is interrupted, the next install or update puts the file back and says so. If both the file and its `.deepctl-v03-<name>` are there, as after you saved the file while deepctl was editing it, deepctl changes neither and names both on each run until you compare them and delete the `.deepctl-v03-<name>` copy; it does the same if `.deepctl-v03-<name>` is a link or folder deepctl didn't make. A `.deepctl-v03-*.tmp` file is an unused draft; delete it.
413
+
370
414
  ### Starter Apps
371
415
 
372
416
  Scaffold a new project from Deepgram templates.
@@ -1,7 +1,7 @@
1
1
  click>=8.0.0
2
2
  deepgram-sdk<8,>=7.7.0
3
- deepctl-core>=0.2.18
4
- deepctl-cmd-login>=0.1.19
3
+ deepctl-core>=0.3.0
4
+ deepctl-cmd-login>=0.2.0
5
5
  deepctl-cmd-projects>=0.2.0
6
6
  deepctl-cmd-transcribe>=0.1.12
7
7
  deepctl-cmd-usage>=0.2.1
@@ -12,14 +12,14 @@ deepctl-cmd-debug-browser>=0.1.12
12
12
  deepctl-cmd-debug-network>=0.1.12
13
13
  deepctl-cmd-debug-audio>=0.1.14
14
14
  deepctl-cmd-debug-probe>=0.0.2
15
- deepctl-cmd-debug-toolkit>=0.1.0
15
+ deepctl-cmd-debug-toolkit>=0.2.0
16
16
  deepctl-cmd-ffprobe>=0.0.3
17
17
  deepctl-cmd-update>=0.2.7
18
- deepctl-cmd-plugin>=0.1.13
19
- deepctl-cmd-skills>=0.0.8
20
- deepctl-cmd-init>=0.0.4
18
+ deepctl-cmd-plugin>=0.1.14
19
+ deepctl-cmd-skills>=0.0.9
20
+ deepctl-cmd-init>=0.1.0
21
21
  deepctl-cmd-models>=0.1.1
22
- deepctl-cmd-speak>=0.0.4
22
+ deepctl-cmd-speak>=0.0.5
23
23
  deepctl-cmd-keys>=0.1.0
24
24
  deepctl-cmd-read>=0.1.0
25
25
  deepctl-cmd-listen>=0.0.14
File without changes
File without changes
File without changes