{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"whisper-cli","slug":"whisper-cli","name":"Whisper CLI","type":"cli","url":"https://github.com/openai/whisper","page_url":"https://unfragile.ai/whisper-cli","categories":["voice-audio"],"tags":[],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"whisper-cli__cap_0","uri":"capability://data.processing.analysis.multilingual.speech.to.text.transcription.with.language.agnostic.encoder","name":"multilingual speech-to-text transcription with language-agnostic encoder","description":"Transcribes audio in 98 languages to text in the original language using a unified Transformer sequence-to-sequence architecture with a shared AudioEncoder that processes mel spectrograms into language-agnostic embeddings, then a TextDecoder that generates tokens autoregressively. The system handles variable-length audio by padding or trimming to 30-second segments and uses task-specific tokens to signal transcription mode, enabling a single model to handle multiple languages without language-specific branches.","intents":["I need to transcribe audio files in multiple languages without switching models","I want to build a speech recognition pipeline that works across 98 languages with minimal setup","I need to process audio in languages where English-only models don't perform well"],"best_for":["multilingual content creators processing global audio","developers building international voice applications","teams needing language-agnostic ASR without model switching overhead"],"limitations":["English-only models (tiny.en, base.en, small.en) sacrifice multilingual capability for 10-40% speed improvement","Accuracy varies significantly across languages — English achieves highest WER due to 65% of training data being English","30-second segment padding/trimming may lose context at audio boundaries for languages with complex prosody","No built-in speaker diarization or multi-speaker separation — treats all speech as single stream"],"requires":["Python 3.8-3.11","PyTorch (CPU or CUDA-enabled)","FFmpeg system-level installation for audio decoding","1-10 GB VRAM depending on model size (tiny=1GB, large=10GB)"],"input_types":["audio files (MP3, WAV, M4A, FLAC, OGG via FFmpeg)","audio URLs (with streaming support)","raw audio bytes"],"output_types":["plain text transcription","JSON with segment-level timestamps","VTT/SRT subtitle formats"],"categories":["data-processing-analysis","speech-recognition"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_1","uri":"capability://data.processing.analysis.direct.speech.to.english.translation.without.intermediate.transcription","name":"direct speech-to-english translation without intermediate transcription","description":"Translates non-English speech directly to English text by using a task-specific token in the TextDecoder that signals translation mode, bypassing the need for intermediate transcription-then-translation pipelines. The AudioEncoder processes mel spectrograms identically to transcription, but the decoder generates English tokens directly from audio embeddings, reducing latency and error propagation compared to cascaded systems.","intents":["I need to translate foreign-language audio to English without first transcribing in the source language","I want to reduce latency by avoiding cascaded transcription-then-translation pipelines","I need to handle audio where source-language transcription quality is poor but English translation is acceptable"],"best_for":["real-time translation applications where latency matters","content localization workflows processing multilingual media","developers building English-centric applications serving global audiences"],"limitations":["Translation task is not supported in the turbo model (809M parameters) — only available in large model (1550M)","Turbo model optimized for transcription speed, not translation accuracy","No language-pair specificity — always translates to English regardless of source language","Translation quality depends heavily on source audio clarity; poor audio degrades both transcription and translation","No control over translation style, formality, or domain-specific terminology"],"requires":["Python 3.8-3.11","PyTorch with CUDA for reasonable latency (CPU inference ~10-20x slower)","FFmpeg for audio decoding","Large model (1550M parameters, 10GB VRAM) or medium model (769M, 5GB VRAM) — turbo model does not support translation"],"input_types":["audio files in non-English languages (MP3, WAV, M4A, FLAC, OGG)","audio URLs","raw audio bytes"],"output_types":["English text translation","JSON with segment-level translations and timestamps","VTT/SRT subtitle files with English translations"],"categories":["data-processing-analysis","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_10","uri":"capability://tool.use.integration.python.api.with.high.level.transcribe.and.low.level.decode.interfaces","name":"python api with high-level transcribe() and low-level decode() interfaces","description":"Exposes two levels of API abstraction: a high-level transcribe() function that handles end-to-end transcription with automatic audio loading, preprocessing, and result formatting, and a low-level decode() function that provides fine-grained control over decoding options (beam width, temperature, language constraints). The high-level API is suitable for simple use cases, while the low-level API enables advanced customization for researchers and developers building complex pipelines.","intents":["I need a simple Python API to transcribe audio files with minimal code","I want fine-grained control over decoding behavior for research or optimization","I need to integrate Whisper into a larger Python application with custom preprocessing or postprocessing"],"best_for":["Python developers building speech recognition applications","researchers experimenting with decoding strategies and model behavior","teams integrating Whisper into larger ML pipelines (data processing, model serving)"],"limitations":["High-level transcribe() API abstracts away many details, making it difficult to debug or optimize performance","Low-level decode() API requires understanding of DecodingOptions and token IDs — steep learning curve for new users","No streaming API — both high-level and low-level APIs require complete audio in memory","No built-in caching of model weights — reloading the same model multiple times redownloads and reinitializes weights","API documentation is sparse — many parameters and options are not well-documented"],"requires":["Python 3.8-3.11","PyTorch","FFmpeg for audio decoding","Whisper package installed via pip"],"input_types":["audio file paths","audio URLs","numpy arrays (mel-spectrograms)","torch tensors"],"output_types":["dict with 'text' key (high-level API)","dict with 'segments' containing timing and text (high-level API)","DecodingResult objects with token-level details (low-level API)"],"categories":["tool-use-integration","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_2","uri":"capability://data.processing.analysis.automatic.language.identification.from.audio.with.98.language.support","name":"automatic language identification from audio with 98-language support","description":"Detects the spoken language in audio by generating a language token from the AudioEncoder embeddings before decoding text, using the model's multilingual training to recognize acoustic patterns distinctive to each language. The system identifies language during the initial decoding step and can be queried directly via the language identification task token, enabling language detection without full transcription.","intents":["I need to detect what language is spoken in an audio file before processing it","I want to route audio to language-specific downstream systems based on detected language","I need to filter or categorize audio content by language without transcribing"],"best_for":["content moderation and classification pipelines","multilingual call center routing systems","audio preprocessing workflows that need language detection before transcription"],"limitations":["Language detection accuracy varies by language — high-confidence for major languages (English, Spanish, Mandarin), lower for low-resource languages","Requires at least 1-2 seconds of audio for reliable detection; very short clips may misidentify","No confidence scores returned — only language code, making it difficult to handle ambiguous cases","Cannot distinguish between language variants (e.g., Mandarin vs Cantonese) — treats as single language","Accuracy degrades with heavy accents, code-switching, or music/noise in background"],"requires":["Python 3.8-3.11","PyTorch","FFmpeg for audio decoding","Any model size (tiny to large) — language detection is lightweight"],"input_types":["audio files (MP3, WAV, M4A, FLAC, OGG)","audio URLs","raw audio bytes"],"output_types":["ISO 639-1 language code (e.g., 'en', 'es', 'zh')","language name string","JSON with language metadata"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_3","uri":"capability://data.processing.analysis.mel.spectrogram.audio.preprocessing.with.ffmpeg.integration.and.segment.normalization","name":"mel-spectrogram audio preprocessing with ffmpeg integration and segment normalization","description":"Converts raw audio files in multiple formats (MP3, WAV, M4A, FLAC, OGG) to mel-spectrogram features via FFmpeg decoding and log-scale mel-frequency filtering, then normalizes variable-length audio to fixed 30-second segments via padding or trimming. The pipeline uses whisper.load_audio() for format-agnostic decoding, whisper.pad_or_trim() for segment normalization, and whisper.log_mel_spectrogram() for feature extraction, enabling the model to process diverse audio sources with consistent preprocessing.","intents":["I need to preprocess audio files in multiple formats before feeding them to the Whisper model","I want to normalize variable-length audio to fixed segments for batch processing","I need to extract mel-spectrogram features for audio analysis or visualization"],"best_for":["audio pipeline engineers building preprocessing workflows","developers integrating Whisper into larger audio processing systems","researchers analyzing audio features or debugging transcription quality"],"limitations":["30-second segment length is fixed and cannot be customized — longer audio is truncated, shorter audio is padded with silence","Padding with silence may introduce artifacts at segment boundaries, affecting transcription quality for audio with important content near boundaries","FFmpeg dependency adds system-level complexity and potential compatibility issues across platforms","No built-in audio normalization (volume leveling) — relies on FFmpeg defaults which may vary","Mel-spectrogram parameters (n_mels=80, n_fft=400) are hardcoded and cannot be adjusted for domain-specific audio"],"requires":["Python 3.8-3.11","FFmpeg system-level installation (separate from pip)","PyTorch for mel-spectrogram computation","Audio files in FFmpeg-supported formats (MP3, WAV, M4A, FLAC, OGG, etc.)"],"input_types":["audio file paths (local or remote URLs)","audio bytes","file-like objects"],"output_types":["numpy arrays (shape: [80, 3000] for 30-second audio at 16kHz)","torch tensors","mel-spectrogram visualizations"],"categories":["data-processing-analysis","audio-preprocessing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_4","uri":"capability://planning.reasoning.autoregressive.token.decoding.with.sliding.window.context.and.beam.search","name":"autoregressive token decoding with sliding-window context and beam search","description":"Generates transcription or translation tokens autoregressively using a TextDecoder that processes AudioEncoder embeddings and previously generated tokens, with support for multiple decoding strategies including greedy decoding, beam search, and temperature-based sampling. The system uses a sliding-window context approach to handle audio longer than 30 seconds by processing overlapping segments and merging results, and supports DecodingOptions for fine-grained control over decoding behavior (beam width, temperature, language constraints).","intents":["I need to control decoding behavior (beam width, temperature, language constraints) for quality vs. speed tradeoffs","I want to transcribe audio longer than 30 seconds without manual segmentation","I need to use beam search or other advanced decoding strategies for higher accuracy"],"best_for":["developers building high-accuracy transcription systems where quality matters more than speed","researchers experimenting with decoding strategies and hyperparameter tuning","applications processing long-form audio (podcasts, lectures, interviews)"],"limitations":["Beam search with width > 1 increases latency significantly (2-5x slower than greedy decoding)","Sliding-window context for long audio may lose semantic coherence at segment boundaries, affecting punctuation and capitalization","No built-in language model rescoring — beam search uses only the Whisper model's probabilities, not external LM constraints","Temperature sampling is not exposed in the CLI, only in Python API","Decoding options are not validated at runtime — invalid combinations (e.g., beam_size=0) fail silently or produce unexpected results"],"requires":["Python 3.8-3.11","PyTorch","DecodingOptions class from whisper.decoding module","Understanding of decoding hyperparameters (beam_size, temperature, language_token)"],"input_types":["AudioEncoder embeddings (torch tensors)","DecodingOptions configuration objects","audio mel-spectrograms"],"output_types":["token sequences (integer IDs)","decoded text strings","JSON with per-token probabilities and timing"],"categories":["planning-reasoning","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_5","uri":"capability://data.processing.analysis.word.level.timestamp.generation.with.segment.to.word.alignment","name":"word-level timestamp generation with segment-to-word alignment","description":"Generates precise word-level timestamps by aligning decoded tokens to audio segments using the model's internal attention weights and token probabilities, enabling subtitle generation and fine-grained audio-text synchronization. The system decodes text at the segment level (30 seconds), then uses token timing information to map each word back to its position in the original audio, producing timestamps accurate to ~100ms granularity.","intents":["I need to generate SRT or VTT subtitle files with word-level timing","I want to create interactive transcripts where clicking a word plays the corresponding audio","I need precise word timing for audio-text alignment in video editing workflows"],"best_for":["subtitle and caption generation pipelines","video editing and synchronization tools","interactive transcript applications (podcasts, lectures, interviews)"],"limitations":["Timestamp accuracy is ~100-200ms due to mel-spectrogram frame resolution (10ms per frame) and model's receptive field","Word timing is less accurate for fast speech, overlapping speakers, or audio with background noise","Timestamps are relative to 30-second segments — long audio requires manual segment boundary handling","No confidence scores for timestamps — difficult to identify unreliable alignments","Punctuation and capitalization are inferred from token probabilities, not aligned to specific audio positions"],"requires":["Python 3.8-3.11","PyTorch","FFmpeg for audio decoding","Access to model's internal attention weights (requires custom decoding implementation)"],"input_types":["audio files or mel-spectrograms","decoded token sequences with timing metadata"],"output_types":["JSON with word-level timestamps (start_time, end_time, word)","VTT subtitle format","SRT subtitle format","WebVTT with cue IDs"],"categories":["data-processing-analysis","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_6","uri":"capability://data.processing.analysis.model.size.selection.with.speed.accuracy.tradeoffs.across.6.variants","name":"model size selection with speed-accuracy tradeoffs across 6 variants","description":"Provides six model sizes (tiny, base, small, medium, large, turbo) with parameter counts ranging from 39M to 1550M, enabling users to select optimal speed-accuracy tradeoffs based on hardware constraints and latency requirements. Each model has English-only variants (tiny.en, base.en, small.en) that sacrifice multilingual capability for 10-40% speed improvement, and the turbo model (809M) optimizes large-v3 for 8x faster inference with minimal accuracy degradation but no translation support.","intents":["I need to choose a model size that fits my hardware constraints (CPU, GPU memory, latency budget)","I want to optimize for speed on edge devices while maintaining acceptable accuracy","I need to understand the accuracy-speed tradeoff for different model sizes before deployment"],"best_for":["edge device developers with limited VRAM (mobile, embedded systems)","real-time transcription applications with strict latency budgets","teams deploying Whisper across heterogeneous hardware (cloud + edge)"],"limitations":["English-only models (tiny.en, base.en, small.en) cannot transcribe non-English audio — require model switching for multilingual content","Turbo model does not support translation tasks — only transcription and language identification","No continuous model size spectrum — must choose from discrete sizes, no fine-grained control","Speed improvements from smaller models come at significant accuracy cost — tiny model has ~20-30% higher WER than large model","VRAM requirements are minimums; actual memory usage depends on batch size and audio length"],"requires":["Python 3.8-3.11","PyTorch","VRAM: 1GB (tiny/base), 2GB (small), 5GB (medium), 10GB (large), 6GB (turbo)","CPU: 2+ cores for reasonable inference speed on CPU-only systems"],"input_types":["model size identifier string (e.g., 'tiny', 'base', 'small', 'medium', 'large', 'turbo')","language variant (e.g., 'tiny.en' for English-only)"],"output_types":["loaded PyTorch model object","model metadata (parameter count, VRAM requirement, relative speed)"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_7","uri":"capability://automation.workflow.cuda.acceleration.with.gpu.inference.and.mixed.precision.support","name":"cuda acceleration with gpu inference and mixed-precision support","description":"Accelerates inference on NVIDIA GPUs by leveraging PyTorch's CUDA backend for AudioEncoder and TextDecoder operations, with optional mixed-precision (float16) support to reduce memory usage and increase throughput. The system automatically detects CUDA availability and moves model weights to GPU if available, and supports batch processing of multiple audio files on GPU for higher throughput than sequential CPU inference.","intents":["I need to accelerate Whisper inference on NVIDIA GPUs for real-time or batch processing","I want to reduce GPU memory usage while maintaining inference speed using mixed precision","I need to process multiple audio files in parallel on a single GPU"],"best_for":["GPU-equipped servers and cloud instances (AWS, GCP, Azure with GPU)","real-time transcription services requiring sub-second latency","batch processing pipelines transcribing thousands of audio files"],"limitations":["CUDA acceleration requires NVIDIA GPU with compute capability 3.5+ (older GPUs not supported)","Mixed-precision (float16) may reduce accuracy slightly due to reduced numerical precision, especially for long audio","GPU memory is shared with other processes — concurrent workloads may cause OOM errors","No built-in batch processing API — requires manual batching or third-party frameworks (Ray, Dask)","CUDA kernel launch overhead makes GPU slower than CPU for very short audio (<1 second) due to fixed overhead","Requires NVIDIA CUDA Toolkit and cuDNN installation — adds system-level complexity"],"requires":["Python 3.8-3.11","PyTorch with CUDA support (torch.cuda.is_available() must return True)","NVIDIA GPU with compute capability 3.5+ (Tesla K40, GTX 750 Ti or newer)","NVIDIA CUDA Toolkit 11.8+ and cuDNN 8.0+","Sufficient GPU memory: 1GB (tiny), 2GB (small), 5GB (medium), 10GB (large)"],"input_types":["audio files or mel-spectrograms","batches of audio files (requires custom batching code)"],"output_types":["transcription text","JSON with timing metadata","batch results (list of transcriptions)"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_8","uri":"capability://automation.workflow.cli.interface.with.output.format.flexibility.and.batch.file.processing","name":"cli interface with output format flexibility and batch file processing","description":"Provides a command-line interface (whisper command) that wraps the Python API with support for multiple output formats (TXT, JSON, VTT, SRT), batch processing of multiple audio files, and configurable transcription options (model size, language, task type). The CLI uses argparse for argument parsing and supports both single-file and directory-based batch processing, with output files automatically named based on input filenames.","intents":["I need to transcribe audio files from the command line without writing Python code","I want to batch process multiple audio files and generate subtitle files in VTT or SRT format","I need to export transcriptions in multiple formats (TXT, JSON, VTT, SRT) for downstream tools"],"best_for":["non-technical users and content creators using Whisper without programming","shell script and automation workflows integrating Whisper into larger pipelines","batch processing jobs on servers or CI/CD systems"],"limitations":["CLI does not support streaming input — requires complete audio file on disk","No progress reporting for long audio files — users cannot see transcription progress","Batch processing is sequential, not parallel — multiple files are processed one at a time","Output format options are limited to TXT, JSON, VTT, SRT — no custom format templates","Error handling is basic — transcription failures for one file in a batch do not stop processing but may produce incomplete output","No built-in logging or debug output — difficult to diagnose issues in batch jobs"],"requires":["Python 3.8-3.11 with Whisper installed via pip","FFmpeg system-level installation","Audio files in FFmpeg-supported formats","Write permissions to output directory"],"input_types":["audio file paths (single file or directory)","command-line arguments (--model, --language, --task, --output_format, etc.)"],"output_types":["TXT files (plain text transcription)","JSON files (structured transcription with metadata)","VTT files (WebVTT subtitle format)","SRT files (SubRip subtitle format)","TSV files (tab-separated values with timing)"],"categories":["automation-workflow","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__cap_9","uri":"capability://planning.reasoning.language.and.task.specification.via.special.tokens.in.decoder","name":"language and task specification via special tokens in decoder","description":"Controls transcription behavior (language, task type) by prepending special tokens to the TextDecoder input, allowing the same model weights to handle different languages and tasks (transcription vs. translation) without separate model branches. The system uses reserved token IDs to signal language (e.g., <|en|> for English) and task (e.g., <|transcribe|> vs. <|translate|>), enabling fine-grained control over model behavior at inference time.","intents":["I need to force transcription in a specific language even if the model detects a different language","I want to switch between transcription and translation tasks without reloading the model","I need to handle code-switching or mixed-language audio by specifying the primary language"],"best_for":["applications with known language content that want to avoid language detection errors","workflows that need to switch between transcription and translation dynamically","systems handling code-switched audio (e.g., Spanglish) where a primary language should be enforced"],"limitations":["Language specification does not prevent the model from transcribing other languages — it only biases the decoder toward the specified language","Specifying an unsupported language (e.g., a language not in the training data) produces unpredictable results","Task specification (transcription vs. translation) is not exposed in the CLI — requires Python API access","No way to specify language confidence threshold — the model will attempt transcription even for very low-confidence language detections","Special tokens are not documented in the CLI help — users must consult the Python API documentation"],"requires":["Python 3.8-3.11","Understanding of Whisper's special token IDs (language tokens, task tokens)","Access to the Python API (not available in CLI)"],"input_types":["language code (ISO 639-1 or Whisper-specific code)","task type ('transcribe' or 'translate')","audio mel-spectrograms"],"output_types":["transcription or translation text","JSON with language and task metadata"],"categories":["planning-reasoning","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"whisper-cli__headline","uri":"capability://voice.audio.multilingual.speech.recognition.cli.tool","name":"multilingual speech recognition cli tool","description":"OpenAI's Whisper CLI is a versatile tool for multilingual speech recognition, translation, and language identification, allowing users to transcribe audio files into text across 98 languages.","intents":["best speech recognition tool","CLI for audio transcription","speech translation software","language identification tool for audio","multilingual audio transcription solution"],"best_for":["developers needing speech-to-text functionality","users requiring audio translation"],"limitations":["requires audio files as input"],"requires":["Python","FFmpeg"],"input_types":["audio files"],"output_types":["text transcripts"],"categories":["voice-audio"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":57,"verified":false,"data_access_risk":"high","permissions":["Python 3.8-3.11","PyTorch (CPU or CUDA-enabled)","FFmpeg system-level installation for audio decoding","1-10 GB VRAM depending on model size (tiny=1GB, large=10GB)","PyTorch with CUDA for reasonable latency (CPU inference ~10-20x slower)","FFmpeg for audio decoding","Large model (1550M parameters, 10GB VRAM) or medium model (769M, 5GB VRAM) — turbo model does not support translation","PyTorch","Whisper package installed via pip","Any model size (tiny to large) — language detection is lightweight"],"failure_modes":["English-only models (tiny.en, base.en, small.en) sacrifice multilingual capability for 10-40% speed improvement","Accuracy varies significantly across languages — English achieves highest WER due to 65% of training data being English","30-second segment padding/trimming may lose context at audio boundaries for languages with complex prosody","No built-in speaker diarization or multi-speaker separation — treats all speech as single stream","Translation task is not supported in the turbo model (809M parameters) — only available in large model (1550M)","Turbo model optimized for transcription speed, not translation accuracy","No language-pair specificity — always translates to English regardless of source language","Translation quality depends heavily on source audio clarity; poor audio degrades both transcription and translation","No control over translation style, formality, or domain-specific terminology","High-level transcribe() API abstracts away many details, making it difficult to debug or optimize performance","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:05.297Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=whisper-cli","compare_url":"https://unfragile.ai/compare?artifact=whisper-cli"}},"signature":"gwH7Y2z8zMSCBnRnUEwUQ1dpxtXQh4CBv9kIL2M5o+ntLaS0nuKlpDS/RVRbwkzk+y7ELYuT9cmLS9/eN2bcDg==","signedAt":"2026-06-20T00:39:36.755Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/whisper-cli","artifact":"https://unfragile.ai/whisper-cli","verify":"https://unfragile.ai/api/v1/verify?slug=whisper-cli","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}