{"id":50503942,"url":"https://github.com/nmbrthirteen/podcli","last_synced_at":"2026-06-02T14:00:38.365Z","repository":{"id":340944640,"uuid":"1167583625","full_name":"nmbrthirteen/podcli","owner":"nmbrthirteen","description":"Open-source AI podcast clipper. Generate vertical clips with face tracking and burned-in captions. CLI, MCP server, web app.","archived":false,"fork":false,"pushed_at":"2026-06-02T12:24:55.000Z","size":3923,"stargazers_count":7,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T13:24:23.440Z","etag":null,"topics":["ai-tools","auto-captions","captions","cli","ffmpeg","mcp","mcp-server","opusclip-alternative","podcast-clips","podcasts","shortform-video","vertical-video","whisper"],"latest_commit_sha":null,"homepage":"https://podcli.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmbrthirteen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T13:06:34.000Z","updated_at":"2026-06-02T12:25:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nmbrthirteen/podcli","commit_stats":null,"previous_names":["nmbrthirteen/podcli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/nmbrthirteen/podcli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbrthirteen%2Fpodcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbrthirteen%2Fpodcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbrthirteen%2Fpodcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbrthirteen%2Fpodcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmbrthirteen","download_url":"https://codeload.github.com/nmbrthirteen/podcli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbrthirteen%2Fpodcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33824902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tools","auto-captions","captions","cli","ffmpeg","mcp","mcp-server","opusclip-alternative","podcast-clips","podcasts","shortform-video","vertical-video","whisper"],"created_at":"2026-06-02T14:00:30.176Z","updated_at":"2026-06-02T14:00:38.350Z","avatar_url":"https://github.com/nmbrthirteen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/podcli-logo-transparent.png\" height=\"36\" alt=\"podcli\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eOpen-source AI podcast clipper.\u003c/strong\u003e\u003cbr/\u003e\n  Generate vertical clips with face tracking and burned-in captions. CLI, MCP server, and web app.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://podcli.com\"\u003e\u003cstrong\u003epodcli.com\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"#quick-start\"\u003eQuick start\u003c/a\u003e ·\n  \u003ca href=\"#mcp-server-claude-integration\"\u003eMCP\u003c/a\u003e ·\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/nmbrthirteen/podcli/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-AGPL--3.0-blue\" alt=\"license: AGPL-3.0\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nmbrthirteen/podcli/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/nmbrthirteen/podcli?style=social\" alt=\"stars\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://x.com/nikasiradze_/status/2056061654664708570\"\u003e\n    \u003cimg src=\"public/promo.gif\" alt=\"Podcli demo\" width=\"720\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003csub\u003e▶ \u003ca href=\"https://x.com/nikasiradze_/status/2056061654664708570\"\u003eWatch with sound on X\u003c/a\u003e\u003c/sub\u003e\u003c/p\u003e\n\n```bash\n./podcli process episode.mp4\n```\n\nOne command transcribes, picks the best moments, crops to the face, and burns captions in. Nothing leaves your machine.\n\n---\n\n## What It Does\n\n**podcli** takes a long-form podcast and turns it into a complete content operation:\n\n```\nRecord episode\n    ↓\nTranscribe (Whisper, speaker detection)\n    ↓\nFind viral moments (Claude AI + audio energy + knowledge base)\n    ↓\nRender clips (9:16, captions, smart crop, normalized audio)\n    ↓\nGenerate content package (titles, descriptions, thumbnails, SEO)    ← PodStack\n    ↓\nPublish with optimization checklist                                  ← PodStack\n    ↓\nReview performance                                                   ← PodStack\n```\n\nThe first half is **video processing** — podcli's core engine. The second half is **content workflow** — powered by [PodStack](https://github.com/nmbrthirteen/podstack), a set of Claude Code slash commands that ship with podcli. Both halves are deeply integrated: the clip suggestion engine reads from your PodStack knowledge base, uses your title formulas and voice rules, checks the episode database for duplicates, and outputs MCP-aligned fields that flow through to export.\n\n---\n\n## How It Works (From a User's Perspective)\n\n### 1. Drop in your episode\n\n```bash\n./setup.sh --ui\n# → http://localhost:3847\n```\n\nDrag your video into the Web UI, or use the CLI:\n\n```bash\n./podcli process episode.mp4\n```\n\n### 2. Get clips automatically\n\npodcli uses Claude to analyze your transcript against your show's knowledge base, finding the most viral moments. It scores each one on 4 dimensions, suggests clips with multi-cut segments (cutting out filler), and lets you toggle them on/off before rendering.\n\nClips come out as **upload-ready Shorts**: 1080x1920, 9:16 vertical, with burned-in captions, normalized audio, and your logo.\n\n### 3. Generate the full content package\n\nOpen the project in **Claude Code** and run:\n\n```\n/prep-episode\n```\n\nThis runs the [PodStack](https://github.com/nmbrthirteen/podstack) pipeline — a gstack-style workflow that gives you:\n\n- **8-15 scored moments** with timestamps, categories, and reasoning\n- **8 title options per clip** following your show's title spec (verified against 6 quality gates)\n- **Ready-to-paste descriptions** with hooks, guest attribution, hashtags, SEO keywords\n- **Thumbnail briefs** for both podcast (16:9) and shorts (9:16) formats\n- **Brand review** that catches banned words, voice violations, and weak hooks\n- **Publish checklist** covering pre-upload, at-publish, first-24-hours, and day 3-4 optimization\n\n### 4. Publish and track\n\nRun `/publish-checklist` when uploading. A week later, run `/retro-episode` with your YouTube Studio stats to see what worked and what to improve.\n\n---\n\n## The Two Halves\n\n|               | Video Engine (podcli core)                        | Content Workflow (PodStack)                  |\n| ------------- | ------------------------------------------------- | -------------------------------------------- |\n| **What**      | Transcription, clip detection, rendering          | Titles, descriptions, thumbnails, publishing |\n| **How**       | Python + FFmpeg + Whisper + OpenCV + Claude/Codex | Claude Code slash commands                   |\n| **Interface** | Web UI, CLI, MCP tools                            | `/slash-commands` in Claude Code             |\n| **Output**    | `.mp4` files ready to upload                      | Content packages ready to paste into YouTube |\n\nBoth halves share the same **knowledge base** (`.podcli/knowledge/`) — your show's brand, voice, title formulas, episode database, and style guide. Set it up once, everything stays on-brand.\n\n---\n\n## Features\n\n### Video Processing\n\n- **AI clip suggestion** — Claude/Codex-powered moment detection with knowledge base context, multi-cut segments, 4-dimension scoring\n- **Face tracking** — YuNet face detection, exponential-smoothing camera, split-screen support, speaker-aware tracking with snap cooldown\n- **Burned-in captions** — 4 styles: branded, hormozi, karaoke, subtle\n- **Hardware-accelerated encoding** — VideoToolbox (Mac), NVENC (NVIDIA), VAAPI, CPU fallback\n- **Smart cropping** — center crop or face tracking (handles split-screen, Riverside-style mixed layouts)\n- **Multi-segment clips** — automatically cuts out filler, long pauses, and tangents\n- **Whisper transcription** — auto-transcribe with speaker detection (tiny → large)\n- **Transcript import** — paste `Speaker (MM:SS)`, JSON, drag-drop `.txt` / `.srt` / `.vtt`\n\n### Content Workflow (PodStack)\n\n- **`/process-transcript`** — extract and score best moments from any transcript\n- **`/generate-titles`** — 8 titles per clip with 6-point verification checklist\n- **`/generate-descriptions`** — descriptions + hashtags + SEO keywords\n- **`/plan-thumbnails`** — thumbnail text + designer briefs for both formats\n- **`/review-content`** — paranoid brand check (banned words, voice, title rules)\n- **`/prep-episode`** — full pipeline: transcript → publish-ready package\n- **`/publish-checklist`** — pre/post-publish optimization\n- **`/retro-episode`** — performance analysis after publishing\n\n### Infrastructure\n\n- **Knowledge base** — `.md` files that teach the AI your brand, voice, and style\n- **Asset management** — register logos and videos for quick reuse\n- **Clip history** — tracks everything to avoid duplicates\n- **Preset system** — save named configurations per show\n- **MCP server** — 17 tools for Claude Desktop / Claude Code integration\n- **Web UI** — single-page flow at `localhost:3847`\n- **CLI** — one-command processing: `./podcli process episode.mp4`\n\n---\n\n## Prerequisites\n\n| Tool                       | Install                                                                                                                                              |\n| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Node.js** \u003e= 18          | [nodejs.org](https://nodejs.org)                                                                                                                     |\n| **Python** \u003e= 3.10         | [python.org](https://python.org)                                                                                                                     |\n| **FFmpeg**                 | `brew install ffmpeg` / `sudo apt install ffmpeg`                                                                                                    |\n| **Claude Code** (optional) | [docs.anthropic.com](https://docs.anthropic.com/en/docs/claude-code) — needed for PodStack slash commands                                            |\n| **Codex** (optional)       | [openai.com/codex](https://openai.com/index/introducing-codex/) — alternative AI engine for clip suggestion (auto-detected if Claude is unavailable) |\n\n## Quick Start\n\n```bash\ngit clone https://github.com/nmbrthirteen/podcli.git\ncd podcli\nchmod +x setup.sh podcli\n./setup.sh\n```\n\nThis will:\n\n1. Check system dependencies (Node, Python, FFmpeg)\n2. Create a Python virtual environment and install packages\n3. Install Node packages and build TypeScript\n4. Set up PodStack slash commands and knowledge base templates\n5. Create the local `.podcli/` data directory\n6. Launch the web UI at **http://localhost:3847**\n\n### Setup options\n\n```bash\n./setup.sh              # full install + launch UI\n./setup.sh --install    # install only\n./setup.sh --ui         # launch UI only (skip install)\n./setup.sh --mcp        # print MCP config for Claude\n```\n\n---\n\n## Usage\n\n### Web UI\n\n```bash\n./setup.sh --ui\n# → http://localhost:3847\n```\n\n1. **Set video** — drag-and-drop or enter a local path\n2. **Add transcript** — drag a `.txt` file, paste `Speaker (MM:SS)` text, or auto-transcribe with Whisper\n3. **Generate Clips** — analyzes audio energy + transcript to suggest viral moments\n4. **Review** — toggle clips on/off, pick caption style, crop mode, logo\n5. **Export** — batch-renders selected clips with hardware acceleration\n6. **Preview / Download** — watch results inline, download individual clips\n\n### CLI\n\n```bash\n# One command. Auto-transcribes, picks moments, renders clips.\n./podcli process episode.mp4\n```\n\nWith more control:\n\n```bash\n# Use an existing transcript instead of transcribing\n./podcli process episode.mp4 --transcript transcript.txt --top 5\n\n# Full options\n./podcli process episode.mp4 \\\n  --transcript transcript.txt \\\n  --top 8 \\\n  --caption-style branded \\\n  --crop center \\\n  --logo logo.png\n```\n\n### Presets\n\n```bash\n./podcli presets save myshow --caption-style branded --logo logo.png --top 5\n./podcli presets list\n./podcli process video.mp4 --preset myshow\n```\n\n### Content Workflow (PodStack)\n\nOpen the project in Claude Code, then use slash commands:\n\n```bash\n# Full pipeline — transcript to publish-ready package\n/prep-episode\n\n# Individual steps\n/process-transcript        # extract moments from a transcript\n/generate-titles           # get 8 title options for a clip\n/generate-descriptions     # get descriptions + hashtags\n/plan-thumbnails           # get thumbnail briefs for your designer\n/review-content            # brand and quality review\n/publish-checklist         # pre/post-publish ops\n/retro-episode             # performance analysis\n```\n\nOr just paste a transcript — Claude auto-detects the input and runs the right command.\n\n---\n\n## Knowledge Base\n\nThe knowledge base is what makes podcli understand _your_ show. Drop `.md` files into `.podcli/knowledge/` and both the video engine and content workflow use them. The clip suggestion engine reads 8 of these files (prioritized by relevance), checks the episode database for duplicate avoidance, and applies your voice rules and title formulas when generating suggestions.\n\nPodStack ships with **13 starter templates** that you fill in with your show's details:\n\n| File                          | What It Teaches The AI                               |\n| ----------------------------- | ---------------------------------------------------- |\n| `00-master-instructions.md`   | Auto-detection rules, decision tree, quality gates   |\n| `01-brand-identity.md`        | Show name, positioning, tagline, hosts, format       |\n| `02-voice-and-tone.md`        | Voice fingerprint, banned words, the Coffee Test     |\n| `03-episodes-database.md`     | Episode tracking, existing shorts (for dedup)        |\n| `04-shorts-creation-guide.md` | Moment types, selection criteria, extraction process |\n| `05-title-formulas.md`        | Title shapes, rules, templates by content type       |\n| `06-descriptions-template.md` | Description formulas, hashtag library, SEO keywords  |\n| `07-thumbnail-guide.md`       | Layouts, brand colors, typography, visual specs      |\n| `08-topics-themes.md`         | Core topics, cross-cutting themes, audience map      |\n| `09-content-workflow.md`      | End-to-end workflow phases, handoff specs            |\n| `10-internal-processing.md`   | Auto-execution rules, internal quality gates         |\n| `11-inspiration-channels.md`  | Reference channels, viral hooks, hybrid formulas     |\n| `12-quick-reference.md`       | Copy-paste hooks, hashtags, CTAs, checklists         |\n\nManage via the web UI at `/knowledge.html` (drag \u0026 drop, inline editor) or through the `knowledge_base` MCP tool.\n\n---\n\n## MCP Server (Claude Integration)\n\npodcli is a [Model Context Protocol](https://modelcontextprotocol.io) server — Claude can use it as a tool to create clips through conversation.\n\n**Claude Desktop** — add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"podcli\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/podcli/dist/index.js\"],\n      \"env\": {\n        \"PYTHON_PATH\": \"/path/to/podcli/venv/bin/python3\"\n      }\n    }\n  }\n}\n```\n\n**Claude Code:**\n\n```bash\nclaude mcp add podcli -- node /path/to/podcli/dist/index.js\n```\n\nRun `./setup.sh --mcp` to get the exact config with your paths filled in.\n\n### MCP Tools\n\n| Tool                 | Description                                                              |\n| -------------------- | ------------------------------------------------------------------------ |\n| `transcribe_podcast` | Transcribe audio/video with Whisper + speaker detection                  |\n| `suggest_clips`      | Submit clip suggestions (includes duplicate check)                       |\n| `create_clip`        | Render a single short-form clip as a vertical short                      |\n| `batch_create_clips` | Render multiple clips in one batch                                       |\n| `knowledge_base`     | Read/manage podcast context files (hosts, style, audience, etc.)         |\n| `manage_assets`      | Register/list reusable assets (logos, videos)                            |\n| `clip_history`       | View previously created clips, check for duplicates                      |\n| `get_ui_state`       | Read current session state and get workflow next-step guidance           |\n| `modify_clip`        | Adjust a suggested clip's timing, title, or caption style (or delete it) |\n| `toggle_clip`        | Select or deselect a suggested clip for export                           |\n| `update_settings`    | Update rendering settings (caption style, crop strategy, logo, outro)    |\n| `list_outputs`       | List all rendered clip files in the output directory                     |\n| `manage_presets`     | Save, load, list, or delete rendering presets                            |\n| `analyze_energy`     | Analyze audio energy levels to find high-energy moments                  |\n| `set_video`          | Set the working video file without transcribing                          |\n| `import_transcript`  | Import an external transcript with word-level timestamps (skips Whisper) |\n| `parse_transcript`   | Parse raw speaker-labeled plain text into word-level timestamps          |\n\n---\n\n## Caption Styles\n\n| Style       | Look                                                                                |\n| ----------- | ----------------------------------------------------------------------------------- |\n| **branded** | Large bold text, dark box highlight on active word, gradient overlay, optional logo |\n| **hormozi** | Bold uppercase pop-on text, yellow active word (Alex Hormozi style)                 |\n| **karaoke** | Full sentence visible, words highlight progressively                                |\n| **subtle**  | Clean minimal white text at bottom                                                  |\n\n---\n\n## Project Structure\n\n```\npodcli/\n├── podcli                    # CLI entry point\n├── setup.sh                  # one-command install \u0026 launch\n├── package.json\n├── CLAUDE.md                 # PodStack master config\n│\n├── .claude/commands/         # PodStack slash commands\n│   ├── process-transcript.md\n│   ├── generate-titles.md\n│   ├── generate-descriptions.md\n│   ├── plan-thumbnails.md\n│   ├── review-content.md\n│   ├── prep-episode.md\n│   ├── publish-checklist.md\n│   └── retro-episode.md\n│\n├── src/                      # TypeScript\n│   ├── index.ts              # MCP server entry (stdio)\n│   ├── server.ts             # MCP tool definitions\n│   ├── config/paths.ts\n│   ├── models/index.ts\n│   ├── handlers/             # MCP tool handlers\n│   ├── services/\n│   │   ├── python-executor.ts\n│   │   ├── file-manager.ts\n│   │   ├── asset-manager.ts\n│   │   ├── clips-history.ts\n│   │   ├── knowledge-base.ts\n│   │   └── transcript-cache.ts\n│   └── ui/\n│       ├── web-server.ts     # Express server + API\n│       └── public/           # Frontend (React SPA)\n│\n├── backend/                  # Python\n│   ├── main.py               # stdin/stdout JSON dispatcher\n│   ├── cli.py                # CLI entry point\n│   ├── presets.py\n│   ├── requirements.txt\n│   ├── models/               # ML model files\n│   │   └── face_detection_yunet_2023mar.onnx\n│   ├── services/             # Whisper, FFmpeg, captions, face tracking, etc.\n│   │   ├── face_detector.py  # shared YuNet face detector\n│   │   └── ...\n│   └── config/\n│       └── caption_styles.py\n│\n├── .podcli/                  # config home (gitignored) — knowledge, presets, assets\n│   ├── knowledge/\n│   ├── assets/\n│   ├── presets/\n│   └── history/\n└── data/                     # runtime data (gitignored) — cache, output, working\n    ├── cache/                # CLI transcription cache + remotion bundle\n    │   └── transcripts/      # MCP/UI transcript cache\n    ├── output/               # rendered clips\n    └── working/              # temp uploads and task dirs\n```\n\n## Configuration\n\nCopy `.env.example` to `.env` (setup.sh does this automatically):\n\n| Variable         | Default    | Description                                           |\n| ---------------- | ---------- | ----------------------------------------------------- |\n| `WHISPER_MODEL`  | `base`     | Whisper model size (tiny, base, small, medium, large) |\n| `WHISPER_DEVICE` | `auto`     | `cpu`, `cuda`, or `auto`                              |\n| `PYTHON_PATH`    | (venv)     | Path to Python binary                                 |\n| `PODCLI_HOME`    | `.podcli/` | Config home (knowledge, presets, assets, settings)    |\n| `PODCLI_DATA`    | `data/`    | Runtime data (cache, output, working, logs)           |\n| `FFMPEG_PATH`    | `ffmpeg`   | Custom FFmpeg path                                    |\n| `LOG_LEVEL`      | `info`     | Logging verbosity                                     |\n\n### Config profiles (multi-show / multi-machine)\n\nPortable bundles zip your config home (not cache or rendered clips):\n\n```bash\npodcli config export ~/backups/myshow.zip\npodcli config import ~/backups/myshow.zip --home ~/.podcli-myshow --activate\npodcli config status\n```\n\nActivate a config root without importing: `podcli config use ~/.podcli-myshow` (writes `.podcli-home` in the project).\n\n### Upgrading from older layouts\n\nOlder releases stored transcription cache under `project/.podcli/cache/` (now `data/cache/`) and presets under `project/presets/` (now `.podcli/presets/`). After upgrading, migration runs automatically when legacy files are still present (CLI, Web UI, MCP). To preview or run manually:\n\n```bash\npodcli config migrate --dry-run   # preview only\npodcli config migrate             # apply (same as auto when legacy cache exists)\n```\n\n**One source of truth:** settings live in **config home** (`PODCLI_HOME` or `.podcli/`, tracked by `.podcli-home`); heavy/runtime files live under **data** (`PODCLI_DATA` or `data/`). The marker file only points at which config home is active — it does not replace either root.\n\nMCP: `manage_config(action=migrate)`.\n\nWeb UI: [Config profiles](http://localhost:3847/config.html) (when `npm run ui` is running).\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development conventions.\n\n## Transcript Format\n\n```\nSpeaker Name (00:00)\nWhat they said goes here as plain text.\n\nAnother Speaker (00:45)\nTheir response text here.\n```\n\nThe time offset field (default: -1s) shifts all timestamps to sync with audio.\n\n---\n\n## Credits\n\nContent workflow powered by [PodStack](https://github.com/nmbrthirteen/podstack) — inspired by [gstack](https://github.com/garrytan/gstack) by Garry Tan.\n\n## License\n\nAGPL-3.0. See [LICENSE](LICENSE).\n\n**Need to use Podcli without AGPL terms?** A commercial license is available — email [siradze@nikusha.me](mailto:siradze@nikusha.me) with a one-line description of your use case.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmbrthirteen%2Fpodcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmbrthirteen%2Fpodcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmbrthirteen%2Fpodcli/lists"}