Awesome-omni-skill cli-context
Explains the CLI app architecture and capabilities. Use when working on CLI features, debugging CLI issues, or needing to understand the TTS pipeline, emotion annotation, or command flags.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-automation/cli-context" ~/.claude/skills/diegosouzapw-awesome-omni-skill-cli-context && rm -rf "$T"
manifest:
skills/cli-automation/cli-context/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- references API keys
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
Cartesia Download CLI - Architecture Reference
Overview
テキストから Cartesia TTS API で音声を生成する CLI ツール。Claude LLM による感情アノテーション付き。
Package Structure
apps/cli/src/ ├── cli.ts # gunshi エントリポイント ├── types.ts # RawCliArgs, RcConfig, AppError ├── commands/ │ └── download.ts # download コマンド実装 └── core/ ├── config.ts # 設定解決 (args → env → rc → defaults) ├── io.ts # ファイル I/O 抽象化 (neverthrow) └── format-error.ts # ユーザー向けエラーメッセージ packages/core/src/ ├── types.ts # TtsConfig, TtsClient, TextAnnotator ├── pipeline.ts # TTS ストリーミングパイプライン ├── tts-client.ts # Cartesia API ラッパー ├── annotator.ts # アノテーターファクトリ ├── marker-parser.ts # [SEP] マーカーパーサー ├── wav.ts # WAV ヘッダービルダー └── providers/ └── claude-annotator.ts # Claude 感情アノテーション
Command: download
cartesia-download [flags]
| Flag | Short | Default | Description |
|---|---|---|---|
| | — | 読み上げテキスト |
| | — | テキストファイルパス |
| — | Cartesia Voice ID (必須) | |
| | — | WAV 出力パス |
| | | TTS モデル ID |
| | サンプルレート (Hz) | |
| | LLM プロバイダー | |
| | LLM モデル | |
| — | LLM API キー | |
| | 感情アノテーション無効化 |
Data Flow
テキスト入力 (--text / --input ファイル) ↓ 設定解決 (CLI args > env vars > .cartesiarc.json > defaults) ↓ [感情アノテーション] Claude が SSML タグ + [SEP] マーカーを挿入 ↓ チャンクごとに Cartesia TTS API → PCM ストリーム → stdout ↓ [--output 指定時] WAV ファイル + アノテーション済みテキスト (.txt) 保存
Emotion Annotation
Claude が以下の SSML タグをテキストに挿入する:
— 感情<emotion value="happy|sad|angry|excited|..."/>
— 速度 (1.0 以下)<speed ratio="0.5-1.0"/>
— 音量<volume ratio="0.5-2.0"/>
使用可能な感情値: neutral, angry, excited, content, sad, scared, happy, curious, sarcastic, hesitant, confident, calm, surprised
[SEP] マーカーでチャンク分割し、チャンクごとに TTS API を呼ぶことでリアルタイムストリーミングを実現。
Config Resolution Priority
- CLI args (最優先)
- 環境変数 (
,CARTESIA_API_KEY
,CARTESIA_VOICE_ID
)ANTHROPIC_API_KEY - RC ファイル (
— ディレクトリを上方探索).cartesiarc.json - デフォルト値 (model: sonic-3, sampleRate: 44100)
Error Types
| Error | Cause |
|---|---|
| CARTESIA_API_KEY 未設定 |
| Voice ID 未指定 |
| --text も --input も未指定 |
| 入力ファイル読み取り失敗 |
| 出力ファイル書き込み失敗 |
| Cartesia API エラー |
| Claude API エラー |
| "claude" 以外のプロバイダー |
Key Design Patterns
- neverthrow: 全ての I/O は
でエラーハンドリングResultAsync - DI:
,io
,ttsClient
は外部注入 (テスタビリティ)annotator - Streaming: PCM チャンクを逐次 stdout に書き出し、リアルタイム再生可能
- Immutable: const only, 関数型パターン