jamiepine/voicebox
The open-source AI voice studio. Clone, dictate, create.
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code, and 40 generated files: app/src/lib/api/core/ApiError.ts, app/src/lib/api/core/ApiRequestOptions.ts, app/src/lib/api/core/ApiResult.ts, app/src/lib/api/core/CancelablePromise.ts, app/src/lib/api/core/OpenAPI.ts, app/src/lib/api/core/request.ts, app/src/lib/api/index.ts, app/src/lib/api/models/Body_add_profile_sample_profiles__profile_id__samples_post.ts, app/src/lib/api/models/Body_transcribe_audio_transcribe_post.ts, app/src/lib/api/models/GenerationRequest.ts, app/src/lib/api/models/GenerationResponse.ts, app/src/lib/api/models/HealthResponse.ts, app/src/lib/api/models/HistoryListResponse.ts, app/src/lib/api/models/HistoryResponse.ts, app/src/lib/api/models/HTTPValidationError.ts, app/src/lib/api/models/ModelDownloadRequest.ts, app/src/lib/api/models/ModelStatus.ts, app/src/lib/api/models/ModelStatusListResponse.ts, app/src/lib/api/models/ProfileSampleResponse.ts, app/src/lib/api/models/TranscriptionResponse.ts and 20 more.
Largest clones in the code
- 88 lines in 2 placespython416 tokens
162async def _download_and_extract_archive( 163 client, 164 url: str, 165 sha256_url: Optional[str], 166 dest_dir: Path, 167 label: str, 168 progress_offset: int, 169 total_size: int, 170): 171 """Download a .tar.gz archive and extract it into dest_dir.First 10 of 88 lines.
- 32 lines in 2 placesrust232 tokenstauri/src-tauri/src/audio_capture/linux.rs:291–322tauri/src-tauri/src/audio_capture/windows.rs:210–239
291 let tx = stop_tx_clone.lock().unwrap().take(); 292 if let Some(tx) = tx { 293 let _ = tx.send(()).await; 294 } 295 }); 296 297 Ok(()) 298} 299 300pub async fn stop_capture(state: &AudioCaptureState) -> Result<String, String> {First 10 of 32 lines.
- 9 lines in 5 placestypescript55 tokensapp/src/lib/hooks/useStories.ts:130–138app/src/lib/hooks/useStories.ts:150–158app/src/lib/hooks/useStories.ts:170–178app/src/lib/hooks/useStories.ts:190–198app/src/lib/hooks/useStories.ts:223–231
130 }) => apiClient.moveStoryItem(storyId, itemId, data), 131 onSuccess: (_, variables) => { 132 queryClient.invalidateQueries({ queryKey: ['stories'] }); 133 queryClient.invalidateQueries({ queryKey: ['stories', variables.storyId] }); 134 }, 135 }); 136} 137 138export function useTrimStoryItem() {150 }) => apiClient.trimStoryItem(storyId, itemId, data), 151 onSuccess: (_, variables) => { 152 queryClient.invalidateQueries({ queryKey: ['stories'] }); 153 queryClient.invalidateQueries({ queryKey: ['stories', variables.storyId] }); 154 }, 155 }); 156} 157 158export function useUpdateStoryItemVolume() {
7 more
- 35 lines in 2 placestsx217 tokens
- 7 lines in 4 placestsx72 tokens
- 9 lines in 5 placestypescript53 tokens
- 35 lines in 2 placestsx198 tokens
- 32 lines in 2 placesrust189 tokens
- 31 lines in 2 placesrust188 tokens
- 27 lines in 2 placestsx184 tokens
Largest clones over all files, tests and data included
- 6242 lines in 3 placesjsondata files18,415 tokenstauri/src-tauri/gen/schemas/desktop-schema.json:1–6242tauri/src-tauri/gen/schemas/macOS-schema.json:1–6242tauri/src-tauri/gen/schemas/windows-schema.json:1–6242
1{ 2 "$schema": "http://json-schema.org/draft-07/schema#", 3 "title": "CapabilityFile", 4 "description": "Capability formats accepted in a capability file.", 5 "anyOf": [ 6 { 7 "description": "A single capability.", 8 "allOf": [ 9 { 10 "$ref": "#/definitions/Capability"First 10 of 6242 lines.
- 1728 lines in 2 placesjsondata files5,183 tokenstauri/src-tauri/gen/schemas/desktop-schema.json:142–1869tauri/src-tauri/gen/schemas/desktop-schema.json:4223–5950
142{ 143 "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Perm… 144 "type": "string", 145 "const": "fs:default", 146 "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Gran… 147}, 148{ 149 "description": "This allows non-recursive read access to metadata of the application folders, including file listing and statistics.\n#### This permission se… 150 "type": "string", 151 "const": "fs:allow-app-meta",First 10 of 1728 lines.
- 88 lines in 2 placespython416 tokens
162async def _download_and_extract_archive( 163 client, 164 url: str, 165 sha256_url: Optional[str], 166 dest_dir: Path, 167 label: str, 168 progress_offset: int, 169 total_size: int, 170): 171 """Download a .tar.gz archive and extract it into dest_dir.First 10 of 88 lines.
- 32 lines in 2 placesrust232 tokens
- 9 lines in 5 placestypescript55 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| tsx | 134 | 29,682 | 73 | 1,049 | 3.53% |
| python | 89 | 20,820 | 48 | 724 | 3.48% |
| typescript | 62 | 7,264 | 27 | 331 | 4.56% |
| rust | 16 | 5,641 | 26 | 319 | 5.66% |
| javascript | 2 | 462 | 2 | 61 | 13.2% |
| bash | 15 | 1,214 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| tsx | 142 | 30,172 | 74 | 1,057 | 3.5% |
| python | 122 | 26,352 | 53 | 781 | 2.96% |
| typescript | 87 | 8,884 | 28 | 370 | 4.16% |
| rust | 17 | 5,700 | 26 | 319 | 5.6% |
| json | 32 | 32,138 | 23 | 14,769 | 45.95% |
| yaml | 10 | 759 | 4 | 45 | 5.93% |
| javascript | 3 | 487 | 2 | 61 | 12.53% |
| text | 13 | 273 | 2 | 9 | 3.3% |
| markup | 3 | 70 | 2 | 33 | 47.14% |
| markdown | 26 | 6,675 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 18, 2026 | #10 | 54,937 (+667) | 488 | 113,896 | 214 | 15.32% | 3.81% | — | 51f49de |
| Sep 17, 2026 | #5 | 54,515 (+417) | 488 | 113,896 | 214 | 15.32% | 3.81% | — | 51f49de |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.