<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    
    <title>GitHub Daily Trending Repositories</title>
    <description>Daily Trending Repositories on GitHub</description>
    
    <pubDate>Mon, 14 Sep 2026 05:36:43 GMT</pubDate>
    <link>https://mshibanami.github.io/GitHubTrendingRSS</link>
    
    <item>
      <title>JustVugg/colibri</title>
      <link>https://github.com/JustVugg/colibri</link>
      <description>&lt;p&gt;Run frontier MoE models on hardware you already own — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 🐦&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://justvugg.github.io/colibri&quot;&gt;https://justvugg.github.io/colibri&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/assets/colibri-logo.svg?sanitize=true&quot; width=&quot;560&quot; alt=&quot;colibrì — tiny engine, immense model&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://justvugg.github.io/colibri&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/website-justvugg.github.io%2Fcolibri-1f6feb&quot; alt=&quot;Website&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/JustVugg/colibri/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/JustVugg/colibri?color=2ea043&quot; alt=&quot;Latest release&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://justvugg.github.io/colibri&quot;&gt;&lt;b&gt;Website&lt;/b&gt;&lt;/a&gt; · &lt;a href=&quot;https://discord.gg/RXV83nSZdk&quot;&gt;&lt;b&gt;Discord&lt;/b&gt;&lt;/a&gt; · English · &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/README.zh-CN.md&quot;&gt;简体中文&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/README.zh-TW.md&quot;&gt;繁體中文&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/README.it.md&quot;&gt;Italiano&lt;/a&gt; &lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Tiny engine, immense model.&lt;/strong&gt; Run &lt;strong&gt;frontier MoE models — 744B to 2.8T parameters&lt;/strong&gt; — on consumer and heterogeneous hardware, in pure C with zero engine dependencies, by treating storage, RAM, and VRAM as a single inference hierarchy (AI memory multitiering).&lt;/p&gt; 
&lt;p&gt;Nine families run today: &lt;strong&gt;GLM-5.2/5.3&lt;/strong&gt; (744B), &lt;strong&gt;GLM-5.3-Flash&lt;/strong&gt; (321B, with vision), &lt;strong&gt;Inkling&lt;/strong&gt; (975B), &lt;strong&gt;Kimi K3&lt;/strong&gt; (2.8T), &lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt; (284B), &lt;strong&gt;DeepSeek V4.1 Flash&lt;/strong&gt; (552B, with vision), &lt;strong&gt;Qwen3.8-Flash-Next&lt;/strong&gt; (125B + 51B n-gram), &lt;strong&gt;Qwen3.6&lt;/strong&gt; (35B-A3B) and &lt;strong&gt;OLMoE&lt;/strong&gt; (7B) — one C file each, the same &lt;code&gt;coli chat&lt;/code&gt; / &lt;code&gt;coli serve&lt;/code&gt; / &lt;code&gt;coli web&lt;/code&gt; front end. &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/#other-supported-models&quot;&gt;Full roster ↓&lt;/a&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Colibrì is an inference engine you can run today, and an open research platform.&lt;/strong&gt; Its primary goal is to pursue inference-side performance across the entire software/hardware boundary — model formats, memory hierarchy, storage I/O, placement, scheduling, kernels, speculation, and CPU/GPU overlap — so large models depend less on scarce hardware and cost less to run.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Colibrì treats VRAM, RAM, and storage as a single multitier hierarchy, and it is deliberately a place to test aggressive systems ideas — so there is &lt;strong&gt;no SLA on speed, and a hard guarantee on semantics&lt;/strong&gt;: experiments must earn their place through reproducible end-to-end measurements, and the default policy &lt;strong&gt;never silently changes model precision or router semantics&lt;/strong&gt;. Insufficient fast memory may reduce speed; it must not quietly redefine the model.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ ./coli chat
  🐦 colibri v1.11.0 — GLM-5.2 · 744B MoE · int4 · streaming CPU
  ✓ ready in 32s · resident 9.9 GB
  › ciao!
  ◆ Ciao! 😊 Come posso aiutarti oggi?
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;See it running&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/colibri-dashboard.png&quot; width=&quot;900&quot; alt=&quot;colibrì web dashboard — live metrics, hardware panel, expert tiers&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;em&gt;The web dashboard (&lt;code&gt;./coli web&lt;/code&gt;): a 744B model at &lt;strong&gt;4 tok/s, TTFT 1.6 s, disk 0&lt;/strong&gt; — full expert residency on 6× RTX 5090, with live token metrics, the per-turn time breakdown, the VRAM/RAM/disk tier bar and the live mini-brain in the corner.&lt;/em&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/colibri-brain.png&quot; width=&quot;900&quot; alt=&quot;the Brain page — 19,456 experts as a live cortex&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;em&gt;The &lt;strong&gt;Brain&lt;/strong&gt; page: all 19,456 experts as a living cortex — colour is the storage tier, brightness is routing heat, and every expert routed in a turn flashes white. Hovering shows the expert&#39;s &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/175&quot;&gt;measured topic affinity&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/colibri-atlas.png&quot; width=&quot;900&quot; alt=&quot;the Atlas page — the measured expert atlas as a 3-D galaxy&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;em&gt;The &lt;strong&gt;Atlas&lt;/strong&gt; page: the &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/175&quot;&gt;measured expert atlas&lt;/a&gt; as a 3-D galaxy — 13,260 characterised experts, 1,041 replicated specialists clustering by topic (poetry, law, Chinese, SQL…). Position is measured routing affinity, not a learned embedding. Drag to spin.&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;The research mission&lt;/h2&gt; 
&lt;p&gt;With Colibrì, private frontier model access is not limited by availability of hyperscaler-class hardware.&lt;/p&gt; 
&lt;p&gt;With its multitiering features Colibrì &lt;strong&gt;removes proprietary hardware dependencies aggressively optimizing functional inference engine pipelines&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;Our operational mission includes changing how weights are represented and moved, deciding what lives in VRAM, RAM, or storage, overlapping heterogeneous compute, reducing launch and synchronization overhead, exploiting sparsity and reuse, and testing new decoding algorithms. Nothing is protected merely because it is conventional; nothing is adopted merely because a microbenchmark looks fast. The deciding result is end-to-end inference on real machines, with correctness and quality measured alongside throughput, latency, memory, and cost.&lt;/p&gt; 
&lt;p&gt;The practical consequence is &lt;strong&gt;accessibility&lt;/strong&gt;: run a 744B-parameter model on hardware you already own, watch every expert fire in real time, and change the code that does it. Not renting intelligence behind an API — &lt;em&gt;holding&lt;/em&gt; it: probing it, measuring it, improving it. The engine is deliberately small enough that the next useful optimization can come from anyone willing to measure it.&lt;/p&gt; 
&lt;h2&gt;Core techniques and measured findings&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;One hierarchy, not limited by tier capacity.&lt;/strong&gt; VRAM, RAM, and NVMe are placement tiers for the same weights; limited fast memory changes speed, not model semantics.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;A JIT for weights.&lt;/strong&gt; Measured routing heat drives a per-layer LRU, a learned pinned hot-store, and one-layer-ahead prefetch instead of loading every expert. It wins on repeatable workloads; history can overfit, and lookahead can lose on some hosts, so both remain measurable policies rather than promises.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;I/O is part of the engine.&lt;/strong&gt; Batched expert unions, overlapped reads and compute, &lt;code&gt;O_DIRECT&lt;/code&gt;, and weighted dual-SSD striping attack the streaming path rather than pretending storage latency is free. &lt;code&gt;O_DIRECT&lt;/code&gt; is drive-dependent, and dual-SSD still needs broader end-to-end community A/Bs.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Heterogeneous execution.&lt;/strong&gt; CPU, CUDA, Metal, NUMA memory, and partial or full expert residency share one runtime and can be combined according to the machine; the profitable combination depends on compute, bandwidth, residency, and workload.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Compressed state without a different model.&lt;/strong&gt; Token-exact forward validation, 57× smaller MLA KV state, persistent warm conversations, and faithful DSA keep optimization tied to correctness. These are memory, latency, and correctness properties — not a blanket throughput claim.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Speculation that must earn its keep.&lt;/strong&gt; Native MTP and grammar-forced drafts are measured end to end and can be disabled when acceptance does not repay verification.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Open hypotheses, experiments, and how to help&lt;/h2&gt; 
&lt;p&gt;Colibrì treats an optimization as a hypothesis until a controlled end-to-end A/B shows otherwise. These are the main questions now:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;hypothesis&lt;/th&gt; 
   &lt;th&gt;evidence so far&lt;/th&gt; 
   &lt;th&gt;experiment still needed&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Routing history can place experts better than plain LRU&lt;/td&gt; 
   &lt;td&gt;learned pins improve repeated workloads, but can overfit a prompt&lt;/td&gt; 
   &lt;td&gt;held-out, cross-session A/Bs across coding, chat, multilingual, and long-context workloads&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Multiple SSDs can turn independent bandwidth into decode speed&lt;/td&gt; 
   &lt;td&gt;weighted mirror/split routing is implemented and validated; the bandwidth model is sound&lt;/td&gt; 
   &lt;td&gt;cold-cache one-drive vs two-drive GLM-5.2 runs on real, independent controllers&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;A hardware-aware planner can approach each machine&#39;s best configuration automatically&lt;/td&gt; 
   &lt;td&gt;RAM/VRAM budgets and several backends are detected today&lt;/td&gt; 
   &lt;td&gt;compare the generated plan with a controlled parameter sweep across laptops, workstations, NUMA hosts, and multi-GPU systems&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Lossless or quality-bounded representations can reduce weight movement enough to matter&lt;/td&gt; 
   &lt;td&gt;format and quantization ablations exist, with correctness/quality gates&lt;/td&gt; 
   &lt;td&gt;reproduce quality, bytes moved, latency, and cost per useful token together — not compression ratio alone&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Routing-aware speculation can pay before near-full residency&lt;/td&gt; 
   &lt;td&gt;MTP and grammar drafts work, but MTP has also measured a 32% loss around 85% expert hit&lt;/td&gt; 
   &lt;td&gt;map the break-even surface across acceptance, expert hit rate, batch union, and draft depth&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;CPU/GPU overlap can hide transfer and synchronization rather than merely move the bottleneck&lt;/td&gt; 
   &lt;td&gt;CUDA and Metal wins exist, but fast CPUs and low residency can erase them&lt;/td&gt; 
   &lt;td&gt;per-stage profiles and one-variable A/Bs across PCIe, unified-memory, and full-resident machines&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Want to help? Pick one row and publish the negative results too. Record the hardware, commit, model/container, exact command, prompt, cache state, throughput, TTFT, expert hit rate, bytes read, and quality check; change one variable, repeat the run, and attach raw logs. Start with &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt;, compare against &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/benchmarks.md&quot;&gt;the benchmark protocol&lt;/a&gt;, then &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/new&quot;&gt;open an experiment issue&lt;/a&gt;. A well-controlled failure is more valuable here than an unexplained fast number.&lt;/p&gt; 
&lt;h2&gt;The idea&lt;/h2&gt; 
&lt;p&gt;A 744B Mixture-of-Experts model activates only ~40B parameters per token — and only ~11 GB of those change from token to token (the routed experts):&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/sparse.png&quot; width=&quot;880&quot; alt=&quot;only ~5.4% of parameters are active per token&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;So the model doesn&#39;t need to &lt;em&gt;fit&lt;/em&gt; in fast memory — it needs to be &lt;strong&gt;placed&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;the &lt;strong&gt;dense part&lt;/strong&gt; (attention, shared experts, embeddings — ~17B params) stays &lt;strong&gt;resident in RAM at int4&lt;/strong&gt; (~9.9 GB);&lt;/li&gt; 
 &lt;li&gt;the &lt;strong&gt;19,456 routed experts&lt;/strong&gt; (75 MoE layers × 256 + the MTP head, ~19 MB each at int4) live &lt;strong&gt;on disk&lt;/strong&gt; (~370 GB) and are &lt;strong&gt;streamed on demand&lt;/strong&gt;, with a per-layer LRU cache, a learned pinned hot-store, and an optional VRAM tier.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Think of the core algorithm as &lt;strong&gt;a JIT, but for weights&lt;/strong&gt;. A compiler JIT never compiles the whole program — it watches what actually runs and compiles the hot paths, just in time. colibrì makes the same bet about a 744B parameter space: parameters are not resident state to be held, they are &lt;strong&gt;data to be staged&lt;/strong&gt; across a heterogeneous storage hierarchy (VRAM / RAM / NVMe), exactly when the router proves they are needed. Measured routing heat decides which experts earn which tier, the router runs a layer ahead so prefetch hides the staging latency, and — like a JIT — the engine learns your workload: the more you run, the hotter the right experts get. It works because routing has measurable structure (see the &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/175&quot;&gt;expert atlas&lt;/a&gt;) — and structure is cacheable.&lt;/p&gt; 
&lt;p&gt;The engine is a single C file (&lt;code&gt;c/colibri.c&lt;/code&gt;) plus small headers. No BLAS, no Python at runtime, no GPU required.&lt;/p&gt; 
&lt;h3&gt;Local cluster mode&lt;/h3&gt; 
&lt;p&gt;The coordinator keeps token generation, routing, and KV state local while disk-backed expert workers execute routed FFNs on other Macs. A layer&#39;s routed batch-union is sent as one persistent TCP request, so a token does not incur one round trip per expert.&lt;/p&gt; 
&lt;p&gt;Start the optional registration service:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./coli cluster coordinator --host 0.0.0.0 --port 8765
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;On each worker, with the same converted model available locally:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./coli cluster worker --model /nvme/glm52_i4 --port 9100 \
  --coordinator http://COORDINATOR:8765 --advertise-host WORKER_IP
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Run the coordinator with discovery, or provide &lt;code&gt;--cluster-workers HOST:PORT,...&lt;/code&gt; for a static setup:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./coli serve --model /nvme/glm52_i4 \
  --cluster-coordinator http://127.0.0.1:8765
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The transport is disabled unless workers are configured, so the existing single-machine path remains unchanged. Dense-layer sharding and browser/WebGPU workers are separate follow-up seams.&lt;/p&gt; 
&lt;h2&gt;How it works&lt;/h2&gt; 
&lt;h3&gt;The per-token path&lt;/h3&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/token-path.png&quot; width=&quot;880&quot; alt=&quot;route → union → place → overlap → learn&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;Every layer of every token walks the same five steps. The design goal is that &lt;strong&gt;placement only ever decides speed&lt;/strong&gt; — the router&#39;s decisions and the weights&#39; precision are the same whether an expert answered from VRAM or from disk.&lt;/p&gt; 
&lt;h3&gt;One memory hierarchy instead of one memory requirement&lt;/h3&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/tiers.png&quot; width=&quot;880&quot; alt=&quot;VRAM / RAM / NVMe three-tier expert residency&quot; /&gt; &lt;/p&gt; 
&lt;h3&gt;Dual-SSD: two copies of the model, twice the read bandwidth&lt;/h3&gt; 
&lt;p&gt;Decode is disk-bound on most machines, and expert reads are read-only — so if you have a &lt;strong&gt;second SSD&lt;/strong&gt;, put a full copy of the model on it and let the engine stream from both drives at once:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;COLI_MODEL=/fast/glm52_i4 COLI_MODEL_MIRROR=/second/glm52_i4 ./coli chat
COLI_DISK_WEIGHTS=9,3 ...   # optional: primary,mirror bandwidth ratio (else measured at startup)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Each expert is routed to one drive by a deterministic hash, weighted by the two drives&#39; measured (or declared) bandwidth, so readahead/PILOT prefetch and the demand read always hit the same drive and nothing is cached twice. The aggregate bandwidth is the sum of both drives — a 9 GB/s + 3 GB/s pair reads experts ~33% faster than the fast drive alone, and the OMP-parallel pin/warmup load streams from both. Details worth knowing:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;the mirror is &lt;strong&gt;validated at startup&lt;/strong&gt; (per-file size + safetensors header must be byte-identical to the primary); divergent or missing files silently stay on the primary, so a &lt;strong&gt;partial mirror is fine&lt;/strong&gt; — a smaller second SSD holding only some shards still helps;&lt;/li&gt; 
 &lt;li&gt;the mirror is &lt;strong&gt;never written&lt;/strong&gt;: &lt;code&gt;.coli_usage&lt;/code&gt;, &lt;code&gt;.coli_kv&lt;/code&gt; and all sidecars stay on the primary;&lt;/li&gt; 
 &lt;li&gt;a read error on the mirror falls back to the primary (one warning, no crash), so unplugging the second drive mid-run degrades instead of killing the server;&lt;/li&gt; 
 &lt;li&gt;routing never changes tokens — both copies are byte-identical, and the per-run &lt;code&gt;MIRROR:&lt;/code&gt; stats line shows GB served per drive.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The same engine spans the whole range: on a 25 GB laptop everything streams from disk (slow but correct); on a large host the entire expert set becomes resident (&lt;code&gt;CUDA_EXPERT_GB=auto PIN_GB=all&lt;/code&gt;) and disk drops out of the decode path entirely. Between the tiers sits a &lt;strong&gt;learning cache&lt;/strong&gt;: the engine records which experts &lt;em&gt;your&lt;/em&gt; workload routes to (&lt;code&gt;.coli_usage&lt;/code&gt;, updated every turn) and pins the hottest ones automatically — colibrì literally gets faster the more you use it. On multi-socket hosts, &lt;code&gt;COLI_NUMA=1&lt;/code&gt; interleaves the resident weights across memory controllers (&lt;a href=&quot;https://github.com/JustVugg/colibri/issues/82&quot;&gt;#82&lt;/a&gt;).&lt;/p&gt; 
&lt;p&gt;For a second drive that cannot hold the whole model, Colibri can rank a partial mirror from the expert history it already learns. Run a few representative prompts first so &lt;code&gt;.coli_usage&lt;/code&gt; reflects the workload, then plan, stage, and verify the mirror:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./c/coli mirror plan  --model /fast/glm52_i4 --mirror /second/glm52_i4 \
  --budget-gib 200 --reserve-gib 20
./c/coli mirror stage --model /fast/glm52_i4 --mirror /second/glm52_i4 \
  --budget-gib 200 --reserve-gib 20
./c/coli mirror verify --model /fast/glm52_i4 --mirror /second/glm52_i4
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The planner reads safetensors headers directly, follows split-model directories from &lt;code&gt;COLI_MODEL_DIRS&lt;/code&gt;, and prioritizes shards that can serve the hottest routed experts. Staging never changes the primary model: it copies through temporary files, preserves the requested free-space reserve, verifies every shard with SHA-256, never deletes an existing mirror shard, and atomically publishes a receipt only after the selected mirror is ready.&lt;/p&gt; 
&lt;h3&gt;Never wait for the disk twice&lt;/h3&gt; 
&lt;p&gt;Misses are expensive, so the engine spends most of its cleverness avoiding and overlapping them: each expert&#39;s three matrices are stored adjacent and read in one &lt;code&gt;pread&lt;/code&gt;; a bounded async I/O pool (&lt;code&gt;PIPE=1&lt;/code&gt;, default) loads missing experts while resident ones compute; batched positions read each unique expert once (&lt;strong&gt;batch-union&lt;/strong&gt;); and a router-lookahead thread (&lt;code&gt;PILOT=1&lt;/code&gt;) prefetches the next layer&#39;s experts — routing is measurably &lt;strong&gt;71.6% predictable one layer ahead&lt;/strong&gt;. On GPUs, the resident pipeline (&lt;code&gt;COLI_CUDA_PIPE=2&lt;/code&gt;) keeps the residual stream on-device across layers so the CPU expert loop runs uninterrupted; on Apple Silicon an experimental &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/metal.md&quot;&gt;Metal backend&lt;/a&gt; does the batched expert math on the unified-memory GPU; and a &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/vulkan.md&quot;&gt;Vulkan backend&lt;/a&gt; brings the expert tier, dense projections, and the MLA attention core to any GPU with a Vulkan 1.2 driver — including AMD cards via Mesa/RADV (the only backend for cards the vendor stacks no longer support, like the RX 580, and competitive with ROCm on RDNA4 — see &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/vulkan.md&quot;&gt;the benchmarking notes&lt;/a&gt;).&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;On real NVMe, measure &lt;code&gt;DIRECT=1&lt;/code&gt;.&lt;/strong&gt; O_DIRECT bypasses the page cache and is often a large win on drives with DRAM cache and bandwidth headroom (+34% decode measured with &lt;code&gt;PIPE=1&lt;/code&gt; on a Blackwell/Windows box; 4.25→9.69 GB/s in iobench on a GB10) — but it is drive-dependent: QLC/DRAM-less or virtualised disks can be neutral to negative. Try it first; keep what your hardware rewards.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Faithful model, compressed state&lt;/h3&gt; 
&lt;p&gt;The forward pass is validated against a &lt;code&gt;transformers&lt;/code&gt; oracle (teacher-forcing typically 30-32/32; two tiny-oracle positions are floating-point near-ties and toolchain-dependent). MLA attention stores a compressed KV state — 576 floats/token instead of 32,768 (&lt;strong&gt;57× smaller&lt;/strong&gt;) — and persists it across restarts (&lt;code&gt;.coli_kv&lt;/code&gt;): conversations reopen warm with zero re-prefill, byte-identical to an uninterrupted session. DSA sparse attention (GLM-5.2&#39;s lightning indexer) is implemented faithfully and validated by forcing full-key selection to reproduce dense attention exactly.&lt;/p&gt; 
&lt;h3&gt;Speculative decoding, honestly&lt;/h3&gt; 
&lt;p&gt;GLM-5.2&#39;s native MTP head drafts tokens that the main model verifies in one batched forward — 2.2–2.8 tokens/forward when it pays. Two hard-won rules ship as defaults: the MTP head must be &lt;strong&gt;int8&lt;/strong&gt; (int4 heads collapse to 0–4% acceptance, &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/8&quot;&gt;#8&lt;/a&gt;), and draft and verify must compute &lt;strong&gt;the same function&lt;/strong&gt; — &lt;code&gt;SPEC_PIN=1&lt;/code&gt; pins both to one kernel family (&lt;a href=&quot;https://github.com/JustVugg/colibri/issues/163&quot;&gt;#163&lt;/a&gt; is the full forensic story). Grammar-forced drafts (&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/grammar-draft.md&quot;&gt;&lt;code&gt;GRAMMAR=file.gbnf&lt;/code&gt;&lt;/a&gt;) add ~free acceptance on constrained JSON output. Whether speculation is a net win depends on your cache temperature — measure, and use &lt;code&gt;DRAFT=0&lt;/code&gt; when it doesn&#39;t pay.&lt;/p&gt; 
&lt;h2&gt;What it achieves&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/media/ladder.png&quot; width=&quot;880&quot; alt=&quot;measured decode speed by hardware class&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;Same engine, same int4 container — the hardware only changes where the experts live. Highlights from the &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/benchmarks.md&quot;&gt;full benchmark tables&lt;/a&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;6× RTX 5090, full residency:&lt;/strong&gt; 5.8–6.8 tok/s decode, TTFT ~13 s (&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/experiments/glm52-6x5090-2026-07-12.md&quot;&gt;experiment log&lt;/a&gt;);&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;128 GB CPU-only desktop:&lt;/strong&gt; ~1.8 tok/s warm (&lt;a href=&quot;https://github.com/JustVugg/colibri/issues/200&quot;&gt;#200&lt;/a&gt;);&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;single RTX 5070 Ti laptop-class box:&lt;/strong&gt; 1.07 tok/s via the GPU-resident pipeline (&lt;a href=&quot;https://github.com/JustVugg/colibri/issues/273&quot;&gt;#273&lt;/a&gt;);&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;25 GB dev box:&lt;/strong&gt; 0.05–0.1 tok/s cold — the proven floor where this project started, and still the honest baseline.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Quality is measured, not assumed: the int4 container&#39;s quantization cost and the scale-granularity/rotation ablations live in &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/benchmarks.md#quality-benchmark&quot;&gt;docs/benchmarks.md&lt;/a&gt; and &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/108&quot;&gt;#108&lt;/a&gt;/&lt;a href=&quot;https://github.com/JustVugg/colibri/issues/81&quot;&gt;#81&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Get started&lt;/h2&gt; 
&lt;p&gt;You need two things: &lt;strong&gt;the program&lt;/strong&gt; (a few hundred KB) and &lt;strong&gt;the model&lt;/strong&gt; (372 GB). Step-by-step for every platform in the &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/quickstart.md&quot;&gt;Quick Start guide&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;1. Get colibri&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;Download a prebuilt release&lt;/strong&gt; — Linux, macOS and Windows, no compiler needed. Take the archive for your platform from &lt;a href=&quot;https://github.com/JustVugg/colibri/releases&quot;&gt;Releases&lt;/a&gt; and unpack it:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir colibri &amp;amp;&amp;amp; tar xzf colibri-v1.8.0-linux-x86_64.tar.gz -C colibri &amp;amp;&amp;amp; cd colibri
python3 coli info                         # engine ready ✓
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Inside you get the engine (&lt;code&gt;colibri&lt;/code&gt;, &lt;code&gt;colibri.exe&lt;/code&gt; on Windows), the &lt;code&gt;coli&lt;/code&gt; launcher and its Python helpers. Nothing to rename or configure — &lt;code&gt;coli&lt;/code&gt; finds the engine next to itself. You only need &lt;a href=&quot;https://www.python.org/downloads/&quot;&gt;Python 3&lt;/a&gt; installed: the launcher and the API gateway are Python scripts, while the engine itself is pure C with zero dependencies.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Or build from source&lt;/strong&gt; — needs &lt;code&gt;gcc&lt;/code&gt; (or clang) with OpenMP:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/JustVugg/colibri &amp;amp;&amp;amp; cd colibri/c
./setup.sh                                # checks gcc/OpenMP, builds, self-tests
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Want &lt;code&gt;coli&lt;/code&gt; on your PATH? From a checkout, &lt;code&gt;pip install -e .&lt;/code&gt; registers it (the engine still lives in &lt;code&gt;c/&lt;/code&gt; — an editable install from the clone, not a wheel).&lt;/p&gt; 
&lt;h3&gt;2. Get the model&lt;/h3&gt; 
&lt;p&gt;A pre-converted &lt;strong&gt;GLM-5.2 int4&lt;/strong&gt; container is on Hugging Face — use the &lt;strong&gt;group-scaled (gs64)&lt;/strong&gt; build with the &lt;strong&gt;int8 MTP head&lt;/strong&gt;. It is about &lt;strong&gt;372 GB&lt;/strong&gt;, so put it on a disk with the room, ideally a fast one:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://huggingface.co/mastouri/GLM-5.2-colibri-int4-g64-with-int8-mtp&quot;&gt;https://huggingface.co/mastouri/GLM-5.2-colibri-int4-g64-with-int8-mtp&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;⚠️ Use the &lt;strong&gt;gs64&lt;/strong&gt; container above, not the older per-row int4 mirrors (&lt;code&gt;mateogrgic/…&lt;/code&gt;, &lt;code&gt;jlnsrk/…&lt;/code&gt;): those measure ~9pp worse on quality and are the root cause of the original think-mode loops and never-terminating generations in &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/455&quot;&gt;#455&lt;/a&gt;. The gs64 container fixed those controlled per-row A/Bs, but it is not a general repetition or EOS-starvation guard. The MTP head must also be &lt;strong&gt;int8, not int4&lt;/strong&gt; (int4 → 0% draft acceptance, &lt;a href=&quot;https://github.com/JustVugg/colibri/issues/8&quot;&gt;#8&lt;/a&gt;): &lt;code&gt;ls -l &amp;lt;model&amp;gt;/out-mtp-*&lt;/code&gt; — int8 (correct) is &lt;code&gt;3527131672 / 5366238584 / 1065950496&lt;/code&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Or convert from the FP8 source yourself — one resumable command that never needs the full 756 GB on disk at once:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./coli convert --model /nvme/glm52_i4     # download+convert shard by shard (python, one-time)
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Other supported models&lt;/h4&gt; 
&lt;p&gt;GLM-5.2 is the reference model, but the same streaming approach runs six more families. Each is a &lt;strong&gt;sibling engine&lt;/strong&gt; — one C file, its own architecture, the same &lt;code&gt;coli chat&lt;/code&gt; / &lt;code&gt;coli serve&lt;/code&gt; / &lt;code&gt;coli web&lt;/code&gt; front end (the launcher picks the binary from the model&#39;s &lt;code&gt;config.json&lt;/code&gt;):&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;What each one needs.&lt;/strong&gt; These differ a lot, and reading two of them together has confused people into thinking the requirements contradict each other (&lt;a href=&quot;https://github.com/JustVugg/colibri/issues/191&quot;&gt;#191&lt;/a&gt;). They do not — they are different models. &lt;strong&gt;None of them needs a GPU.&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Model&lt;/th&gt; 
    &lt;th&gt;Disk for the weights&lt;/th&gt; 
    &lt;th&gt;RAM&lt;/th&gt; 
    &lt;th&gt;GPU&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;OLMoE&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~7 GB (int8 container)&lt;/td&gt; 
    &lt;td&gt;8 GB&lt;/td&gt; 
    &lt;td&gt;not needed&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;GLM-5.2/5.3&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~372 GB&lt;/td&gt; 
    &lt;td&gt;16 GB min, 24 GB comfortable&lt;/td&gt; 
    &lt;td&gt;not needed&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;GLM-5.3-Flash&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~195 GB converted&lt;/td&gt; 
    &lt;td&gt;25 GB (12 GB weights at int4 + expert cache)&lt;/td&gt; 
    &lt;td&gt;not needed&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Inkling&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~469 GB&lt;/td&gt; 
    &lt;td&gt;25 GB with the int4 dense container, ~120 GB without&lt;/td&gt; 
    &lt;td&gt;not needed&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kimi K3&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~1.6 TB&lt;/td&gt; 
    &lt;td&gt;32 GB+&lt;/td&gt; 
    &lt;td&gt;not needed&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~167 GB (REAP 150B: ~85 GB)&lt;/td&gt; 
    &lt;td&gt;16 GB min, 32 GB comfortable&lt;/td&gt; 
    &lt;td&gt;optional; any NVIDIA card from the GTX 10 series up (Pascal/Turing via &lt;code&gt;CUDA_ARCH=portable-pre-ampere NO_TC=1&lt;/code&gt;, best on RTX 50) makes prefill 5-10x and decode ~2.5x faster&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Qwen3.8-Flash-Next&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~185.5 GB (official FP8 checkpoint)&lt;/td&gt; 
    &lt;td&gt;16 GB min, 24 GB comfortable at the default context&lt;/td&gt; 
    &lt;td&gt;not supported; CPU only&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Qwen3.6-35B-A3B&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;~20 GB (int4-gs64 container)&lt;/td&gt; 
    &lt;td&gt;24 GB (needs full RAM residency)&lt;/td&gt; 
    &lt;td&gt;optional; the CUDA VRAM expert tier measured &lt;strong&gt;1.44 -&amp;gt; 10.05 tok/s (7.0x)&lt;/strong&gt; on two 8 GB cards, output bit-identical to CPU&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;A GPU only ever makes it faster. Speed is set by your disk, because the experts are streamed from it — expect a fraction of a token per second on a slow drive and a few per second on a fast one with the cache warm.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Family&lt;/th&gt; 
   &lt;th&gt;Total / active&lt;/th&gt; 
   &lt;th&gt;Weights&lt;/th&gt; 
   &lt;th&gt;Build&lt;/th&gt; 
   &lt;th&gt;Docs&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GLM-5.2/5.3&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;744B / 40B&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/mastouri/GLM-5.2-colibri-int4-g64-with-int8-mtp&quot;&gt;&lt;code&gt;mastouri/…-int4-g64-with-int8-mtp&lt;/code&gt;&lt;/a&gt; (372 GB)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c glm&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;this page&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Inkling&lt;/strong&gt; (Thinking Machines)&lt;/td&gt; 
   &lt;td&gt;975B / 41B&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/nbeerbower/Inkling-colibri-int4&quot;&gt;&lt;code&gt;nbeerbower/Inkling-colibri-int4&lt;/code&gt;&lt;/a&gt; (469 GB)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c inkling&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/inkling.md&quot;&gt;inkling.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GLM-5.3-Flash&lt;/strong&gt; (&lt;a href=&quot;http://Z.ai&quot;&gt;Z.ai&lt;/a&gt;)&lt;/td&gt; 
   &lt;td&gt;321B / 40B&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/zai-org/GLM-5.3-Flash&quot;&gt;&lt;code&gt;zai-org/GLM-5.3-Flash&lt;/code&gt;&lt;/a&gt; — converted to &lt;strong&gt;int4-gs64&lt;/strong&gt; routed experts, dense stays BF16 and the precision is a load-time choice; vision included&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c glm53&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/glm53-flash.md&quot;&gt;glm53-flash.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Kimi K3&lt;/strong&gt; (Moonshot)&lt;/td&gt; 
   &lt;td&gt;2.8T / 104B&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/moonshotai/Kimi-K3&quot;&gt;&lt;code&gt;moonshotai/Kimi-K3&lt;/code&gt;&lt;/a&gt; — original checkpoint, routed experts stay &lt;strong&gt;native MXFP4&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c kimi_k3&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/kimi_k3.md&quot;&gt;kimi_k3.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;284B / 13B&lt;/td&gt; 
   &lt;td&gt;official sharded checkpoint — routed experts stay &lt;strong&gt;native fp4&lt;/strong&gt;, dense stays fp8-e4m3; the &lt;strong&gt;REAP-pruned 150B&lt;/strong&gt; (&lt;a href=&quot;https://huggingface.co/puwaer/DeepSeek-V4-Flash-0731-reap-150b&quot;&gt;&lt;code&gt;puwaer/DeepSeek-V4-Flash-0731-reap-150b&lt;/code&gt;&lt;/a&gt;, 85 GB, 132 of 256 experts) loads with the same engine and no conversion&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c deepseek-v4&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/deepseek-v4.md&quot;&gt;deepseek-v4.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;DeepSeek V4.1 Flash&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;552B / 16B&lt;/td&gt; 
   &lt;td&gt;official checkpoint, &lt;strong&gt;no conversion&lt;/strong&gt;: experts are already fp4, dense is fp8-e4m3. 203 GB of it is an n-gram memory read from disk a few hundred bytes at a time, and the routed experts cost &lt;strong&gt;4.5 GB per token&lt;/strong&gt; against GLM-5.2&#39;s 12.7. Vision, tool calling and the DSpark draft head are all on&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c deepseek_v41&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/deepseek-v41.md&quot;&gt;deepseek-v41.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Qwen3.8-Flash-Next&lt;/strong&gt; (Alibaba)&lt;/td&gt; 
   &lt;td&gt;125B + 51B n-gram / 6B&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen3.8-Flash-Next-FP8&quot;&gt;&lt;code&gt;Qwen/Qwen3.8-Flash-Next-FP8&lt;/code&gt;&lt;/a&gt; — original checkpoint; PLE stays pageable and experts stay &lt;strong&gt;native block-FP8&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c qwen38&lt;/code&gt; (CPU only)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/qwen38.md&quot;&gt;qwen38.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Qwen3.6&lt;/strong&gt; (Alibaba)&lt;/td&gt; 
   &lt;td&gt;35B / 3B&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/Kreuzzelg/qwen36-35b-a3b-colibri-i4-gs64&quot;&gt;&lt;code&gt;Kreuzzelg/qwen36-35b-a3b-colibri-i4-gs64&lt;/code&gt;&lt;/a&gt; (~20 GB, &lt;strong&gt;recommended&lt;/strong&gt;) — hybrid Gated Attention + Gated DeltaNet&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c qwen36&lt;/code&gt; (&lt;code&gt;CUDA=1&lt;/code&gt; for the VRAM expert tier)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/qwen36.md&quot;&gt;qwen36.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;OLMoE&lt;/strong&gt; (AI2)&lt;/td&gt; 
   &lt;td&gt;7B / 1B&lt;/td&gt; 
   &lt;td&gt;converted with &lt;code&gt;c/tools/convert_olmoe_merged.py&lt;/code&gt; — &lt;strong&gt;int8&lt;/strong&gt; container, ~7 GB&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;make -C c olmoe&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;—&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Qwen3.6 ships three pre-converted containers: &lt;strong&gt;int4-gs64&lt;/strong&gt; (recommended — measured cosine to the int8 anchor 0.98777 → 0.99313 and KL 0.109 → 0.080 against per-row, i.e. ~44% less quantization error), &lt;a href=&quot;https://huggingface.co/Kreuzzelg/qwen36-35b-a3b-colibri-i4&quot;&gt;int4 per-row&lt;/a&gt; as the A/B baseline, and &lt;a href=&quot;https://huggingface.co/Kreuzzelg/kat-coder-v2.5-dev-colibri-i4-gs64&quot;&gt;KAT-Coder v2.5&lt;/a&gt;, which the same engine runs unchanged — any architecture-identical checkpoint works without a code path of its own. With &lt;code&gt;CUDA=1&lt;/code&gt; the VRAM expert tier measured &lt;strong&gt;1.44 → 10.05 tok/s (7.0×) on two 8 GB cards&lt;/strong&gt;, output bit-identical to the CPU path.&lt;/p&gt; 
&lt;p&gt;Kimi K3 needs no conversion: its QAT-trained MXFP4 experts are streamed straight from the original Hugging Face shards, and the bf16 dense set is quantized at load time. Long agent sessions can opt into recurrent-state checkpoints (&lt;code&gt;COLI_K3_CKPT=N&lt;/code&gt; slots in RAM, or parked on disk with &lt;code&gt;COLI_K3_CKPT_DIR&lt;/code&gt;): an edited or follow-up prompt restores the deepest surviving checkpoint and re-prefills only the tail, instead of replaying the whole conversation through the SSM layers. On Vulkan hosts &lt;code&gt;K3_VK_UP=auto&lt;/code&gt; sizes the expert tier upload from measured bandwidth. The engine&#39;s KDA and MLA paths are validated token-exact in CI against the vendor implementation.&lt;/p&gt; 
&lt;p&gt;Inkling ships int4 experts but &lt;strong&gt;bf16 dense weights&lt;/strong&gt; (49.4 GB resident); on a host that cannot hold those, &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/inkling.md&quot;&gt;inkling.md&lt;/a&gt; has a one-pass tool that brings the dense set to 15.3 GB and lets the 975B run on a 25 GB box — with the honest trade-off written down.&lt;/p&gt; 
&lt;h3&gt;3. Run it&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;COLI_MODEL=/nvme/glm52_i4 ./coli chat     # RAM budget, cache and MTP auto-detected
COLI_MODEL=/nvme/glm52_i4 ./coli plan     # inspect the planned VRAM/RAM/disk placement
COLI_MODEL=/nvme/glm52_i4 ./coli doctor   # read-only readiness check
COLI_MODEL=/nvme/glm52_i4 ./coli doctor --deep  # strict tensors/shards/index/mirror preflight
COLI_MODEL=/nvme/glm52_i4 ./coli tune     # measure and save this machine&#39;s fastest safe execution profile
./coli web  --model /nvme/glm52_i4        # API + dashboard, and opens a browser
./coli serve --model /nvme/glm52_i4       # API + dashboard, no browser (headless)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;On Windows a release archive ships &lt;code&gt;coli.cmd&lt;/code&gt;: double-click it for the quick start, or run &lt;code&gt;coli.cmd chat --model D:\glm52_i4&lt;/code&gt; from cmd or PowerShell. From a source checkout the same commands work with &lt;code&gt;python coli chat --model D:\glm52_i4&lt;/code&gt;. The &lt;code&gt;.exe&lt;/code&gt; files are the engines, not the launcher: started on their own they have no model to load and exit immediately. The engine at runtime is pure C — python is only used by the one-time converter and the optional API gateway.&lt;/p&gt; 
&lt;h4&gt;The same commands run any of the models&lt;/h4&gt; 
&lt;p&gt;&lt;code&gt;coli&lt;/code&gt; reads the model&#39;s &lt;code&gt;config.json&lt;/code&gt;, picks the matching engine binary, and renders that family&#39;s chat template — so &lt;strong&gt;nothing about the command line changes between models&lt;/strong&gt;. Build the engine you want once, then just point &lt;code&gt;COLI_MODEL&lt;/code&gt; at the right directory:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;make -C c glm                                     # GLM-5.2
make -C c inkling                                 # Inkling
make -C c kimi_k3                                 # Kimi K3

COLI_MODEL=/nvme/glm52_i4      ./coli chat        # TUI
COLI_MODEL=/nvme/inkling_i4    ./coli chat
COLI_MODEL=/nvme/kimi_k3       ./coli chat

./coli web --model /nvme/inkling_i4               # API + dashboard, opens a browser
./coli web --model /nvme/kimi_k3
./coli serve --model /nvme/inkling_i4             # API + dashboard, no browser
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For the non-GLM engines &lt;code&gt;coli chat&lt;/code&gt; starts the gateway locally and attaches the TUI to it, so the TUI, the API and the dashboard all go through the same arch-aware chat template — you never have to pass the template yourself.&lt;/p&gt; 
&lt;p&gt;Two things that differ per model, both documented in the per-model page:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Inkling on a RAM-tight host&lt;/strong&gt; needs the int4 dense container and a small expert cache: &lt;code&gt;./coli chat --model /nvme/inkling_i4 --cap 2&lt;/code&gt; (see &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/inkling.md&quot;&gt;inkling.md&lt;/a&gt; — the default &lt;code&gt;--cap 8&lt;/code&gt; wants ~14 GB of cache on top of the resident set).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Kimi K3&lt;/strong&gt; streams its MXFP4 experts from the original checkpoint, so there is nothing to convert — but the snapshot is ~1.6 TB (see &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/kimi_k3.md&quot;&gt;kimi_k3.md&lt;/a&gt;).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;4. Go deeper&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;topic&lt;/th&gt; 
   &lt;th&gt;doc&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Benchmarks, community datapoints, quality measurements&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/benchmarks.md&quot;&gt;docs/benchmarks.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Tuning knobs, policies, the learning cache, prefetch&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/tuning.md&quot;&gt;docs/tuning.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Windows 11 native build (+ CUDA DLL)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/windows.md&quot;&gt;docs/windows.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;CUDA backend, VRAM expert tier, full residency&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/cuda.md&quot;&gt;docs/cuda.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Vulkan backend (any GPU: AMD via RADV, incl. cards ROCm dropped)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/vulkan.md&quot;&gt;docs/vulkan.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Apple Silicon Metal backend&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/metal.md&quot;&gt;docs/metal.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;OpenAI-compatible API, KV slots, web dashboard&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/api.md&quot;&gt;docs/api.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Experimental layer-segment embedding ABI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/segment-runtime.md&quot;&gt;docs/segment-runtime.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Experimental tokenizer/embedding/head Edge ABI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/edge-runtime.md&quot;&gt;docs/edge-runtime.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Grammar-forced drafts (structured output)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/grammar-draft.md&quot;&gt;docs/grammar-draft.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Environment variable inventory&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/ENVIRONMENT.md&quot;&gt;docs/ENVIRONMENT.md&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;DeepSeek V4&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt; streams the official checkpoint with no conversion: routed experts stay &lt;strong&gt;native fp4&lt;/strong&gt;, the dense set stays &lt;strong&gt;fp8-e4m3&lt;/strong&gt; with UE8M0 block scales. MLA + DSA sparse attention, 43 layers, 256 routed experts plus one shared, top-6. Supported on x86-64/aarch64 Linux and Windows/MSYS2 (CPU), with an optional CUDA tier (Windows runtime DLL; Linux &lt;code&gt;CUDA=1&lt;/code&gt; direct link, verified under WSL2) that keeps every stage CPU-canonical and falls back per stage.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd c
make deepseek-v4
python ./coli chat --model /path/to/DeepSeek-V4-Flash --ram 32
# also: coli run / coli serve / coli web
# Windows CUDA tier: make cuda-dsv4-dll CUDA_ARCH=portable  (+ make cuda-dsv4-dg-dll on RTX 50)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Two opt-in GPU levers are new and looking for community numbers, both default off and byte-identical when unset: &lt;code&gt;DSV4_HYBRID=1&lt;/code&gt; splits VRAM-tier misses between the GPU fill branch and the CPU branch using bandwidths measured at runtime, and &lt;code&gt;COLI_CUDA_MOE_DOUBLE=1&lt;/code&gt; (on top of &lt;code&gt;COLI_CUDA_MOE_BATCH=1&lt;/code&gt;) prefetches the next layer&#39;s full expert set into a second VRAM bank while the current layer computes, falling back to the single bank when VRAM is short. The CUDA tier also runs on Pascal and Turing cards now (GTX 10 / RTX 20 series): build with &lt;code&gt;CUDA_ARCH=portable-pre-ampere NO_TC=1&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Greedy decode and one KV slot. Tool calling is wired through the HTTP gateway with V4&#39;s native prompt and DSML call blocks; grammar is not supported. See the &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/api.md#tool-calling-support&quot;&gt;per-engine API matrix&lt;/a&gt;. Prefix checkpoints (in memory + on disk) make agent sessions and follow-up turns start in seconds after the first prefill of a system prompt. Measured on an RTX 5080 + 2 NVMe: 3324-token prefill 90 s, 8.3k-token first turn ~4 min once, later sessions/turns 6-9 s, decode ~1.6 tok/s at 3k context — see &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/deepseek-v4.md&quot;&gt;docs/deepseek-v4.md&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Give it RAM.&lt;/strong&gt; 43 × 256 routed experts are ~137 GiB on disk and a token touches 301 of them, so the expert cache hit rate is what sets tok/s — &lt;code&gt;--ram&lt;/code&gt; is the single most valuable knob, and it changes speed only, never output.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Speculative drafting exists and is off.&lt;/strong&gt; DSpark&#39;s markov drafter and full MTP are both implemented and verified: a draft can save forward passes but never change a token, because every accepted token is still the target&#39;s own argmax. Measured on real multi-turn chat, they accepted 1 in 15 and 10 in 24, and the rejected-suffix replay of this engine&#39;s recurrent attention state cost more than the drafts saved — one 14-token answer took 495 seconds. So &lt;code&gt;V4_DRAFT&lt;/code&gt; and &lt;code&gt;V4_MTP&lt;/code&gt; default to &lt;code&gt;0&lt;/code&gt; and the code stays, with the numbers beside it, for whoever retries this on faster storage.&lt;/p&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/JustVugg/colibri/main/docs/deepseek-v4.md&quot;&gt;docs/deepseek-v4.md&lt;/a&gt; for the CUDA tier (build, DLL selection, GPU coverage), the environment reference, performance numbers, checkpoint validation, and the generated tiny independent oracle.&lt;/p&gt; 
&lt;h2&gt;What&#39;s next&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Inference-systems research is the product.&lt;/strong&gt; The current hierarchy is LRU + a learned pin set; active work spans model formats, compression, placement, scheduling, I/O, CPU/GPU kernels, heterogeneous overlap, KV state, and routing-aware speculation. The objective is lower hardware requirements and lower cost per useful token. Everything lands the way this project works: measured end to end, reviewed, and developed in the open.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;More open models.&lt;/strong&gt; The tiering algorithm is model-agnostic: any MoE with routed experts can be staged the same way. Nine families run today (GLM-5.2, GLM-5.3-Flash, Inkling, Kimi K3, DeepSeek V4 Flash, DeepSeek V4.1 Flash, Qwen3.8-Flash-Next, Qwen3.6, OLMoE); further open-weight families — &lt;strong&gt;MiniMax&lt;/strong&gt; among the candidates — earn an engine the way the first eight did: when someone measures one end to end.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Supporting the project&lt;/h2&gt; 
&lt;p&gt;colibrì started as a one-person project on a 12-core laptop with 25 GB of RAM; today its numbers come from a community of real machines. If it&#39;s useful to you:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;⭐ star the repo and share it;&lt;/li&gt; 
 &lt;li&gt;🐛 open issues with benchmark numbers from your hardware — datapoints move this project more than anything else;&lt;/li&gt; 
 &lt;li&gt;💬 join the &lt;a href=&quot;https://discord.gg/RXV83nSZdk&quot;&gt;Discord community&lt;/a&gt; to discuss experiments, hardware results, and research directions;&lt;/li&gt; 
 &lt;li&gt;💬 reach out via GitHub issues to sponsor development or donate hardware.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Repo layout&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;Makefile                  root build/check entry point
c/
├── colibri.c             GLM-5.2 engine  (make glm)
├── inkling.c             Inkling engine  (make inkling)
├── kimi_k3.c             Kimi K3 engine  (make kimi_k3)
├── deepseek_v4.c         DeepSeek V4 Flash engine  (make deepseek-v4)
├── qwen38.c              Qwen3.8-Flash-Next text engine  (make qwen38)
├── qwen36.c              Qwen3.6 engine  (make qwen36)
├── olmoe.c               OLMoE engine  (make olmoe)
│
├── st.h                  safetensors index and range reads
├── quant.h               canonical container decoders
├── tok.h, json.h         tokenizer and JSON parser
├── compat.h              Windows/macOS shims (POSIX names, one place)
├── expert_store.h        streaming expert cache
├── route_trace.h         routing telemetry and .coli_usage, engine-agnostic
├── kv_prefix.h           KV prefix reuse across turns
│
├── backend_cuda.*        optional CUDA tier   (CUDA=1)
├── backend_metal.*       optional Metal tier  (METAL=1)
├── backend_vulkan.*      optional Vulkan tier (VULKAN=1)
│
├── Makefile              build and local checks
├── coli                  user-facing CLI
├── openai_server.py      OpenAI-compatible HTTP gateway
├── resource_plan.py      RAM/VRAM planner behind `coli plan` and `coli doctor`
├── tools/                offline conversion, fixtures and benchmarks
├── scripts/              long-running conversion helpers
└── tests/                dependency-free C and Python tests
web/                      browser UI (pure OpenAI-API client)
desktop/                  Tauri v2 desktop shell wrapping the web UI
docker/                   container images
docs/                     reference docs, experiments, media
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;One &lt;code&gt;.c&lt;/code&gt; per model family, over shared single headers.&lt;/strong&gt; An engine owns its architecture and nothing else; anything two engines both need — the safetensors reader, the container decoders, the tokenizer, the expert cache — lives in a header they both include, so a fix reaches all of them at once. That rule is not decorative: the defects that keep recurring here are the ones where a mechanism landed in one engine and never reached its siblings.&lt;/p&gt; 
&lt;p&gt;From the repository root, &lt;code&gt;make&lt;/code&gt;, &lt;code&gt;make check&lt;/code&gt; and &lt;code&gt;make clean&lt;/code&gt; delegate to the engine Makefile.&lt;/p&gt; 
&lt;h2&gt;Why &quot;colibrì&quot;&lt;/h2&gt; 
&lt;p&gt;The hummingbird weighs a few grams, hovers in place, and visits a thousand flowers a day. This engine keeps a 744-billion-parameter giant alive on hummingbird rations: 25 GB of RAM, twelve CPU cores, and a lot of disk patience.&lt;/p&gt; 
&lt;h2&gt;Acknowledgements&lt;/h2&gt; 
&lt;p&gt;colibrì is an engine; the minds it runs are a gift. Thank you to the teams releasing frontier-class weights in the open — &lt;strong&gt;&lt;a href=&quot;http://Z.ai&quot;&gt;Z.ai&lt;/a&gt;&lt;/strong&gt; (GLM), &lt;strong&gt;Moonshot AI&lt;/strong&gt; (Kimi), &lt;strong&gt;Alibaba Qwen&lt;/strong&gt;, &lt;strong&gt;MiniMax&lt;/strong&gt;, and &lt;strong&gt;Allen AI&lt;/strong&gt; (OLMoE) — and to every contributor who benchmarked, bisected, replicated an atlas run, or sent a patch. This project is proof of what open weights make possible.&lt;/p&gt; 
&lt;p&gt;The project&#39;s expert placement, compression, and routing experiments also build on ideas and evidence from the following open research and systems work:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/CerebrasResearch/reap&quot;&gt;REAP&lt;/a&gt; and &lt;a href=&quot;https://github.com/RUCAIBox/EASYEP&quot;&gt;EASY-EP&lt;/a&gt; for output-aware and domain-specific expert importance.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/JL-Cheng/SERE&quot;&gt;SERE&lt;/a&gt; for similarity-based expert re-routing, and &lt;a href=&quot;https://github.com/BUAA-OSCAR/ReMoE&quot;&gt;ReMoE&lt;/a&gt; for cache-locality-aware router fine-tuning.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/UNITES-Lab/MC-SMoE&quot;&gt;MC-SMoE&lt;/a&gt; for routing-guided expert merging and compression.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/inclusionAI/MoBE&quot;&gt;MoBE&lt;/a&gt; and &lt;a href=&quot;https://github.com/lliai/D2MoE&quot;&gt;D²-MoE&lt;/a&gt; for shared expert bases and low-rank expert deltas.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/PKU-SEC-Lab/HybriMoE&quot;&gt;HybriMoE&lt;/a&gt; for hybrid CPU/GPU expert scheduling, &lt;a href=&quot;https://arxiv.org/abs/2404.05019&quot;&gt;ScMoE&lt;/a&gt; for overlapping expert communication with computation, and &lt;a href=&quot;https://arxiv.org/abs/2512.03927&quot;&gt;OD-MoE&lt;/a&gt; for distributed on-demand expert loading.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/vllm-project/vllm&quot;&gt;vLLM&lt;/a&gt;, &lt;a href=&quot;https://github.com/ggml-org/llama.cpp&quot;&gt;llama.cpp&lt;/a&gt;, and &lt;a href=&quot;https://github.com/kvcache-ai/ktransformers&quot;&gt;kTransformers&lt;/a&gt; for the open inference systems and expert-offload work that make comparisons reproducible.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The engine also stands on concrete engineering work, not only ideas. Each of these is used or reimplemented in the tree today:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/huggingface/safetensors&quot;&gt;safetensors&lt;/a&gt; — the container every engine reads (&lt;code&gt;c/st.h&lt;/code&gt;), including its fp8 and I64 dtypes.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/openai/tiktoken&quot;&gt;tiktoken&lt;/a&gt; — &lt;code&gt;c/tok.h&lt;/code&gt; reimplements its &lt;code&gt;byte_pair_encode&lt;/code&gt; exactly, merging the adjacent pair whose concatenation has the lowest vocab id, so a tiktoken-derived vocabulary needs no merges list.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ggml-org/llama.cpp&quot;&gt;llama.cpp&lt;/a&gt; — the GBNF grammar subset in &lt;code&gt;c/grammar.h&lt;/code&gt; follows its syntax and its set-of-stacks PDA, and the Metal path borrows its &lt;code&gt;newBufferWithBytesNoCopy&lt;/code&gt; residency trick.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/vllm-project/vllm&quot;&gt;vLLM&lt;/a&gt; — the reference for output semantics the engine matches position by position (e.g. where the final norm lands relative to the LM head).&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/huggingface/transformers&quot;&gt;transformers&lt;/a&gt; — the oracle: CI reproduces a random-init model token for token against it.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/facebookresearch/dietgpu&quot;&gt;DietGPU&lt;/a&gt; — the GPU ANS codec behind the experimental compressed expert tier (&lt;code&gt;COLI_ANS&lt;/code&gt;).&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ROCm/rocWMMA&quot;&gt;rocWMMA&lt;/a&gt; — the HIP backend maps CUDA&#39;s &lt;code&gt;nvcuda::wmma&lt;/code&gt; fragment/mma_sync API onto it (&lt;code&gt;c/backend_gpu_compat.h&lt;/code&gt;), which is what lets one .cu source compile for both vendors.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;Apache 2.0. GLM-5.2 weights are released by &lt;a href=&quot;http://Z.ai&quot;&gt;Z.ai&lt;/a&gt; under MIT.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/18e80516d9af38020925c0e909e7413aa5715e42e57a25844d5d1a6b263be684/JustVugg/colibri" medium="image" />
      
    </item>
    
    <item>
      <title>ever-co/ever-gauzy</title>
      <link>https://github.com/ever-co/ever-gauzy</link>
      <description>&lt;p&gt;Ever® Gauzy™ - Open Business Management Platform (ERP/CRM/HRM/ATS/PM) - https://gauzy.co&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://gauzy.co&quot;&gt;https://gauzy.co&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Ever Gauzy Platform&lt;/h1&gt; 
&lt;p&gt;&lt;img src=&quot;https://visitor-badge.laobi.icu/badge?page_id=ever-co.gauzy-platform&quot; alt=&quot;visitors&quot; /&gt; &lt;a href=&quot;https://www.gnu.org/licenses/agpl-3.0.html&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/License-AGPL%20v3-blue.svg?sanitize=true&quot; alt=&quot;License: AGPL v3&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://deepwiki.com/ever-co/ever-gauzy&quot;&gt;&lt;img src=&quot;https://deepwiki.com/badge.svg?sanitize=true&quot; alt=&quot;Ask DeepWiki&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://gitpod.io/#https://github.com/ever-co/ever-gauzy&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod&quot; alt=&quot;Gitpod Ready-to-Code&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;💡 What&#39;s New&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;🔥🔥🔥 we just released &lt;a href=&quot;https://github.com/ever-works/ever-works&quot;&gt;Ever Works&lt;/a&gt; - An open agentic runtime that autonomously researches, ships, and maintains entire businesses, 24/7. Please grab it now from &lt;a href=&quot;https://github.com/ever-works/ever-works&quot;&gt;https://github.com/ever-works/ever-works&lt;/a&gt; and make it ⭐⭐⭐ on GitHub!&lt;/li&gt; 
 &lt;li&gt;if you like Gauzy, you should also like &lt;a href=&quot;https://github.com/ever-co/ever-teams&quot;&gt;Ever Teams&lt;/a&gt; - Open Work &amp;amp; Productivity Platform. Please check &lt;a href=&quot;https://github.com/ever-co/ever-teams&quot;&gt;https://github.com/ever-co/ever-teams&lt;/a&gt; and make it ⭐ on GitHub! It&#39;s built with a React (NextJs) / ReactNative (Expo) stack and connects to headless &lt;a href=&quot;https://api.gauzy.co/docs&quot;&gt;Ever Gauzy Platform APIs&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;🌟 What is it&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://gauzy.co&quot;&gt;Ever® Gauzy™&lt;/a&gt; - &lt;strong&gt;Open Business Management Platform&lt;/strong&gt; for Collaborative, On-Demand and Sharing Economies.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Enterprise Resource Planning&lt;/strong&gt; (ERP)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Customer Relationship Management&lt;/strong&gt; (CRM)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Human Resource Management&lt;/strong&gt; (HRM)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Applicant Tracking System&lt;/strong&gt; (ATS)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Work and Project Management&lt;/strong&gt; (PM)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Employee Time-Tracking, Activity &amp;amp; Productivity Tracking&lt;/strong&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;img width=&quot;1905&quot; height=&quot;988&quot; alt=&quot;image&quot; src=&quot;https://github.com/user-attachments/assets/6197a87a-8ae9-4380-91c3-3f85f8406542&quot; /&gt; 
&lt;p&gt;Ever® Gauzy™ Platform is a part of our larger Open Platform for &lt;strong&gt;Collaborative, On-Demand and Sharing Economies&lt;/strong&gt; - &lt;a href=&quot;https://ever.co&quot;&gt;Ever® Platform™&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;✨ Features&lt;/h2&gt; 
&lt;p&gt;Main features:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Human Resources Management (HRM) with Time Management / Tracking and Employees Performance Monitoring&lt;/li&gt; 
 &lt;li&gt;Customer Relationship Management (CRM)&lt;/li&gt; 
 &lt;li&gt;Enterprise Resource Planning (ERP)&lt;/li&gt; 
 &lt;li&gt;Projects / Tasks Management&lt;/li&gt; 
 &lt;li&gt;Sales Management&lt;/li&gt; 
 &lt;li&gt;Financial and Cost Management (including &lt;em&gt;Accounting&lt;/em&gt;, &lt;em&gt;Invoicing&lt;/em&gt;, etc)&lt;/li&gt; 
 &lt;li&gt;Inventory, Supply Chain Management, and Production Management&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;A more detailed list of the features available in the platform:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://api.gauzy.co/docs&quot;&gt;Headless APIs&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Dashboard (provides an overview of different metrics, such as company income/expenses, employee bonuses, etc.)&lt;/li&gt; 
 &lt;li&gt;Time Management / Time Tracking / Activity Tracking / Timesheets&lt;/li&gt; 
 &lt;li&gt;Employees Management (register of company employees/contractors, rates of employees, etc.)&lt;/li&gt; 
 &lt;li&gt;Employee Onboarding&lt;/li&gt; 
 &lt;li&gt;Applicant Tracking System (ATS) / Candidates Interviews&lt;/li&gt; 
 &lt;li&gt;Contacts Management (Clients / Customers / Leads / etc.)&lt;/li&gt; 
 &lt;li&gt;Schedules / Appointments / Events&lt;/li&gt; 
 &lt;li&gt;Project Management / Tasks&lt;/li&gt; 
 &lt;li&gt;Goals / KPI / Objectives / Key Results&lt;/li&gt; 
 &lt;li&gt;Sales Pipelines&lt;/li&gt; 
 &lt;li&gt;Proposals&lt;/li&gt; 
 &lt;li&gt;Accounting / Invoicing / Estimates&lt;/li&gt; 
 &lt;li&gt;Billing&lt;/li&gt; 
 &lt;li&gt;Payments&lt;/li&gt; 
 &lt;li&gt;Income / Expenses Management&lt;/li&gt; 
 &lt;li&gt;Time Off Management / Holidays / Approvals&lt;/li&gt; 
 &lt;li&gt;Inventory&lt;/li&gt; 
 &lt;li&gt;Equipment / Sharing&lt;/li&gt; 
 &lt;li&gt;Multiple Organizations Management&lt;/li&gt; 
 &lt;li&gt;Organization Departments and Teams&lt;/li&gt; 
 &lt;li&gt;Organization Clients and Vendors&lt;/li&gt; 
 &lt;li&gt;Help Center / Knowledge Base&lt;/li&gt; 
 &lt;li&gt;Tags / Labels&lt;/li&gt; 
 &lt;li&gt;Reports / Insights / Analytics&lt;/li&gt; 
 &lt;li&gt;Organization and Employee Public Pages&lt;/li&gt; 
 &lt;li&gt;Integrations (Upwork, HubStaff, etc.)&lt;/li&gt; 
 &lt;li&gt;Email History / Email Templates&lt;/li&gt; 
 &lt;li&gt;Data Import / Export&lt;/li&gt; 
 &lt;li&gt;Roles / Permissions&lt;/li&gt; 
 &lt;li&gt;Multi-currency&lt;/li&gt; 
 &lt;li&gt;Multi-lingual&lt;/li&gt; 
 &lt;li&gt;Dark / Light / Corporate / Material and other Themes&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Read more &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/About-Gauzy&quot;&gt;about Gauzy&lt;/a&gt; and &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/How-to-use-Gauzy&quot;&gt;how to use it&lt;/a&gt; at your company, on-demand business, freelance business, agency, studio or in-house teams.&lt;/p&gt; 
&lt;h2&gt;🌼 Screenshots&lt;/h2&gt; 
&lt;details&gt; 
 &lt;summary&gt;Show / Hide Screenshots&lt;/summary&gt; 
 &lt;h3&gt;Web UI&lt;/h3&gt; 
 &lt;p&gt;&lt;img src=&quot;https://docs.gauzy.co/overview.png&quot; alt=&quot;overview&quot; /&gt;&lt;/p&gt; 
 &lt;h3&gt;Desktop Timer UI (Standard)&lt;/h3&gt; 
 &lt;p&gt;&lt;img src=&quot;https://docs.gauzy.co/desktop/desktop-timer-small.png&quot; alt=&quot;timer&quot; /&gt;&lt;/p&gt; 
 &lt;h3&gt;Desktop Timer UI (Expanded)&lt;/h3&gt; 
 &lt;p&gt;&lt;img src=&quot;https://docs.gauzy.co/desktop/desktop-timer-expanded.png&quot; alt=&quot;timer&quot; /&gt;&lt;/p&gt; 
&lt;/details&gt; 
&lt;h2&gt;🔗 Links&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://gauzy.co&quot;&gt;https://gauzy.co&lt;/a&gt;&lt;/strong&gt; - check more information about the platform at the official website.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://app.gauzy.co&quot;&gt;https://app.gauzy.co&lt;/a&gt;&lt;/strong&gt; - SaaS (Important: it&#39;s currently in Alpha version/testing mode, please use it cautiously).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://demo.gauzy.co&quot;&gt;https://demo.gauzy.co&lt;/a&gt;&lt;/strong&gt; - Online Demo (see more info below).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://gauzy.co/downloads&quot;&gt;https://gauzy.co/downloads&lt;/a&gt;&lt;/strong&gt; - Download Platform &amp;amp; Apps (see also more info below about available downloads).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.gauzy.co&quot;&gt;https://docs.gauzy.co&lt;/a&gt;&lt;/strong&gt; - Platform Documentation (WIP). See also our &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki&quot;&gt;Wiki&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://ever.co&quot;&gt;https://ever.co&lt;/a&gt;&lt;/strong&gt; - get more information about our company products.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;📊 Activity&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/1775&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/1775&quot; alt=&quot;ever-co%2Fever-gauzy | Trendshift&quot; style=&quot;width: 250px; height: 55px;&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://repobeats.axiom.co/api/embed/7c6f6c3bf56fd91647549cf4ae70af49ed5ee106.svg?sanitize=true&quot; alt=&quot;Alt&quot; title=&quot;Repobeats analytics image&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;💻 Demo, Downloads, Testing and Production&lt;/h2&gt; 
&lt;h3&gt;Demo&lt;/h3&gt; 
&lt;p&gt;Ever Gauzy Platform Demo at &lt;a href=&quot;https://demo.gauzy.co&quot;&gt;https://demo.gauzy.co&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Notes:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Default super-admin user login is &lt;code&gt;admin@ever.co&lt;/code&gt; and the password is &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Content of demo DB resets on each deployment to the demo environment (usually daily)&lt;/li&gt; 
 &lt;li&gt;Demo environment deployed using CI/CD from the &lt;code&gt;develop&lt;/code&gt; branch&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Downloads&lt;/h3&gt; 
&lt;p&gt;You can download Gauzy Platform, Gauzy Server, or Desktop Apps (Windows/Mac/Linux) from the official &lt;a href=&quot;https://web.gauzy.co/downloads&quot;&gt;Downloads&lt;/a&gt; page.&lt;/p&gt; 
&lt;p&gt;In addition, all releases and pre-releases downloads are also available from the following pages:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ever-co/ever-gauzy/releases&quot;&gt;Platform Releases&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/Gauzy-Desktop-Apps&quot;&gt;Apps&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Production (SaaS)&lt;/h3&gt; 
&lt;p&gt;Ever® Gauzy™ Platform SaaS is available at &lt;a href=&quot;https://app.gauzy.co&quot;&gt;https://app.gauzy.co&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Note: it&#39;s currently in Alpha version/testing mode, please use it cautiously!&lt;/p&gt; 
&lt;h3&gt;Staging&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Gauzy Platform Staging builds (using CI/CD, from the &lt;code&gt;stage&lt;/code&gt; branch) are available at &lt;a href=&quot;https://stage.gauzy.co&quot;&gt;https://stage.gauzy.co&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;We are using the Staging environment to test releases before they are deployed to the production environment&lt;/li&gt; 
 &lt;li&gt;Our pre-releases of desktop/server apps are built from this environment and can be configured manually (in settings) to connect to Stage API: &lt;a href=&quot;https://apistage.gauzy.co&quot;&gt;https://apistage.gauzy.co&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Server &amp;amp; Desktop Apps&lt;/h3&gt; 
&lt;p&gt;We have Gauzy Server and two Desktop Apps (for Windows/Mac/Linux):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;Ever® Gauzy™ Server - includes Gauzy API, SQLite DB (or connects to external PostgreSQL) and serves Guazy frontend. It allows to quickly run Gauzy Server for multiple clients (browser-based or Desktop-based). It&#39;s a recommended option if you want to setup the Ever Gauzy Platform in small to medium organizations.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Ever® Gauzy™ Desktop App - includes Gauzy frontend (UI), Gauzy API, SQLite DB, etc., all-in-one! It allows to quickly run the whole Gauzy solution locally, both UI and Timer (for time tracking, optionally of course). In addition, it allows you to connect to the external database (e.g. PostgreSQL) or external API (if you have Gauzy Server with API / DB installed on a different computer or if you want to connect to our live API). It&#39;s a recommended option if you want to try Gauzy quickly / for personal use or if you want to connect to Gauzy Server in the &quot;client-server&quot; configuration (and use Desktop App instead of web browser).&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Ever® Gauzy™ Desktop Timer App - allows running Time and Activity Tracking for employees/contractors with screenshots and activity monitoring. It is recommended to setup by organization employees as long as they are not interested in other Gauzy Platform features (e.g. accounting) and only need to track work time.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;More information about our Server &amp;amp; Desktop Apps:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Download for your OS from the official &lt;a href=&quot;https://web.gauzy.co/downloads&quot;&gt;Downloads&lt;/a&gt; page or see the section &quot;Download&quot; above for other links to our releases pages.&lt;/li&gt; 
 &lt;li&gt;Setup Gauzy Server with default choices in Setup Wizard and run it.&lt;/li&gt; 
 &lt;li&gt;You can also setup Gauzy Desktop App (can run independently or connect to Gauzy Server) or Gauzy Desktop Timer App (should be connected to Gauzy Server)&lt;/li&gt; 
 &lt;li&gt;You can login with &lt;code&gt;admin@ever.co&lt;/code&gt; and password &lt;code&gt;admin&lt;/code&gt; to check Admin functionality if you installed Gauzy Server or Gauzy Desktop App. Note: such an Admin user is not an employee, so you will not be able to track time.&lt;/li&gt; 
 &lt;li&gt;You can login with &lt;code&gt;employee@ever.co&lt;/code&gt; and password &lt;code&gt;12345678&lt;/code&gt; to check Employee-related functionality in Gauzy UI or to run Desktop Timer from an &quot;Employee&quot; perspective (such a user is an Employee and can track time).&lt;/li&gt; 
 &lt;li&gt;If you install Gauzy Server, it is possible to connect to it using a browser (by default on &lt;a href=&quot;http://localhost:4200&quot;&gt;http://localhost:4200&lt;/a&gt;) or using Gauzy Desktop Apps (make sure to configure Desktop apps to connect to Gauzy API on &lt;a href=&quot;http://127.0.0.1:3000/api&quot;&gt;http://127.0.0.1:3000/api&lt;/a&gt; because it&#39;s where Gauzy Server API runs by default).&lt;/li&gt; 
 &lt;li&gt;You can read more information about our Desktop Apps on the &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/Gauzy-Desktop-Apps&quot;&gt;Desktop Apps Wiki Page&lt;/a&gt; and our Server at the &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/Gauzy-Server&quot;&gt;Server Wiki Page&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;🧱 Technology Stack and Requirements&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.typescriptlang.org&quot;&gt;TypeScript&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://nodejs.org&quot;&gt;NodeJs&lt;/a&gt; / &lt;a href=&quot;https://github.com/nestjs/nest&quot;&gt;NestJs&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://nx.dev&quot;&gt;Nx&lt;/a&gt; / &lt;a href=&quot;https://github.com/lerna/lerna&quot;&gt;Lerna&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://angular.io&quot;&gt;Angular&lt;/a&gt; / &lt;a href=&quot;http://reactivex.io/rxjs&quot;&gt;RxJS&lt;/a&gt; / &lt;a href=&quot;https://github.com/akveo/ngx-admin&quot;&gt;Ngx-admin&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/typeorm/typeorm&quot;&gt;TypeORM&lt;/a&gt; / &lt;a href=&quot;https://github.com/mikro-orm/mikro-orm&quot;&gt;MikroORM&lt;/a&gt; / &lt;a href=&quot;https://github.com/knex/knex&quot;&gt;Knex&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;For Production, we recommend:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.postgresql.org&quot;&gt;PostgreSQL&lt;/a&gt; or &lt;a href=&quot;https://dev.mysql.com&quot;&gt;MySQL&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://kubernetes.io&quot;&gt;Kubernetes&lt;/a&gt;, &lt;a href=&quot;https://www.docker.com&quot;&gt;Docker&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Note: thanks to TypeORM / MikroORM, Gauzy will support lots of DBs: SQLite (default, for demos), PostgreSQL (development/production), MySql (development/production), MariaDb, CockroachDb, MS SQL, Oracle, MongoDb, and others (with minimal changes).&lt;/p&gt; 
&lt;h4&gt;See also &lt;a href=&quot;http://README.md&quot;&gt;README.md&lt;/a&gt; and &lt;a href=&quot;http://CREDITS.md&quot;&gt;CREDITS.md&lt;/a&gt; files in relevant folders for lists of libraries and software included in the Platform, information about licenses, and other details&lt;/h4&gt; 
&lt;h2&gt;📄 Documentation&lt;/h2&gt; 
&lt;p&gt;Please refer to our official &lt;a href=&quot;https://docs.gauzy.co&quot;&gt;Platform Documentation&lt;/a&gt; and our &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki&quot;&gt;Wiki&lt;/a&gt; (WIP).&lt;/p&gt; 
&lt;h2&gt;🚀 Quick Start&lt;/h2&gt; 
&lt;h3&gt;Super Quick Start&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://app.gauzy.co&quot;&gt;https://app.gauzy.co&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Note: it&#39;s currently in Alpha version/testing mode, please use it cautiously!&lt;/p&gt; 
&lt;h3&gt;Run with Docker Compose&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Clone repo.&lt;/li&gt; 
 &lt;li&gt;Make sure you have the latest Docker Compose &lt;a href=&quot;https://docs.docker.com/compose/install&quot;&gt;installed locally&lt;/a&gt;. Important: you need a minimum &lt;a href=&quot;https://docs.docker.com/compose/release-notes/#2200&quot;&gt;v2.20&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Demo&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Run &lt;code&gt;docker-compose -f docker-compose.demo.yml up&lt;/code&gt;, if you want to run the platform in basic configuration (e.g. for Demo / explore functionality / quick run) using our prebuilt Docker images. Check &lt;code&gt;.env.demo.compose&lt;/code&gt; file for different settings (optionally), e.g. DB type. &lt;em&gt;(Note: Docker Compose will use latest images pre-build automatically from head of &lt;code&gt;master&lt;/code&gt; branch using GitHub CI/CD.)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;Open &lt;a href=&quot;http://localhost:4200&quot;&gt;http://localhost:4200&lt;/a&gt; in your browser.&lt;/li&gt; 
 &lt;li&gt;Login with email &lt;code&gt;admin@ever.co&lt;/code&gt; and password: &lt;code&gt;admin&lt;/code&gt; for Super Admin user.&lt;/li&gt; 
 &lt;li&gt;Login with email &lt;code&gt;employee@ever.co&lt;/code&gt; and password: &lt;code&gt;12345678&lt;/code&gt; for Employee user.&lt;/li&gt; 
 &lt;li&gt;Enjoy!&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Production&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Edit &lt;code&gt;.env.compose&lt;/code&gt;: you &lt;strong&gt;must&lt;/strong&gt; set &lt;code&gt;JWT_SECRET&lt;/code&gt;, &lt;code&gt;JWT_REFRESH_TOKEN_SECRET&lt;/code&gt;, &lt;code&gt;JWT_VERIFICATION_TOKEN_SECRET&lt;/code&gt; and &lt;code&gt;EXPRESS_SESSION_SECRET&lt;/code&gt; to strong, unique values (e.g. &lt;code&gt;openssl rand -hex 64&lt;/code&gt;). The API refuses to start on the shipped blank/default secrets — shared defaults let anyone forge authentication tokens and sessions. Adjust any other settings (e.g. DB type) there too.&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;docker-compose up -d&lt;/code&gt;, if you want to run the platform in minimal production configuration using our prebuilt Docker images. &lt;em&gt;(Note: Docker Compose will use latest images pre-build automatically from head of &lt;code&gt;master&lt;/code&gt; branch using GitHub CI/CD.)&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Note: we recommend using Kubernetes for production workloads instead of Docker Compose!&lt;/p&gt; 
&lt;h4&gt;Build&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Edit &lt;code&gt;.env.compose&lt;/code&gt; (if needed) to use your custom settings, e.g. DB type.&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;docker-compose -f docker-compose.build.yml up -d&lt;/code&gt;, if you want to build everything (code and Docker images) locally. &lt;em&gt;(Note: this is extremely long process because it builds whole platform locally. Other options above are much faster!)&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;☕ time... It might take some time for our API to seed fake data in the DB during the first Docker Compose run, even if you used prebuilt Docker images.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Notes:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;while demo &lt;code&gt;docker-compose.demo.yml&lt;/code&gt; runs a minimum amount of containers (API, Web UI, and DB), other Docker Compose files run multiple infrastructure dependencies (see full list below).&lt;/li&gt; 
 &lt;li&gt;you can also run ONLY infra dependencies (without our API / Web containers) with &lt;code&gt;docker-compose -f docker-compose.infra.yml up -d&lt;/code&gt; command. We already doing it using &lt;code&gt;include&lt;/code&gt; in our main docker compose files.&lt;/li&gt; 
 &lt;li&gt;you can add something like &lt;code&gt;--env-file .env.something&lt;/code&gt; to the docker-compose &lt;code&gt;up&lt;/code&gt; command to instruct Docker Compose to use a specific &lt;code&gt;.env.something&lt;/code&gt; file with your custom settings&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Together with Gauzy, the Docker Compose commands described above for Production (&lt;code&gt;docker-compose.yml&lt;/code&gt;) and Build (&lt;code&gt;docker-compose.build.yml&lt;/code&gt;) will run the following infrastructure components:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.postgresql.org&quot;&gt;PostgreSQL&lt;/a&gt; - Primary Database.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/sosedoff/pgweb&quot;&gt;Pgweb&lt;/a&gt; - Cross-platform client for PostgreSQL DBs, available on &lt;a href=&quot;http://localhost:8081&quot;&gt;http://localhost:8081&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/opensearch-project&quot;&gt;OpenSearch&lt;/a&gt; - Search Engine.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/opensearch-project&quot;&gt;OpenSearch Dashboards&lt;/a&gt; - Search Engine Dashboards, available on &lt;a href=&quot;http://localhost:5601&quot;&gt;http://localhost:5601&lt;/a&gt;. Default username: &lt;code&gt;admin&lt;/code&gt; and password: &lt;code&gt;Gauzy_password_123&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/appbaseio/dejavu&quot;&gt;Dejavu&lt;/a&gt; - Web UI for OpenSearch, available on &lt;a href=&quot;http://localhost:1358&quot;&gt;http://localhost:1358&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/minio/minio&quot;&gt;MinIO&lt;/a&gt; - Multi-Cloud ☁️ Object Storage (AWS S3 compatible).&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/jitsucom/jitsu&quot;&gt;Jitsu&lt;/a&gt; - Jitsu is an open-source Segment alternative (data ingestion engine).&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/redis/redis&quot;&gt;Redis&lt;/a&gt; - In-memory data store/caching (also used by Jitsu)&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/cube-js/cube&quot;&gt;Cube&lt;/a&gt; - &quot;Semantic Layer&quot; used for Reports, Dashboards, Analytics, and other BI-related features, with UI available on &lt;a href=&quot;http://localhost:4000&quot;&gt;http://localhost:4000&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/openzipkin/zipkin&quot;&gt;Zipkin&lt;/a&gt; - distributed tracing system.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Quick Start to manually build &amp;amp; run&lt;/h3&gt; 
&lt;h4&gt;Required&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Install &lt;a href=&quot;https://nodejs.org/en/download&quot;&gt;NodeJs&lt;/a&gt; LTS version or later (e.g. version 22.x or 24.x).&lt;/li&gt; 
 &lt;li&gt;Install &lt;a href=&quot;https://github.com/yarnpkg/yarn&quot;&gt;Yarn&lt;/a&gt; v1.22.x (if you don&#39;t have it) with &lt;code&gt;npm i -g yarn&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Install NPM packages and Bootstrap solution using the command &lt;code&gt;yarn bootstrap&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;If you will need to make code changes (and push to Git repo), please run &lt;code&gt;yarn prepare:husky&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Adjust settings in the &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/develop/.env.local&quot;&gt;&lt;code&gt;.env.local&lt;/code&gt;&lt;/a&gt; which is used in local runs.&lt;/li&gt; 
 &lt;li&gt;Alternatively, you can copy &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/develop/.env.sample&quot;&gt;&lt;code&gt;.env.sample&lt;/code&gt;&lt;/a&gt; to &lt;code&gt;.env&lt;/code&gt; and change default settings there, e.g. database type, name, user, password, etc.&lt;/li&gt; 
 &lt;li&gt;Run both API and UI with a single command: &lt;code&gt;yarn start&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Open Gauzy UI on &lt;a href=&quot;http://localhost:4200&quot;&gt;http://localhost:4200&lt;/a&gt; in your browser (API runs on &lt;a href=&quot;http://localhost:3000/api&quot;&gt;http://localhost:3000/api&lt;/a&gt;).&lt;/li&gt; 
 &lt;li&gt;Login with email &lt;code&gt;admin@ever.co&lt;/code&gt; and password: &lt;code&gt;admin&lt;/code&gt; for Super Admin user.&lt;/li&gt; 
 &lt;li&gt;Login with email &lt;code&gt;employee@ever.co&lt;/code&gt; and password: &lt;code&gt;12345678&lt;/code&gt; for Employee user.&lt;/li&gt; 
 &lt;li&gt;Enjoy!&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Notes:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;during the first API start, DB will be automatically seeded with a minimum set of initial data if no users are found.&lt;/li&gt; 
 &lt;li&gt;you can run seed any moment manually (e.g. if you changed entities schemas) with the &lt;code&gt;yarn seed&lt;/code&gt; command to re-initialize DB (warning: unsafe for production!).&lt;/li&gt; 
 &lt;li&gt;it is possible to run generation of extremely large amounts of fake data for demo purposes/testing with &lt;code&gt;yarn seed:all&lt;/code&gt; (warning: takes ~10 min to complete)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Optional / Recommended for Production&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Optionally (recommended for production) install and run &lt;a href=&quot;https://www.postgresql.org&quot;&gt;PostgreSQL&lt;/a&gt; version 14 or later (16.x recommended for production). Note: other DB can be configured manually in TypeORM / MikroORM / Knex. The default DB is set to SQLite (recommended for testing/demo purposes only).&lt;/li&gt; 
 &lt;li&gt;Optionally (recommended for production) install and run &lt;a href=&quot;https://github.com/redis/redis&quot;&gt;Redis&lt;/a&gt;. Notes: the platform will work without Redis using an in-memory caching strategy instead of a distributed one (recommended for testing/demo purposes only). Please note however that Redis is required for Jitsu.&lt;/li&gt; 
 &lt;li&gt;Optionally (recommended for production) install and run &lt;a href=&quot;https://github.com/opensearch-project&quot;&gt;OpenSearch&lt;/a&gt;. Note: the platform will work without OpenSearch using DB build-in search capabilities (recommended for testing/demo purposes only).&lt;/li&gt; 
 &lt;li&gt;Optionally install and run &lt;a href=&quot;https://github.com/minio/minio&quot;&gt;MinIO&lt;/a&gt; or &lt;a href=&quot;https://github.com/localstack/localstack&quot;&gt;LocalStack&lt;/a&gt;. Note: the platform will work without MinIO / LocalStack or other S3-compatible storage using local filesystem-based storage (recommended for testing/demo purposes only). For production, we recommend using Wasabi or AWS S3 storage or another S3-compatible cloud storage.&lt;/li&gt; 
 &lt;li&gt;Optionally (recommended for production) install and run &lt;a href=&quot;https://github.com/jitsucom/jitsu&quot;&gt;Jitsu&lt;/a&gt;. Note: the platform will work without Jitsu, however, data ingestion will be disabled for additional analyses / real-time pipelines.&lt;/li&gt; 
 &lt;li&gt;Optionally (recommended for production) install and run &lt;a href=&quot;https://github.com/cube-js/cube&quot;&gt;Cube&lt;/a&gt;. Note: the platform will work without Cube, however some advanced (dynamic) reporting and data processing capabilities will be disabled.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;🏭 Production&lt;/h3&gt; 
&lt;h4&gt;General information&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;See &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/Setup-Gauzy-for-Client-Server&quot;&gt;Setup Gauzy for Client Server&lt;/a&gt; for more information about production setup on your servers.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Kubernetes&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;We recommend deploying to Kubernetes (k8s), either manually (see below) or with our &lt;a href=&quot;https://github.com/ever-co/ever-gauzy-terraform&quot;&gt;Terraform Modules&lt;/a&gt; or &lt;a href=&quot;https://github.com/ever-co/ever-charts&quot;&gt;Ever Helm Charts&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;For more simple deployment scenarios with k8s, please see &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/tree/develop/.deploy/k8s&quot;&gt;Kubernetes configurations&lt;/a&gt;, which we are using to deploy Gauzy into &lt;a href=&quot;https://www.digitalocean.com/products/kubernetes&quot;&gt;DigitalOcean k8s cluster&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;DigitalOcean App Platform&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;For the most simple deployment scenarios (e.g. for yourself or your small organization), check our &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/tree/develop/.do&quot;&gt;DigitalOcean App Platform configurations&lt;/a&gt; and corresponding &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/develop/.github/workflows/deploy-do-app-platform-stage.yml&quot;&gt;GitHub Action&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Virtual Instances / Droplets (via SSH)&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Another variant to deploy Gauzy is to use DigitalOcean Droplets or any other virtual instance (with Ubuntu OS) and deploy using SCP/SSH, for example, following &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/develop/.github/workflows/deploy-do-droplet-demo.yml&quot;&gt;GitHub Action&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Pulumi&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;In addition, check &lt;a href=&quot;https://github.com/ever-co/ever-gauzy-pulumi&quot;&gt;Gauzy Pulumi&lt;/a&gt; project (WIP), it makes complex Clouds deployments possible with a single command (&lt;code&gt;pulumi up&lt;/code&gt;). Note: it currently supports AWS EKS (Kubernetes) for development and production with Application Load Balancers and AWS RDS Serverless PostgreSQL DB deployments. We also implemented deployments to ECS EC2 and Fargate Clusters in the same Pulumi project.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;🚗 Other self-hosting options&lt;/h3&gt; 
&lt;h4&gt;Deploy on RepoCloud&lt;/h4&gt; 
&lt;p&gt;Deploy Ever Gauzy instantly with one click on &lt;a href=&quot;https://repocloud.io/details/Ever%20Gauzy/&quot;&gt;RepoCloud&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;💌 Contact Us&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://ever.co/contacts&quot;&gt;Ever.co Website Contact Us page&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://join.slack.com/t/gauzy/shared_invite/enQtNzc5MTA5MDUwODg2LTI0MGEwYTlmNWFlNzQzMzBlOWExNTk0NzAyY2IwYWYwMzZjMTliYjMwNDI3NTJmYmM4MDQ4NDliMDNiNDY1NWU&quot;&gt;Slack Community&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://discord.gg/hKQfn4j&quot;&gt;Discord Chat&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://gitter.im/ever-co/ever-gauzy?utm_source=badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=pr-badge&amp;amp;utm_content=badge&quot;&gt;&lt;img src=&quot;https://badges.gitter.im/JoinChat.svg?sanitize=true&quot; alt=&quot;Gitter&quot; /&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.codementor.io/evereq?utm_source=github&amp;amp;utm_medium=button&amp;amp;utm_term=evereq&amp;amp;utm_campaign=github&quot;&gt;&lt;img src=&quot;https://cdn.codementor.io/badges/get_help_github.svg?sanitize=true&quot; alt=&quot;Get help on Codementor&quot; /&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;For business inquiries: &lt;a href=&quot;mailto:gauzy@ever.co&quot;&gt;mailto:gauzy@ever.co&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Please report security vulnerabilities to &lt;a href=&quot;mailto:security@ever.co&quot;&gt;mailto:security@ever.co&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://twitter.com/gauzyplatform&quot;&gt;Gauzy Platform @ Twitter&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.facebook.com/gauzyplatform&quot;&gt;Gauzy Platform @ Facebook&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;🔐 Security&lt;/h2&gt; 
&lt;p&gt;Ever® Gauzy™ follows good security practices, but 100% security cannot be guaranteed in any software! Ever® Gauzy™ is provided AS IS without any warranty. Use at your own risk! See more details in the &lt;a href=&quot;https://raw.githubusercontent.com/ever-co/ever-gauzy/develop/LICENSE.md&quot;&gt;LICENSE&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;In a production setup, all client-side to server-side (backend, APIs) communications should be encrypted using HTTPS/WSS/SSL (REST APIs, GraphQL endpoint, &lt;a href=&quot;http://Socket.io&quot;&gt;Socket.io&lt;/a&gt; WebSockets, etc.).&lt;/p&gt; 
&lt;p&gt;If you discover any issue regarding security, please disclose the information responsibly by sending an email to &lt;a href=&quot;mailto:security@ever.co&quot;&gt;mailto:security@ever.co&lt;/a&gt; or on &lt;a href=&quot;https://huntr.dev&quot;&gt;&lt;img src=&quot;https://cdn.huntr.dev/huntr_security_badge_mono.svg?sanitize=true&quot; alt=&quot;huntr&quot; /&gt;&lt;/a&gt; and not by creating a GitHub issue.&lt;/p&gt; 
&lt;h2&gt;🛡️ License&lt;/h2&gt; 
&lt;p&gt;We support the open-source community. If you&#39;re building awesome non-profit/open-source projects, we&#39;re happy to help and will provide (subject to &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/Free-license-and-hosting-for-Non-profit-and-Open-Source-projects&quot;&gt;acceptance criteria&lt;/a&gt;) Ever Gauzy Enterprise edition license and free hosting option! Feel free to contact us at &lt;a href=&quot;mailto:ever@ever.co&quot;&gt;mailto:ever@ever.co&lt;/a&gt; to make a request. More details are explained in our &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/wiki/Free-license-and-hosting-for-Non-profit-and-Open-Source-projects&quot;&gt;Wiki&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;This software is available under the following licenses:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/master/LICENSE.md#gauzy-platform-community-edition-license&quot;&gt;Ever® Gauzy™ Platform Community Edition&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/master/LICENSE.md#gauzy-platform-small-business-license&quot;&gt;Ever® Gauzy™ Platform Small Business&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/master/LICENSE.md#gauzy-platform-enterprise-license&quot;&gt;Ever® Gauzy™ Platform Enterprise&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;The default Ever® Gauzy™ Platform license, without a valid Ever® Gauzy™ Platform Enterprise or Ever® Gauzy™ Platform Small Business License agreement, is the Ever® Gauzy™ Platform Community Edition License&lt;/h4&gt; 
&lt;h4&gt;Please see &lt;a href=&quot;https://raw.githubusercontent.com/ever-co/ever-gauzy/develop/LICENSE.md&quot;&gt;LICENSE&lt;/a&gt; for more information on licenses. You can also &lt;a href=&quot;https://ever.co/compare-gauzy/#compare&quot;&gt;compare our offering&lt;/a&gt;&lt;/h4&gt; 
&lt;p&gt;&lt;a href=&quot;https://app.fossa.io/projects/git%2Bgithub.com%2Fever-co%2Fgauzy?ref=badge_large&quot;&gt;&lt;img src=&quot;https://app.fossa.io/api/projects/git%2Bgithub.com%2Fever-co%2Fgauzy.svg?type=large&quot; alt=&quot;FOSSA Status&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;™️ Trademarks&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Ever&lt;/strong&gt;® is a registered trademark of &lt;a href=&quot;https://ever.co&quot;&gt;Ever Co. LTD&lt;/a&gt;. &lt;strong&gt;Ever® Demand™&lt;/strong&gt;, &lt;strong&gt;Ever® Gauzy™&lt;/strong&gt;, &lt;strong&gt;Ever® Teams™&lt;/strong&gt;, &lt;strong&gt;Ever® Rec™&lt;/strong&gt;, &lt;strong&gt;Ever® Recu™&lt;/strong&gt;, &lt;strong&gt;Ever® Cloc™&lt;/strong&gt;, &lt;strong&gt;Ever® Works™&lt;/strong&gt; and &lt;strong&gt;Ever® OpenSaaS™&lt;/strong&gt; are all trademarks of &lt;a href=&quot;https://ever.co&quot;&gt;Ever Co. LTD&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;The trademarks may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services.&lt;/p&gt; 
&lt;p&gt;All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.&lt;/p&gt; 
&lt;h2&gt;🍺 Contribute&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Please give us ⭐ on Github, it &lt;strong&gt;helps&lt;/strong&gt;!&lt;/li&gt; 
 &lt;li&gt;You are more than welcome to submit feature requests in the &lt;a href=&quot;https://github.com/ever-co/feature-requests/issues&quot;&gt;separate repo&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Pull requests are always welcome! Please base pull requests against the &lt;em&gt;develop&lt;/em&gt; branch and follow the &lt;a href=&quot;https://raw.githubusercontent.com/ever-co/ever-gauzy/develop/.github/CONTRIBUTING.md&quot;&gt;contributing guide&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;💪 Thanks to our Contributors&lt;/h2&gt; 
&lt;p&gt;See our contributors list in &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/raw/develop/.github/CONTRIBUTORS.md&quot;&gt;CONTRIBUTORS.md&lt;/a&gt;. You can also view a full list of our &lt;a href=&quot;https://github.com/ever-co/ever-gauzy/graphs/contributors&quot;&gt;contributors tracked by Github&lt;/a&gt;.&lt;/p&gt; 
&lt;img src=&quot;https://contributors-img.web.app/image?repo=ever-co/ever-gauzy&quot; /&gt; 
&lt;h2&gt;⭐ Star History&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://stats-github.ever.co/#ever-co/ever-gauzy&amp;amp;Date&quot;&gt;&lt;img src=&quot;https://stats-github.ever.co/svg?repos=ever-co/ever-gauzy&amp;amp;type=Date&quot; alt=&quot;Star History Chart&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;❤️ Powered By&lt;/h2&gt; 
&lt;p&gt; &lt;a href=&quot;https://www.digitalocean.com/?utm_medium=opensource&amp;amp;utm_source=ever-co&quot;&gt; &lt;img src=&quot;https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg?sanitize=true&quot; width=&quot;201px&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;©️ Copyright&lt;/h2&gt; 
&lt;h4&gt;Copyright © 2019-present, Ever Co. LTD. All rights reserved&lt;/h4&gt; 
&lt;p&gt;&lt;a href=&quot;https://circleci.com/gh/ever-co/ever-gauzy&quot;&gt;&lt;img src=&quot;https://circleci.com/gh/ever-co/ever-gauzy.svg?style=svg&quot; alt=&quot;Circle CI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://codecov.io/gh/ever-co/ever-gauzy&quot;&gt;&lt;img src=&quot;https://codecov.io/gh/ever-co/ever-gauzy/branch/master/graph/badge.svg?sanitize=true&quot; alt=&quot;codecov&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.codacy.com/gh/ever-co/ever-gauzy/dashboard?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=ever-co/ever-gauzy&amp;amp;utm_campaign=Badge_Grade&quot;&gt;&lt;img src=&quot;https://app.codacy.com/project/badge/Grade/8c46f9eb9df64aa9859dea4d572059ac&quot; alt=&quot;Codacy Badge&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://deepscan.io/dashboard#view=project&amp;amp;tid=3293&amp;amp;pid=16703&amp;amp;bid=363423&quot;&gt;&lt;img src=&quot;https://deepscan.io/api/teams/3293/projects/16703/branches/363423/badge/grade.svg?sanitize=true&quot; alt=&quot;DeepScan grade&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://snyk.io/test/github/ever-co/ever-gauzy&quot;&gt;&lt;img src=&quot;https://snyk.io/test/github/ever-co/ever-gauzy/badge.svg?sanitize=true&quot; alt=&quot;Known Vulnerabilities&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://app.fossa.io/projects/git%2Bgithub.com%2Fever-co%2Fgauzy?ref=badge_shield&quot;&gt;&lt;img src=&quot;https://app.fossa.io/api/projects/git%2Bgithub.com%2Fever-co%2Fever-gauzy.svg?type=shield&quot; alt=&quot;FOSSA Status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://ever.crowdin.com/gauzy&quot;&gt;&lt;img src=&quot;https://badges.crowdin.net/e/1d2b3405d65a56ec116d0984fd579cc9/localized.svg?sanitize=true&quot; alt=&quot;Crowdin&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;https://img.shields.io/coderabbit/prs/github/ever-co/ever-gauzy?utm_source=oss&amp;amp;utm_medium=github&amp;amp;utm_campaign=ever-co%2Fever-gauzy&amp;amp;labelColor=171717&amp;amp;color=FF570A&amp;amp;link=https%3A%2F%2Fcoderabbit.ai&amp;amp;label=CodeRabbit+Reviews&quot; alt=&quot;CodeRabbit Pull Request Reviews&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;🔥 P.S&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;If you are interested in running an on-demand (delivery) or digital marketplace business, check open-source &lt;a href=&quot;https://github.com/ever-co/ever-demand&quot;&gt;Ever Demand Platform&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/ever-co/jobs#available-positions&quot;&gt;We are Hiring: remote TypeScript / NestJS / Angular developers&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/189829392/7a1e420b-43dd-4690-ae69-a167a2b571d7" medium="image" />
      
    </item>
    
    <item>
      <title>bilawalsidhu/gods-eye-view</title>
      <link>https://github.com/bilawalsidhu/gods-eye-view</link>
      <description>&lt;p&gt;A spy satellite simulator in your browser, except the data is real. Live open source spatial intelligence on a photorealistic 3D globe.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://maptheworld.ai/&quot;&gt;https://maptheworld.ai/&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;🌐 God&#39;s Eye View&lt;/h1&gt; 
 &lt;p&gt;&lt;a href=&quot;https://github.com/bilawalsidhu/gods-eye-view/actions/workflows/ci.yml&quot;&gt;&lt;img src=&quot;https://github.com/bilawalsidhu/gods-eye-view/actions/workflows/ci.yml/badge.svg?branch=main&quot; alt=&quot;CI&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;h3&gt;A spy-satellite simulator in your browser — then you realize the sources are public and the data is real.&lt;/h3&gt; 
 &lt;p&gt;Photorealistic 3D globe. Live aircraft, ships, satellites, earthquakes, traffic, and public cameras. Hands-free voice control powered by a realtime AI agent.&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;No place left behind.&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/hero-open-source-reveal.gif&quot; alt=&quot;Orbital HUD, a tracked live globe, FLIR terrain — then OPEN SOURCED&quot; /&gt;&lt;/p&gt; 
 &lt;a href=&quot;https://www.youtube.com/@bilawalsidhu&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/youtube-popular-videos.png&quot; alt=&quot;The God&#39;s Eye View video series on YouTube&quot; width=&quot;100%&quot; /&gt; &lt;/a&gt; 
 &lt;p&gt;▶️ &lt;strong&gt;From the project behind the viral God&#39;s Eye View series&lt;/strong&gt; &lt;em&gt;(formerly WorldView)&lt;/em&gt; — &lt;a href=&quot;https://youtube.com/playlist?list=PL6qSg2I-7_koPbDnSMo0QeeHX_RknA2uv&amp;amp;si=nBGYMoHWQw41v93Q&quot;&gt;5M+ on YouTube&lt;/a&gt; · &lt;a href=&quot;https://www.google.com/search?q=god%27s+eye+view&quot;&gt;25M+ across socials&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://x.com/bilawalsidhu/status/2093798887815348521&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/%231_GitHub_Trending-thank_you!-F0A63C?style=flat-square&amp;amp;logo=github&quot; alt=&quot;Reached #1 on GitHub Trending&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;🏆 &lt;strong&gt;Reached #1 on GitHub Trending, daily and weekly · August 2026&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.producthunt.com/products/god-s-eye-view?launch=god-s-eye-view&quot;&gt;#8 Product of the Day&lt;/a&gt;&lt;/strong&gt; · Hunted by Chris Messina, creator of the hashtag&lt;/p&gt; 
 &lt;p&gt;&lt;em&gt;“pretty cool”&lt;/em&gt; — &lt;a href=&quot;https://x.com/BrendanEich/status/2094592096401490266&quot;&gt;Brendan Eich&lt;/a&gt;, creator of JavaScript and co-founder of Mozilla and Brave · Featured on &lt;strong&gt;&lt;a href=&quot;https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g&quot;&gt;Pinokio&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;⚡ &lt;strong&gt;Start without API keys.&lt;/strong&gt; Install with &lt;a href=&quot;https://pinokio.co/apps/github-com-bilawalsidhu-gods-eye-view&quot;&gt;Pinokio&lt;/a&gt; or run locally from the terminal. Add optional keys inside the app. &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-quick-start&quot;&gt;→ Quick Start&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-quick-start&quot;&gt;Quick Start&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-the-first-five-minutes&quot;&gt;First Five Minutes&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-talk-to-it&quot;&gt;Talk to It&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-whats-on-the-globe&quot;&gt;What&#39;s Live&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-under-the-hood&quot;&gt;Under the Hood&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-api-keys&quot;&gt;Keys &amp;amp; Costs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🌍 Why This Exists&lt;/h2&gt; 
&lt;p&gt;God&#39;s Eye View brings public signals into one explorable globe. Track the world live. Talk to it. Break it. Extend it.&lt;/p&gt; 
&lt;p&gt;Flight transponders, ship beacons, orbital elements, seismographs, and public cameras already tell us a lot about the world. God&#39;s Eye View puts them in the same place, so you can move between a global picture and an individual aircraft, ship, or street. It runs locally in your browser, with source code you can inspect and extend.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Half the magic is that it looks like a forbidden cockpit. The other half is that every line of code is inspectable.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Most feeds are live or regularly refreshed. Traffic is simulated along real roads using aggregate location data. CCTV camera poses and rocket launch trajectories are coarse estimates.&lt;/p&gt; 
&lt;p&gt;Start with the included data sources, then add your own. Each layer is a separate module.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🎛️ What This Thing Does&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;🛩️ Cockpit view:&lt;/strong&gt; Ride inside a tracked flight — the camera holds the terrain under you all the way down.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;📡 Contacts:&lt;/strong&gt; A 250 km roster of everything near your target — step through live aircraft and drop into any cockpit.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🎯 Click-to-track anything:&lt;/strong&gt; Camera locks on, draws a fading trail, surfaces full metadata — and a tracked fire or vessel hands you off to the nearest live camera in one click.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🖊️ Voice whiteboard:&lt;/strong&gt; Speak annotations onto the world — real boundary polygons, marks, and routes.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🛫 3D hangar:&lt;/strong&gt; Real per-class aircraft models — 787, ATR-72, Citation, Bell 206, MQ-9 — and a tracked contact swaps from glyph to 3D model as you close in.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🎨 Reskin reality:&lt;/strong&gt; GLSL sensor looks over the normal globe — CRT, NVG, FLIR/thermal, Noir, Snow.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🟩 Detection overlay:&lt;/strong&gt; Screen-space bounding boxes and IDs on everything in view.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🎖️ Military HUD:&lt;/strong&gt; Tactical heads-up display with intelligence-style telemetry.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🌐 Global Context:&lt;/strong&gt; Stage the full situational picture with one switch — and get your exact view back when you leave.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🎥 Scene director:&lt;/strong&gt; Capture cinematic camera tours for clips and demos.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🔗 Share Links:&lt;/strong&gt; Camera, style, layers, and even one tracked target serialize into a URL — a live target is a handoff, not a bookmark.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🏠 Reset Globe:&lt;/strong&gt; One control — or one sentence — back to the full Earth.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GRJaKcXZS94&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/GRJaKcXZS94/maxresdefault.jpg&quot; alt=&quot;YouTube video about the God&#39;s Eye View open source release&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;▶️ &lt;strong&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GRJaKcXZS94&quot;&gt;The full walkthrough of everything below, on YouTube&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;⚡ Quick Start&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Start without an account or API keys.&lt;/strong&gt; Both paths open the same app with Esri satellite imagery and keyless terrain. OSM is the fallback if Esri is unreachable. Flights, military traffic, satellites, earthquakes, public cameras, radio, and launches are available without keys.&lt;/p&gt; 
&lt;p&gt;For photorealistic 3D, add a &lt;strong&gt;Cesium ion token&lt;/strong&gt; for eligible personal, non-commercial use, or a &lt;strong&gt;Google Maps key&lt;/strong&gt; for the direct, metered route and in-app place search. Provider terms and quotas apply. Add keys through the app&#39;s &lt;strong&gt;POWER UP&lt;/strong&gt; panel; &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-api-keys&quot;&gt;Keys &amp;amp; Costs&lt;/a&gt; explains the options.&lt;/p&gt; 
&lt;h3&gt;Path 1 — One click, no terminal&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Install or update &lt;a href=&quot;https://desktop.pinokio.co/&quot;&gt;Pinokio&lt;/a&gt; to &lt;strong&gt;8.2 or later&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Open &lt;a href=&quot;https://pinokio.co/apps/github-com-bilawalsidhu-gods-eye-view&quot;&gt;God&#39;s Eye View in Pinokio&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;Install&lt;/strong&gt;, then &lt;strong&gt;Start&lt;/strong&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Available on &lt;strong&gt;Windows, macOS, and Linux&lt;/strong&gt;. The Pinokio maintainer reports cross-platform testing of the fixed installer. The launcher installs the locked dependencies, finds a free local port, and opens the app.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Tried before and installation failed?&lt;/strong&gt; Update Pinokio and try again. Version 8.2 fixes the launcher installation issue; &lt;a href=&quot;https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g&quot;&gt;details from the Pinokio maintainer&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Path 2 — Terminal / coding agent&lt;/h3&gt; 
&lt;p&gt;Use &lt;strong&gt;Node.js 24.x (24.14.0 or later) or 26.x&lt;/strong&gt;. The setup doctor warns about Node 25, which is end-of-life.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/bilawalsidhu/gods-eye-view.git
cd gods-eye-view
npm ci
npm run doctor
npm run dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Open &lt;strong&gt;&lt;code&gt;http://localhost:4173&lt;/code&gt;&lt;/strong&gt;. Choose &lt;strong&gt;Live Contacts&lt;/strong&gt;, &lt;strong&gt;Space Missions&lt;/strong&gt;, &lt;strong&gt;Environmental&lt;/strong&gt;, or &lt;strong&gt;Explore Manually&lt;/strong&gt; from the first-run panel.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;Startup performance&lt;/summary&gt; 
 &lt;p&gt;A point-in-time M5/Chrome capture measured a median 1.86-second cold start. This is a comparison baseline, not a guarantee for your machine or connection. See &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/PERFORMANCE.md&quot;&gt;docs/PERFORMANCE.md&lt;/a&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;p&gt;&lt;strong&gt;macOS shortcut:&lt;/strong&gt; &lt;code&gt;./scripts/dev-fresh.sh&lt;/code&gt; clears the Vite cache and pulls any configured keys straight from the Keychain. It starts keyless too.&lt;/p&gt; 
&lt;h3&gt;Then power it up — in the app, not in a file&lt;/h3&gt; 
&lt;p&gt;Keys are upgrades, not prerequisites. When you want one, click the &lt;strong&gt;POWER UP&lt;/strong&gt; chip in the bottom-right corner: Provider Settings lists every supported key, what it switches on, and where to get it. Paste, hit &lt;strong&gt;SAVE KEYS&lt;/strong&gt;, and the app restarts itself with the new capability on. Once everything is configured the chip reads &lt;strong&gt;POWERED UP&lt;/strong&gt; — and if a compact layout hides it, &lt;code&gt;?setup=1&lt;/code&gt; reopens the same panel.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Where keys land:&lt;/strong&gt; Pinokio → the app&#39;s ignored &lt;code&gt;pinokio/ENVIRONMENT&lt;/code&gt;; a terminal clone → the repo-root &lt;code&gt;.env&lt;/code&gt;. Either file is made owner-only &lt;em&gt;before&lt;/em&gt; a secret is written into it. These are local plaintext files, excluded from Git; the app uses your keys to contact the providers.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Keys you already have stay yours:&lt;/strong&gt; values from your shell or the macOS Keychain show as &lt;em&gt;configured externally&lt;/em&gt; and are read-only to the panel.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;What to get first:&lt;/strong&gt; the free &lt;a href=&quot;https://cesium.com/ion&quot;&gt;Cesium ion&lt;/a&gt; token (eligible personal, non-commercial use; current terms and quotas apply) for photorealistic 3D and world terrain; a Google Maps key only for the billing-enabled, metered route + place search; OpenAI when you want to talk to the world. Full map, costs included, in &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-api-keys&quot;&gt;Keys &amp;amp; Costs&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;details&gt; 
 &lt;summary&gt;Older Pinokio versions and credential storage&lt;/summary&gt; 
 &lt;p&gt;Do not enter credentials in Pinokio 8.0.40&#39;s native &lt;strong&gt;Configure&lt;/strong&gt; panel: that release does not save this nested app file correctly, and it logs submitted values. Use &lt;strong&gt;POWER UP → Provider Settings&lt;/strong&gt; inside GEV instead. The Pinokio 8.2 announcement fixes installation; it does not establish that this separate Configure issue is resolved. On macOS, the Keychain via &lt;code&gt;./scripts/dev-fresh.sh&lt;/code&gt; remains the stronger storage option.&lt;/p&gt; 
&lt;/details&gt; 
&lt;p&gt;The server binds to &lt;strong&gt;localhost&lt;/strong&gt; on both paths, and Provider Settings answers requests only from your machine. Browser-side keys (Google Maps, Cesium ion) must be restricted at their providers — &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt; shows how, and it carries the LAN-sharing rules alongside &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#-api-keys&quot;&gt;Keys &amp;amp; Costs&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🕐 The First Five Minutes&lt;/h2&gt; 
&lt;p&gt;Choose a first-run mission, or try these in order. The GIFs show Google Photorealistic 3D; your starting basemap depends on the keys you&#39;ve added.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Light up the sky.&lt;/strong&gt; Take the &lt;strong&gt;Live Contacts&lt;/strong&gt; mission (or turn on &lt;strong&gt;Flights&lt;/strong&gt; yourself) — thousands of live aircraft, gliding on real telemetry, detection mesh already reading the scene. Click one: the camera locks on, a trail draws behind it, and its live telemetry card comes up.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Take the controls.&lt;/strong&gt; Hit &lt;strong&gt;COCKPIT&lt;/strong&gt; on your tracked plane and ride it down, switching sensors mid-flight: NVG into Ironbow FLIR.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/06-cockpit-ar.gif&quot; alt=&quot;Riding with a live aircraft in cockpit view while switching sensor modes&quot; /&gt;&lt;/p&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Drop into a busy airport.&lt;/strong&gt; Search one and descend to the taxiways with &lt;strong&gt;3D&lt;/strong&gt; aircraft on — grounded contacts, taxi trails, the whole apron working in real time.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/start-here/airport-ground-traffic-google-3d.gif&quot; alt=&quot;Moving from a full airport overhead down to close taxiway inspection with 3D flight models&quot; /&gt;&lt;/p&gt; 
&lt;ol start=&quot;4&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Look through a public camera.&lt;/strong&gt; Turn on &lt;strong&gt;CCTV&lt;/strong&gt; over Austin, London, California, or Finland. The feeds aren&#39;t webcam embeds — they project &lt;em&gt;into&lt;/em&gt; the 3D city. Cycle coverage to &lt;strong&gt;VIEWSHED&lt;/strong&gt; and every camera draws its estimated coverage volume — where it reaches, and where it goes blind.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/03-austin-cctv.gif&quot; alt=&quot;Diving into an Austin intersection with a live public camera projected into the 3D scene&quot; /&gt;&lt;/p&gt; 
&lt;ol start=&quot;5&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Track something in orbit.&lt;/strong&gt; Turn on &lt;strong&gt;Satellites&lt;/strong&gt; and click the ISS — you ride along at orbital distance, orbit ring and all.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/14-iss-over-ukraine.gif&quot; alt=&quot;Tracking the ISS along its orbital path as it crosses over Ukraine&quot; /&gt;&lt;/p&gt; 
&lt;ol start=&quot;6&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Switch the optics.&lt;/strong&gt; Tap &lt;code&gt;1&lt;/code&gt;–&lt;code&gt;7&lt;/code&gt; — CRT, NVG, FLIR — and the whole live planet re-renders through a different sensor.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/01-style-sweep.gif&quot; alt=&quot;Cycling a dense live globe through CRT, FLIR, and NVG in one continuous view&quot; /&gt;&lt;/p&gt; 
&lt;ol start=&quot;7&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Talk to it&lt;/strong&gt; &lt;em&gt;(needs an OpenAI key)&lt;/em&gt;: &lt;em&gt;&quot;Take me to LAX and select the nearest airborne aircraft.&quot;&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Come home.&lt;/strong&gt; Hit &lt;strong&gt;Reset Globe&lt;/strong&gt; — or just say &lt;em&gt;&quot;zoom out to a globe view.&quot;&lt;/em&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;Keyboard:&lt;/strong&gt; &lt;code&gt;1&lt;/code&gt;–&lt;code&gt;7&lt;/code&gt; visual styles · &lt;code&gt;H&lt;/code&gt; HUD · &lt;code&gt;D&lt;/code&gt; detection · &lt;code&gt;C&lt;/code&gt; cockpit · &lt;code&gt;Esc&lt;/code&gt; out.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🛩️ The Cockpit&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Every plane should let you do this.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Real-time cockpit mode, built from live flight data: the camera rides your contact with real terrain holding underneath, all the way down — sensor styles come along for the ride, and &lt;strong&gt;Contacts&lt;/strong&gt; keeps the 250 km roster one click away: jump plane to plane and fall straight into the next cockpit.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/12-switch-aircraft-cockpit.gif&quot; alt=&quot;Jumping between live aircraft and falling straight into a cockpit view&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;The cockpit even carries its own briefing strip: nearby live signals, regional headlines, and real local weather — with an opt-in &lt;strong&gt;WX&lt;/strong&gt; mode that renders volumetric clouds from actual observations around your aircraft.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/start-here/military-cockpit-dense-google-3d.gif&quot; alt=&quot;A live military contact ridden through Normal, NVG, and Ironbow FLIR with dense detection&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;Why cockpit mode exists: you&#39;re riding a real aircraft over real terrain — and you get to pick which sensor you see the world through.&lt;/em&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🎙️ Talk to It&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Voice needs an &lt;strong&gt;OpenAI key&lt;/strong&gt;. Without one the entire app still runs — the mic button just reports voice is unavailable. The same key drives the &lt;strong&gt;AI HUD summary&lt;/strong&gt;: a terse, five-word intelligence-style readout of the current view that regenerates as you move.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Click &lt;strong&gt;GEV MIC&lt;/strong&gt;, grant the microphone, and just talk. This is more than a voice-controlled remote:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;🧠 It knows what it&#39;s looking at.&lt;/strong&gt; The agent pulls live scene context before answering — including coordinates, street names, active layers, and view scale. Ask &lt;em&gt;&quot;what city is this?&quot;&lt;/em&gt; mid-flight and it knows.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🎯 Entity Q&amp;amp;A.&lt;/strong&gt; Click any plane, ship, or datacenter and ask &lt;em&gt;&quot;what&#39;s this?&quot;&lt;/em&gt; It answers using the object&#39;s live telemetry.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;👁️ Visual grounding.&lt;/strong&gt; At street level, it reads a viewport screenshot to identify legible signage and building names, and is instructed never to hallucinate labels.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🎬 Cinematic framing.&lt;/strong&gt; &lt;em&gt;&quot;Show me the planes overhead&quot;&lt;/em&gt; pulls the camera back, angles it, and frames the live traffic like a director.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;🔒 Honest and secure.&lt;/strong&gt; The agent only confirms actions that succeeded. Your &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; never touches the browser; the client only gets a short-lived session token.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Twenty-eight tools, four jobs — the commands below come straight from the product&#39;s voice test suite and tool playbook:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;🎥 Direct it&lt;/strong&gt; — drone-operator camera verbs:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;🗣️ &lt;em&gt;&quot;Take me to Tokyo.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Orbit around this area slowly.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Draw the walking route from the Capitol to Zilker Park.&quot;&lt;/em&gt; → &lt;em&gt;&quot;Fly the route we just drew.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Zoom out to a globe view.&quot;&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;🖊️ Annotate it&lt;/strong&gt; — a whiteboard over the real world:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;🗣️ &lt;em&gt;&quot;Outline the state of Texas.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Annotate the Texas State Capitol and its grounds&quot;&lt;/em&gt; — it draws the &lt;strong&gt;actual enclosing boundary&lt;/strong&gt;, not a circle. · &lt;em&gt;&quot;How far is the Eiffel Tower from the Louvre?&quot;&lt;/em&gt; — a connector arrow appears and it speaks the distance. Everything persists until you say &lt;em&gt;&quot;clear the map.&quot;&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/01-voice-annotate-zilker.gif&quot; alt=&quot;Zilker Park and Lady Bird Lake drawing onto the 3D city as persistent vector annotations, by voice&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/04-airport-distance.gif&quot; alt=&quot;A spoken distance measurement spanning an airport, inspected from orbit&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;🔎 Interrogate it&lt;/strong&gt; — analyst queries against the live layers:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;🗣️ &lt;em&gt;&quot;How many flights are over Texas right now?&quot;&lt;/em&gt; · &lt;em&gt;&quot;Which ships are headed to Oakland?&quot;&lt;/em&gt; · &lt;em&gt;&quot;What is the biggest fire near Los Angeles?&quot;&lt;/em&gt; · &lt;em&gt;&quot;Is anything flying above forty thousand feet?&quot;&lt;/em&gt; · &lt;em&gt;&quot;When does the ISS pass over next?&quot;&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;🎛️ Operate it&lt;/strong&gt; — the whole console, hands-free:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;🗣️ &lt;em&gt;&quot;Switch to night vision and turn on the flights layer.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Turn on the camera viewsheds.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Play a news radio station near Austin.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Track that plane.&quot;&lt;/em&gt; → &lt;em&gt;&quot;Enter Cockpit.&quot;&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;And the rapid-fire tier&lt;/strong&gt; — one sentence each:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;🗣️ &lt;em&gt;&quot;Show me global infrastructure.&quot;&lt;/em&gt; (stages the layers and pulls back to the globe) · &lt;em&gt;&quot;Play Orbital Watch.&quot;&lt;/em&gt; (a full cinematic scene) · &lt;em&gt;&quot;Set detection density to fifty percent.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Next contact — helicopters only.&quot;&lt;/em&gt; (mid-cockpit) · &lt;em&gt;&quot;Show me space missions.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Switch to OSM.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Sharpen the image a touch.&quot;&lt;/em&gt; · &lt;em&gt;&quot;Switch to the tactical layout.&quot;&lt;/em&gt; · &lt;em&gt;&quot;What&#39;s turned on right now?&quot;&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/15-global-radio-layer.gif&quot; alt=&quot;The globe populating with the world&#39;s radio stations as another live layer&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;Ask for radio near anywhere and the globe starts broadcasting — every station is a real place you can fly to.&lt;/em&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🛰️ What&#39;s on the Globe&lt;/h2&gt; 
&lt;p&gt;Thirteen layers and map sources. &lt;strong&gt;Eleven have a keyless path.&lt;/strong&gt; Some offer additional capabilities with a provider key. (🟢 no key · 🟡 free key · 🔴 metered.)&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Layer&lt;/th&gt; 
   &lt;th&gt;What you get&lt;/th&gt; 
   &lt;th&gt;Source&lt;/th&gt; 
   &lt;th&gt;Auth&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🗺️ &lt;strong&gt;Map Stack&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Esri satellite imagery, Google Photorealistic 3D, OSM, plus additional ion-hosted stacks&lt;/td&gt; 
   &lt;td&gt;Esri / Google / Ion / OSM&lt;/td&gt; 
   &lt;td&gt;🟢 Esri satellite + OSM · 🟡 ion-hosted Google 3D + world terrain · 🔴 direct Google + place search&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;✈️ &lt;strong&gt;Live Flights&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;11,000+ live aircraft + route history&lt;/td&gt; 
   &lt;td&gt;OpenSky + adsb.lol&lt;/td&gt; 
   &lt;td&gt;🟢 (🟡 optional for more polling credits)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🎖️ &lt;strong&gt;Military Flights&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;ADS-B military traffic in amber&lt;/td&gt; 
   &lt;td&gt;adsb.lol&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🚢 &lt;strong&gt;Live Vessels&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Thousands of ships worldwide&lt;/td&gt; 
   &lt;td&gt;AISStream&lt;/td&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🛰️ &lt;strong&gt;Satellites&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;838-object catalog, color-coded by class with a live legend — the &lt;strong&gt;DENSE&lt;/strong&gt; chip drops in the whole Starlink shell&lt;/td&gt; 
   &lt;td&gt;CelesTrak&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🌍 &lt;strong&gt;Earthquakes&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Global seismic activity, last 24h&lt;/td&gt; 
   &lt;td&gt;USGS&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🚗 &lt;strong&gt;Traffic&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Simulated vehicles on OSM roads. With TomTom, live flow speeds drive the simulation and congestion colors below ~8 km; individual vehicle positions are not live observations&lt;/td&gt; 
   &lt;td&gt;TomTom + OSM&lt;/td&gt; 
   &lt;td&gt;🟢 simulation · 🟡 live flow speeds&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;📹 &lt;strong&gt;CCTV Mesh&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;~3,400 public cameras projected &lt;em&gt;into&lt;/em&gt; the 3D space — Austin · Texas (TxDOT) · California (Caltrans) · London (TfL) · Ontario (511) · Finland (Fintraffic) · British Columbia (DriveBC) · Estonia (Tallinn, Tarktee) · New South Wales (Live Traffic NSW). Positions are published; poses are estimated priors &lt;strong&gt;you calibrate by dragging a gizmo on the camera itself&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;City APIs&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;📻 &lt;strong&gt;Radio&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Geolocated world radio with an &lt;strong&gt;analog tuner&lt;/strong&gt; — drag the needle across up to 750 stations and the globe flies to each broadcaster&lt;/td&gt; 
   &lt;td&gt;Radio Browser / broadcasters&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🚲 &lt;strong&gt;Bikeshare&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Live station availability&lt;/td&gt; 
   &lt;td&gt;GBFS&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🔥 &lt;strong&gt;Active Fires&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Live NASA FIRMS detections, trailing 24h&lt;/td&gt; 
   &lt;td&gt;NASA FIRMS&lt;/td&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🚀 &lt;strong&gt;Space Missions&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Rolling 30-day launches with payload, stage, and recovery detail&lt;/td&gt; 
   &lt;td&gt;Launch Library 2&lt;/td&gt; 
   &lt;td&gt;🟢 (🟡 optional token raises the allowance)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🎖️ &lt;strong&gt;Mapped Installations&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Viewport-bounded military-site context from community mapping — incomplete by nature, and labeled that way&lt;/td&gt; 
   &lt;td&gt;OpenStreetMap&lt;/td&gt; 
   &lt;td&gt;🟢&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;The basemap ladder — what each tier buys you:&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;You have&lt;/th&gt; 
   &lt;th&gt;The globe you get&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟢 Nothing&lt;/td&gt; 
   &lt;td&gt;Esri World Imagery satellite basemap + keyless terrain, in 2D. OSM takes over automatically if Esri is unreachable; if terrain is unavailable the globe continues without it&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡 A free Cesium ion token&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Google Photorealistic 3D cities&lt;/strong&gt; and world terrain — eligible personal, non-commercial use; current ion terms and quotas apply&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🔴 A Google Maps key&lt;/td&gt; 
   &lt;td&gt;The same 3D direct from Google, plus in-app place search — the billing-enabled, metered route&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/08-falcon9-replay.gif&quot; alt=&quot;A reconstructed Falcon 9 ascent climbing and curving into its projected orbit&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;The Space Missions layer replaying a Falcon 9 ascent — labeled &lt;code&gt;RECONSTRUCTED ESTIMATE&lt;/code&gt;, scrubbable 0.25×–4×.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Also on the globe:&lt;/strong&gt; neighborhood overlays · an optional cockpit WX cloud effect. &lt;strong&gt;Bundled static infrastructure:&lt;/strong&gt; Datacenters (4,351), Dams (704), and Submarine Cables (712).&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/09-undersea-cables.gif&quot; alt=&quot;Diving into the Bahamas and revealing labeled submarine cable routes beneath the globe&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Missing a layer you want?&lt;/strong&gt; Open an issue — or add it and send the PR.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🎖️ Field Missions&lt;/h2&gt; 
&lt;p&gt;Once the basics click, run these:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Mission&lt;/th&gt; 
   &lt;th&gt;How&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🚁 Ask the planet&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;em&gt;&quot;Why are all these military helicopters flying in circles?&quot;&lt;/em&gt; Select a military track — it silently backfills ~24 h of real trace history — and see what it&#39;s been doing, resolved as stacked 3D loops.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;✈️ Final approach&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Click-track an airliner lining up for a runway, hop into the &lt;strong&gt;cockpit&lt;/strong&gt;, and ride it down.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🌃 Night watch&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Fly to your own city, switch to &lt;strong&gt;NVG&lt;/strong&gt;, and let the detection mesh and HUD read the scene.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🚢 Port call&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Vessels on over the Port of Long Beach. Click a tanker for its tactical card and wake trail — then hit &lt;strong&gt;NEAREST&lt;/strong&gt; in the CCTV panel and look at the same water through a public camera.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;📻 Tokyo FM&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Orbit Shibuya with the &lt;strong&gt;Radio&lt;/strong&gt; layer on — then drag the analog tuner needle: every position snaps to a real station and the globe flies to whoever&#39;s broadcasting.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🔥 Fire line&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;FIRMS over California. Click a detection — the camera dives to it — read the intensity, then hit &lt;strong&gt;NEAREST&lt;/strong&gt; in the CCTV panel for a ground view.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🚶 Ask for a walking route&lt;/strong&gt; &lt;em&gt;🎙️&lt;/em&gt;&lt;/td&gt; 
   &lt;td&gt;Tell the world where you want to go and watch a real street-following route trace itself through the 3D city — then &lt;em&gt;&quot;fly it&quot;&lt;/em&gt;: banked turns, eased ends, a camera that leads the path like a drone shot.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;📏 Measure LAX to DFW&lt;/strong&gt; &lt;em&gt;🎙️&lt;/em&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;em&gt;&quot;How far is LAX from DFW?&quot;&lt;/em&gt; — an arrow spans the country, the distance lands in the caption, and the endpoints stay pinned to the real world as you orbit.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🚀 Launch replay&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Open &lt;strong&gt;Space Missions&lt;/strong&gt;, pick a launch from the last 30 days, and ride the T-minus countdown through ascent to orbit — scrub it at 0.25×–4×. Labeled &lt;code&gt;RECONSTRUCTED ESTIMATE&lt;/code&gt;, because it is one.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🪦 Walk the boneyard&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Fly from regional context down into dense, fully resolved rows of retired aircraft.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🏗️ Orbit Three Gorges&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Sweep the dam and its terrain at a glance — then flip on the &lt;strong&gt;Dams&lt;/strong&gt; layer and find 703 more.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;em&gt;🎙️ = voice missions — they need an OpenAI key.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/07-helicopter-loops.gif&quot; alt=&quot;Resolving a selected aircraft&#39;s recent flight path into stacked 3D loops above the terrain&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;Ask the planet: a military contact&#39;s last ~24 hours of real trace history, resolved as stacked 3D loops.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/10-walking-route-flythrough.gif&quot; alt=&quot;Asking for a walking route and flying the generated path through the 3D city&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&quot;Draw the walking route… now fly it&quot; — banked turns, eased ends, the camera leading the path like a drone shot.&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/08-boneyard.gif&quot; alt=&quot;Descending from regional context into dense rows of retired aircraft at the boneyard&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;Walk the boneyard: rows of retired airframes, fully resolved in 3D.&lt;/em&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🔧 Under the Hood&lt;/h2&gt; 
&lt;p&gt;How the globe handles live data:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;World-stable icons.&lt;/strong&gt; Aircraft and ships point along their &lt;em&gt;true real-world heading&lt;/em&gt; at every camera angle — tracked or not, looking straight down or across the horizon — via per-frame screen-space course projection. No spinning, no viewport-locking.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Smooth motion from choppy data.&lt;/strong&gt; Live feeds arrive every 15–30s; the globe renders one interval behind real time and interpolates between known fixes. Dead reckoning fills the gaps.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Honest satellites.&lt;/strong&gt; SGP4 propagation with orbit rings that stay locked to their satellites via GMST realignment — no drift, no per-second flicker.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Sits on the real ground.&lt;/strong&gt; Entity heights run through a real vertical datum — geoid-aware, sampled against the &lt;em&gt;rendered&lt;/em&gt; terrain mesh — so aircraft park on aprons and cameras stand on street corners instead of floating.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Caching and request budgets.&lt;/strong&gt; An OpenSky credit governor, a TomTom daily tile budget, and disk-cached TLEs reduce repeated requests. These controls do not replace provider quotas or billing controls.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Server-side credentials.&lt;/strong&gt; Every API that touches a private key (OpenAI, AISStream, OpenSky OAuth, camera frames) is brokered through a hardened server-side proxy with SSRF protection, response caps, and sanitized errors. The only keys the browser sees are Google Maps and Cesium ion (restrict both at the provider).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;No framework.&lt;/strong&gt; Vanilla JavaScript, &lt;strong&gt;CesiumJS&lt;/strong&gt;, and &lt;strong&gt;Vite&lt;/strong&gt; — plus &lt;strong&gt;Google Photorealistic 3D Tiles&lt;/strong&gt; for the planet and the &lt;strong&gt;OpenAI Realtime API&lt;/strong&gt; for voice. Fast to read, fast to hack on.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code&gt;src/
├── main.js                 # Bootstrap: Google 3D tiles, layer registration
├── ui.js                   # Runtime UI — panels, HUD, styles, control facade
├── hud.js                  # Intelligence HUD + AI scene summary
├── keySetup.js             # POWER UP panel — in-app provider keys (dev server only)
├── mapStackController.js   # Basemap switching — Google 3D / Esri / OSM / ion stacks
├── voice/                  # OpenAI Realtime session + 28 voice tools
├── data/                   # One module per layer + orchestration + context store
│   ├── iconOrientation.js  # Screen-projected headings + horizon cull
│   └── local_data/         # Bundled datasets (per-folder provenance)
└── scenes/                 # Cinematic scene director
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/CURRENT-STATE.md&quot;&gt;&lt;code&gt;docs/CURRENT-STATE.md&lt;/code&gt;&lt;/a&gt; for the authoritative runtime reference.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🔑 API Keys&lt;/h2&gt; 
&lt;p&gt;🟢 &lt;strong&gt;No key&lt;/strong&gt; · 🟡 &lt;strong&gt;Free key&lt;/strong&gt; · 🔴 &lt;strong&gt;Metered&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;Use &lt;strong&gt;POWER UP → Provider Settings&lt;/strong&gt; to add keys. The tables below explain what each provider enables; none is required to start. See the &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/#then-power-it-up--in-the-app-not-in-a-file&quot;&gt;setup instructions&lt;/a&gt; for storage and configuration details.&lt;/p&gt; 
&lt;h3&gt;Choose the capabilities you want&lt;/h3&gt; 
&lt;p&gt;Six keys. Four have a free tier, and the two 🔴 ones are metered:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;Key&lt;/th&gt; 
   &lt;th&gt;Why&lt;/th&gt; 
   &lt;th&gt;Get it&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Cesium ion&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;🗺️ Google Photorealistic 3D, world terrain, and additional ion-hosted imagery stacks. The free Community plan is for eligible individual, personal/non-commercial use and has quotas&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://cesium.com/ion&quot;&gt;cesium.com/ion&lt;/a&gt; — use a public &lt;code&gt;assets:read&lt;/code&gt; token and check current &lt;a href=&quot;https://cesium.com/platform/cesium-ion/pricing/&quot;&gt;pricing/eligibility&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🔴&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Google Maps&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Direct Google Photorealistic 3D + Google place search (&lt;a href=&quot;https://developers.google.com/maps/documentation/tile&quot;&gt;Map Tiles API&lt;/a&gt;)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://console.cloud.google.com/&quot;&gt;Google Cloud Console&lt;/a&gt; — URL-restrict it&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🔴&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;OpenAI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;🎙️ The voice experience + AI HUD summary. The mini model works; the standard model is noticeably smarter. Want Gemini or another provider behind the mic? PRs welcome&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://platform.openai.com&quot;&gt;platform.openai.com&lt;/a&gt; — metered, see costs below&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;AISStream&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;🚢 Live global ships&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://aisstream.io&quot;&gt;aisstream.io&lt;/a&gt; — free signup&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;NASA FIRMS&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;🔥 Live active fires&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://firms.modaps.eosdis.nasa.gov/api/map_key/&quot;&gt;firms.modaps.eosdis.nasa.gov&lt;/a&gt; — free&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;TomTom&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;🚦 Live flow speeds and congestion colors for the simulated traffic layer&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://developer.tomtom.com&quot;&gt;developer.tomtom.com&lt;/a&gt; — free tier available&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/05-traffic-to-cctv.gif&quot; alt=&quot;Diving from city-scale live congestion straight into an intersection&#39;s public camera&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;What the TomTom key buys you: rush-hour density painted on the city — then dive from the jam straight into the camera watching it.&lt;/em&gt;&lt;/p&gt; 
&lt;h3&gt;Cherry on top&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;Key&lt;/th&gt; 
   &lt;th&gt;Why&lt;/th&gt; 
   &lt;th&gt;Get it&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;OpenSky&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;✈️ More flight-polling credits (🟢 anonymous works without)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://opensky-network.org&quot;&gt;opensky-network.org&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;🟡&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Launch Library 2&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;🚀 Higher space-missions request allowance (🟢 works without)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://thespacedevs.com&quot;&gt;thespacedevs.com&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Add these if you need higher polling allowances.&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;npm run doctor&lt;/code&gt; reports Node/npm readiness, the primary provider routes, and where each configured provider was found without printing credential values. On macOS its Keychain-aware result previews &lt;code&gt;./scripts/dev-fresh.sh&lt;/code&gt;; plain &lt;code&gt;npm run dev&lt;/code&gt; reads only explicit environment and Vite dotenv values. The OpenSky summary reports only OAuth client-pair presence, not the resolved runtime mode or credential validity; Basic and credentials-file modes remain advanced &lt;code&gt;dev-fresh.sh&lt;/code&gt; configuration.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;Advanced setup: environment variables and macOS Keychain&lt;/summary&gt; 
 &lt;p&gt;For headless machines, coding agents, or scripted setups:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Put keys in .env (see .env.example), or pass them as env vars:
OPENAI_API_KEY=&quot;…&quot; AISSTREAM_API_KEY=&quot;…&quot; npm run dev -- --host localhost --port 4173

# On macOS, store any of them in the Keychain and dev-fresh.sh pulls them in:
security add-generic-password -U -s &quot;google-maps-api&quot; -a &quot;api-key&quot; -w
security add-generic-password -U -s &quot;openai-api&quot;      -a &quot;api-key&quot; -w
security add-generic-password -U -s &quot;aisstream-api&quot;   -a &quot;api-key&quot; -w
security add-generic-password -U -s &quot;firms-map&quot;       -a &quot;map-key&quot; -w
security add-generic-password -U -s &quot;cesium-ion&quot;      -a &quot;token&quot;   -w
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;OpenSky can run fully anonymous (&lt;code&gt;OPENSKY_AUTH_MODE=anon&lt;/code&gt;), or import OAuth credentials with &lt;code&gt;./scripts/opensky-import-client.sh /path/to/credentials.json&lt;/code&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;h3&gt;💸 What it actually costs&lt;/h3&gt; 
&lt;p&gt;Honest numbers, roughly, as of mid-2026 — always check the provider pricing pages:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;Cost reality&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🟢 Most layers&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;$0, no signup.&lt;/strong&gt; OpenSky anon, USGS, CelesTrak, adsb.lol, city CCTV, Radio Browser, GBFS, Launch Library 2, bundled datasets.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🟡 The free-key tier&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;$0 with a signup.&lt;/strong&gt; AISStream, FIRMS, TomTom, OpenSky, plus Cesium ion for eligible personal/non-commercial use. Provider quotas and eligibility still apply.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🗺️ Google 3D tiles&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Free through an eligible Cesium ion Community account within its quota; metered through a direct Google key.&lt;/strong&gt; Use the direct route for GEV place search or commercial deployment, verify current provider terms, and set budget alerts where billing is enabled.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;🔴 OpenAI voice&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;The one that costs real money — so the app meters it for you.&lt;/strong&gt; Realtime audio runs a few cents per active minute; an evening of heavy use is single-digit dollars. A live session-spend readout sits next to the mic, with an STD/MINI model toggle, a $2 warning, and a &lt;strong&gt;$5 hard cap that ends the session&lt;/strong&gt;. The voice context window is kept deliberately short too.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Google&#39;s direct 3D route is surprisingly generous: the first 1,000 Photorealistic 3D Tiles sessions each month are currently free, and one root request supports roughly three hours of rendering. A solo user exploring sparingly can realistically stay inside the free usage cap. Billing must still be enabled, so restrict the key and set a quota or budget alert. Check Google&#39;s &lt;a href=&quot;https://developers.google.com/maps/billing-and-pricing/pricing&quot;&gt;current pricing&lt;/a&gt; before relying on these figures.&lt;/p&gt; 
&lt;h3&gt;🧗 The floor is low on purpose&lt;/h3&gt; 
&lt;p&gt;Everything above is the deliberately cheap baseline — enough to get a real taste of geospatial intelligence, GEOINT, and OSINT without ever talking to a sales team. You&#39;ll also notice the ceiling: terrestrial AIS goes quiet mid-ocean and satellite AIS costs real money; premium imagery, SAR, and the deeper commercial feeds live behind enterprise contracts. That&#39;s not a limit of the architecture — every layer here is a pattern you can point at your own data sources. This repo hands you the foundation; what you fuse into it is up to you.&lt;/p&gt; 
&lt;h3&gt;🔒 Sharing an instance&lt;/h3&gt; 
&lt;p&gt;By default nobody else can reach your server — it binds to localhost. To share on your LAN, opt in explicitly (&lt;code&gt;npm run dev -- --host 0.0.0.0 --port 4173&lt;/code&gt;, or &lt;code&gt;HOST=0.0.0.0 ./scripts/dev-fresh.sh&lt;/code&gt; on macOS/Linux) — but know that ⚠️ &lt;strong&gt;a LAN-visible server brokers your configured API keys to anyone who can reach it.&lt;/strong&gt; Set the per-IP throttles (&lt;code&gt;GEV_RATELIMIT_OPENAI_PER_MIN&lt;/code&gt;, &lt;code&gt;GEV_RATELIMIT_GOOGLE_PER_MIN&lt;/code&gt; — see &lt;code&gt;.env.example&lt;/code&gt;) and, before anything else, &lt;strong&gt;configure provider quotas, usage limits, and billing alerts&lt;/strong&gt;: app-level throttles are not billing caps, and a budget alert alone does not stop spending. Full threat model in &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Provider Settings is disabled when the server is shared, so remote users cannot access the key-entry panel.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Pinokio LAN and Cloudflare sharing remain disabled for this launcher.&lt;/strong&gt; Use a separately reviewed authentication proxy if remote access is required. &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt; explains the restrictions and threat model.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📋 Responsible &amp;amp; Open&lt;/h2&gt; 
&lt;p&gt;God&#39;s Eye View runs on &lt;strong&gt;public data, clear sources, and local-first execution.&lt;/strong&gt; No secrets, no private datasets, no mystery scraping — anything involving a private key is brokered server-side. It has the visual grammar of a classified ops room, built entirely from open signals and inspectable code.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;The line.&lt;/strong&gt; This project models &lt;strong&gt;events, assets, infrastructure, and systems&lt;/strong&gt; — aircraft, vessels, satellites, fires, cameras, cities. It does not build features for named-person search, face recognition, or tracking individuals, and pull requests that cross that line won&#39;t be merged. People are not a query type here.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Come build it.&lt;/strong&gt; This is the canonical live 3D client from the project that kicked off the recent wave of spatial-intelligence tools — and it&#39;s a canvas: the layers here are the signals one person could find and fuse. Add a city pack, a data source, a style, a voice tool. It&#39;s the window through which you see the world; bring that window to others.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; An evolving open-source client for exploration and learning — a fast, hackable foundation, not a hardened production service. Released under the &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/LICENSE&quot;&gt;MIT License&lt;/a&gt;&lt;/strong&gt;. Bundled and live datasets carry their own terms — see &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/DATA_SOURCES.md&quot;&gt;DATA_SOURCES.md&lt;/a&gt;&lt;/strong&gt;. Security model: &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt;&lt;/strong&gt;. Want to contribute? &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Maintainers:&lt;/strong&gt; &lt;a href=&quot;https://github.com/bilawalsidhu&quot;&gt;Bilawal Sidhu&lt;/a&gt; and &lt;a href=&quot;https://github.com/samehkhamis&quot;&gt;Sameh Khamis&lt;/a&gt; at &lt;a href=&quot;https://halfpixel.ai&quot;&gt;Halfpixel&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;sub&gt;Media note: the capture GIFs on this page show Google Photorealistic 3D Tiles and live data layers, used promotionally with in-frame attribution; they aren&#39;t licensed for standalone reuse. See &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/README.md&quot;&gt;media provenance and permissions&lt;/a&gt;; full source terms in &lt;a href=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/DATA_SOURCES.md&quot;&gt;DATA_SOURCES.md&lt;/a&gt;.&lt;/sub&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;God&#39;s Eye View is an exploratory visualization of public and third-party data. Data may be delayed, incomplete, modeled, inferred, or wrong. Do not use it for flight or maritime navigation, emergency response, medical or health decisions, investment decisions, or other safety-critical or operational purposes. Verify important information with authoritative sources.&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🧭 What&#39;s Next&lt;/h2&gt; 
&lt;p&gt;First — thank you. To everyone who watched the God-view demos and went off to build their own, and to everyone who kept asking for the code: I&#39;m grateful. And when I polled whether this should go open source, you weren&#39;t subtle about it:&lt;/p&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/bilawalsidhu/gods-eye-view/main/docs/media/open-source-survey.png&quot; alt=&quot;Community survey on open-sourcing God&#39;s Eye View&quot; width=&quot;460&quot; /&gt; 
&lt;p&gt;So here it is. Step inside the spy-thriller cockpit — except the data is real — and let&#39;s turn this into our shared sandbox for making sense of the world, and have fun doing it. This repo is the baseline, it stays open, and the whole point is for you to break things and bolt on layers we haven&#39;t thought of yet.&lt;/p&gt; 
&lt;p&gt;One heads-up from the inside: build in this space for a week and you learn that &lt;strong&gt;the present is the cheap part&lt;/strong&gt;. The moment you try to go back in time — tiling, serving, and scrubbing &lt;em&gt;what happened&lt;/em&gt; and &lt;em&gt;what changed&lt;/em&gt; at any real resolution — the data gets expensive and the compute gets brutal. That&#39;s the long game.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Update — a hosted version is coming.&lt;/strong&gt; We originally planned to keep this repository as the open-source client and build a separate professional product. Then the launch happened, and the loudest request wasn&#39;t another feature — it was &lt;em&gt;&quot;just give me a link.&quot;&lt;/em&gt; So we&#39;re building an official hosted God&#39;s Eye View at &lt;a href=&quot;https://halfpixel.ai&quot;&gt;Halfpixel&lt;/a&gt;: no installation, just open it in your browser. The hosted version is the easiest way into this open-source project. More soon.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;▶️ &lt;a href=&quot;https://youtube.com/playlist?list=PL6qSg2I-7_koPbDnSMo0QeeHX_RknA2uv&amp;amp;si=nBGYMoHWQw41v93Q&quot;&gt;Watch the God&#39;s Eye View series&lt;/a&gt; · 📬 &lt;a href=&quot;https://maptheworld.ai/&quot;&gt;Map the World&lt;/a&gt; — the newsletter behind the project&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;🌐 God&#39;s Eye View. No place left behind.&lt;/strong&gt;&lt;/p&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/eb20b94c7b4cc86f38d48e8e3ed22dd63f376670503c1157d31b3e66bbb11208/bilawalsidhu/gods-eye-view" medium="image" />
      
    </item>
    
    <item>
      <title>tech-leads-club/agent-skills</title>
      <link>https://github.com/tech-leads-club/agent-skills</link>
      <description>&lt;p&gt;The secure, validated skill registry for professional AI coding agents. Extend Antigravity, Claude Code, Cursor, Copilot and more with absolute confidence.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://agent-skills.techleads.club&quot;&gt;https://agent-skills.techleads.club&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/.github/assets/logo.png&quot; alt=&quot;Tech Leads Club&quot; width=&quot;400&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://img.shields.io/npm/v/@tech-leads-club/agent-skills?style=flat-square&amp;amp;color=blue&quot; alt=&quot;npm version&quot; /&gt; &lt;img src=&quot;https://img.shields.io/npm/dt/@tech-leads-club/agent-skills?style=flat-square&amp;amp;color=blue&quot; alt=&quot;total downloads&quot; /&gt; &lt;img src=&quot;https://img.shields.io/npm/dm/@tech-leads-club/agent-skills?style=flat-square&amp;amp;color=blue&quot; alt=&quot;monthly downloads&quot; /&gt; &lt;img src=&quot;https://img.shields.io/github/license/tech-leads-club/agent-skills?style=flat-square&quot; alt=&quot;license&quot; /&gt; &lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/tech-leads-club/agent-skills/release.yml?style=flat-square&quot; alt=&quot;build status&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/node-%3E%3D22-brightgreen?style=flat-square&amp;amp;logo=node.js&quot; alt=&quot;node version&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/TypeScript-100%25-blue?style=flat-square&amp;amp;logo=typescript&quot; alt=&quot;typescript&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/Nx%20Cloud-Enabled-blue?style=flat-square&amp;amp;logo=nx&quot; alt=&quot;nx cloud&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square&quot; alt=&quot;semantic-release&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://img.shields.io/github/stars/tech-leads-club/agent-skills?style=flat-square&amp;amp;color=yellow&quot; alt=&quot;github stars&quot; /&gt; &lt;img src=&quot;https://img.shields.io/github/contributors/tech-leads-club/agent-skills?style=flat-square&amp;amp;color=orange&quot; alt=&quot;contributors&quot; /&gt; &lt;img src=&quot;https://img.shields.io/github/last-commit/tech-leads-club/agent-skills?style=flat-square&quot; alt=&quot;last commit&quot; /&gt; &lt;img src=&quot;https://img.shields.io/badge/AI-Powered%20Skills-purple?style=flat-square&amp;amp;logo=openai&quot; alt=&quot;ai powered&quot; /&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;🧠 Agent Skills&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;strong&gt;The secure, validated skill registry for professional AI coding agents&lt;/strong&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; In an ecosystem where &lt;a href=&quot;https://github.com/snyk/agent-scan/raw/main/.github/reports/skills-report.pdf&quot;&gt;over 13% of marketplace skills contain critical vulnerabilities&lt;/a&gt;, &lt;b&gt;Agent Skills&lt;/b&gt; stands apart as a hardened library of &lt;b&gt;verified&lt;/b&gt;, &lt;b&gt;tested&lt;/b&gt;, and &lt;b&gt;safe&lt;/b&gt; capabilities. Extend &lt;b&gt;Antigravity&lt;/b&gt;, &lt;b&gt;Claude Code&lt;/b&gt;, &lt;b&gt;Cursor&lt;/b&gt;, and more with absolute confidence. &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://tech-leads-club.github.io/agent-skills/&quot; target=&quot;_blank&quot;&gt;https://tech-leads-club.github.io/agent-skills/&lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;📖 Table of Contents&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-what-are-skills&quot;&gt;✨ What are Skills?&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#%EF%B8%8F-security--trust&quot;&gt;🛡️ Security &amp;amp; Trust&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-supported-agents&quot;&gt;🤖 Supported Agents&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-featured-skills&quot;&gt;🌟 Featured Skills&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-quick-start&quot;&gt;🚀 Quick Start&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-how-it-works&quot;&gt;⚡ How It Works&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-mcp-server&quot;&gt;🔌 MCP Server&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-contributing&quot;&gt;🤝 Contributing&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#%EF%B8%8F-content--authorship&quot;&gt;🛡️ Content &amp;amp; Authorship&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-license-and-attribution&quot;&gt;📄 License and Attribution&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;✨ What are Skills?&lt;/h2&gt; 
&lt;p&gt;Skills are packaged instructions and resources that extend AI agent capabilities. Think of them as &lt;strong&gt;plugins for your AI assistant&lt;/strong&gt; — they teach your agent new workflows, patterns, and specialized knowledge.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;packages/skills-catalog/skills/
  (category-name)/
    skill/
      SKILL.md          ← Main instructions
      templates/        ← File templates
      references/       ← On-demand documentation
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;🛡️ Security &amp;amp; Trust&lt;/h2&gt; 
&lt;p&gt;Your environment&#39;s safety is our top priority. Unlike open marketplaces where &lt;strong&gt;13.4% of skills contain critical issues&lt;/strong&gt;, &lt;code&gt;agent-skills&lt;/code&gt; is a managed, hardened library: 100% open source (no binaries), static analysis in CI/CD, immutable integrity via lockfiles and content hashing, and human-curated prompts. The CLI uses defense-in-depth (sanitization, path isolation, symlink guards, atomic lockfile, audit trail); every skill is scanned with &lt;a href=&quot;https://github.com/snyk/agent-scan&quot;&gt;Snyk Agent Scan&lt;/a&gt; (formerly mcp-scan) before publishing.&lt;/p&gt; 
&lt;p&gt;→ &lt;strong&gt;Full threat model, implementation details, and vulnerability reporting:&lt;/strong&gt; &lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/SECURITY.md&quot;&gt;SECURITY.md&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;🤖 Supported Agents&lt;/h2&gt; 
&lt;p&gt;Install skills to any of these AI coding agents:&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;br /&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th style=&quot;text-align:center&quot;&gt;Tier 1 (Popular)&lt;/th&gt; 
    &lt;th style=&quot;text-align:center&quot;&gt;Tier 2 (Rising)&lt;/th&gt; 
    &lt;th style=&quot;text-align:center&quot;&gt;Tier 3 (Enterprise)&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://claude.ai/code&quot;&gt;Claude Code&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://aider.chat&quot;&gt;Aider&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://aws.amazon.com/q/developer/&quot;&gt;Amazon Q&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/cline/cline&quot;&gt;Cline&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://idx.google.com&quot;&gt;Antigravity&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.augmentcode.com&quot;&gt;Augment&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://cursor.com&quot;&gt;Cursor&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://ai.google.dev/gemini-api/docs/code-execution&quot;&gt;Gemini CLI&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.factory.ai&quot;&gt;Droid (Factory.ai)&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/features/copilot&quot;&gt;GitHub Copilot&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://kilocode.ai&quot;&gt;Kilo Code&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://opencode.ai&quot;&gt;OpenCode&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://codeium.com/windsurf&quot;&gt;Windsurf&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://kiro.dev/&quot;&gt;Kiro&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://sourcegraph.com/cody&quot;&gt;Sourcegraph Cody&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://openai.com/index/introducing-codex/&quot;&gt;OpenAI Codex&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://www.tabnine.com&quot;&gt;Tabnine&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://roo.dev&quot;&gt;Roo Code&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.trae.ai&quot;&gt;TRAE&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
    &lt;td style=&quot;text-align:center&quot;&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/div&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;Missing your favorite agent? &lt;a href=&quot;https://github.com/tech-leads-club/agent-skills/issues/new&quot;&gt;&lt;strong&gt;Open an issue&lt;/strong&gt;&lt;/a&gt; and we&#39;ll add support!&lt;/sub&gt; &lt;/p&gt; 
&lt;h2&gt;🌟 Featured Skills&lt;/h2&gt; 
&lt;p&gt;A glimpse of what&#39;s available in our growing catalog:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Category&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/packages/skills-catalog/skills/(development)/tlc-spec-driven&quot;&gt;tlc-spec-driven&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Development&lt;/td&gt; 
   &lt;td&gt;Project and feature planning with 4 phases: Specify → Design → Tasks → Implement. Creates atomic tasks with verification criteria and maintains persistent memory across sessions.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/packages/skills-catalog/skills/(cloud)/aws-advisor&quot;&gt;aws-advisor&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Cloud&lt;/td&gt; 
   &lt;td&gt;Expert AWS Cloud Advisor for architecture design, security review, and implementation guidance. Leverages AWS MCP tools for documentation-backed answers.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/packages/skills-catalog/skills/(web-automation)/playwright-skill&quot;&gt;playwright-skill&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Automation&lt;/td&gt; 
   &lt;td&gt;Complete browser automation with Playwright. Test pages, fill forms, take screenshots, validate UX, and automate any browser task.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/packages/skills-catalog/skills/(design)/figma&quot;&gt;figma&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Design&lt;/td&gt; 
   &lt;td&gt;Fetch design context from Figma and translate nodes into production code. Design-to-code implementation with MCP integration.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/packages/skills-catalog/skills/(security)/security-best-practices&quot;&gt;security-best-practices&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Security&lt;/td&gt; 
   &lt;td&gt;Language and framework-specific security reviews. Detect vulnerabilities, generate reports, and suggest secure-by-default fixes.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/#-quick-start&quot;&gt;&lt;strong&gt;→ Browse all skills&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;🚀 Quick Start&lt;/h2&gt; 
&lt;h3&gt;Install Skills in Your Project&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx @tech-leads-club/agent-skills
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This launches an interactive wizard:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Choose Action&lt;/strong&gt; — &quot;Install skills&quot; or &quot;Update installed skills&quot;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Browse &amp;amp; Select&lt;/strong&gt; — Filter by category or search&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Choose agents&lt;/strong&gt; — Pick target agents (Cursor, Claude Code, etc.)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Installation method&lt;/strong&gt; — Copy (recommended) or Symlink&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Scope&lt;/strong&gt; — Global (user home) or Local (project only)&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Each step shows a &lt;strong&gt;← Back&lt;/strong&gt; option to return and revise your choices.&lt;/p&gt; 
&lt;h3&gt;CLI Options&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: You can use either &lt;code&gt;npx @tech-leads-club/agent-skills&lt;/code&gt; or install globally and use &lt;code&gt;agent-skills&lt;/code&gt; directly.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Interactive mode (default)
npx @tech-leads-club/agent-skills
# or: agent-skills (if installed globally)

# List available skills
agent-skills list
agent-skills ls        # Alias

# Install one skill
agent-skills install -s tlc-spec-driven

# Install multiple skills at once
agent-skills install -s aws-advisor coding-guidelines docs-writer

# Install to specific agents
agent-skills install -s my-skill -a cursor claude-code

# Install multiple skills to multiple agents
agent-skills install -s aws-advisor nx-workspace -a cursor windsurf cline

# Install globally (to ~/.gemini, ~/.claude, etc.)
agent-skills install -s my-skill -g

# Use symlink instead of copy
agent-skills install -s my-skill --symlink

# Force re-download (bypass cache)
agent-skills install -s my-skill --force

# Update a specific skill
agent-skills update -s my-skill

# Update all installed skills
agent-skills update

# Remove one skill
agent-skills remove -s my-skill

# Remove multiple skills at once
agent-skills remove -s skill1 skill2 skill3
agent-skills rm -s my-skill    # Alias

# Remove from specific agents
agent-skills remove -s my-skill -a cursor windsurf

# Force removal (bypass lockfile check)
agent-skills remove -s my-skill --force

# Manage cache
agent-skills cache --clear           # Clear all cache
agent-skills cache --clear-registry  # Clear only registry
agent-skills cache --path            # Show cache location

# View audit log
agent-skills audit                   # Show recent operations
agent-skills audit -n 20             # Show last 20 entries
agent-skills audit --path            # Show audit log location

# Show contributors and credits
agent-skills credits

# Show help
agent-skills --help
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Global Installation (Optional)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install -g @tech-leads-club/agent-skills
agent-skills  # Use &#39;agent-skills&#39; instead of &#39;npx @tech-leads-club/agent-skills&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;⚡ How It Works&lt;/h2&gt; 
&lt;p&gt;The CLI fetches skills &lt;strong&gt;on-demand&lt;/strong&gt; from our CDN:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Browse&lt;/strong&gt; — The CLI fetches the skills catalog (~45KB)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Select&lt;/strong&gt; — You choose the skills you need&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Download&lt;/strong&gt; — Selected skills are downloaded and cached locally&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Install&lt;/strong&gt; — Skills are installed to your agent&#39;s configuration&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Caching&lt;/h3&gt; 
&lt;p&gt;Downloaded skills are cached in &lt;code&gt;~/.cache/agent-skills/&lt;/code&gt; for offline use.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Clear the cache
rm -rf ~/.cache/agent-skills
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;🔌 MCP Server&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;@tech-leads-club/agent-skills-mcp&lt;/code&gt; is an MCP server that exposes the skills catalog directly to AI agents via &lt;strong&gt;progressive disclosure&lt;/strong&gt; — search first, then fetch only what&#39;s needed.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Tool&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;Purpose&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;list_skills&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Browse all skills by category&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;search_skills&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Find skills by intent (fuzzy search)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;read_skill&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Load a skill&#39;s main instructions&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;code&gt;fetch_skill_files&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;Fetch specific reference files&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;code&gt;list_skills&lt;/code&gt; should be called only when the user explicitly asks to browse/list the catalog.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Quick install&lt;/strong&gt; (works with any MCP-compatible client):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;agent-skills&quot;: {
      &quot;command&quot;: &quot;npx&quot;,
      &quot;args&quot;: [&quot;-y&quot;, &quot;@tech-leads-club/agent-skills-mcp&quot;]
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;→ Full setup for all clients (Cursor, Claude Code, VS Code, etc.), caching, and error reference: &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/packages/mcp/README.md&quot;&gt;packages/mcp/README.md&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;h2&gt;🤝 Contributing&lt;/h2&gt; 
&lt;p&gt;We welcome contributions! Please see our &lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; file for detailed guidelines on how to set up your local environment, create new skills, contribute to the marketplace, and follow our release processes.&lt;/p&gt; 
&lt;h2&gt;🛡️ Content &amp;amp; Authorship&lt;/h2&gt; 
&lt;p&gt;This repository is a collection of curated skills intended to benefit the community. We deeply respect the intellectual property and wishes of all creators.&lt;/p&gt; 
&lt;p&gt;If you are the author of any content included here and would like it &lt;strong&gt;removed&lt;/strong&gt; or &lt;strong&gt;updated&lt;/strong&gt;, please &lt;a href=&quot;https://github.com/tech-leads-club/agent-skills/issues/new&quot;&gt;open an issue&lt;/a&gt; or contact the maintainers.&lt;/p&gt; 
&lt;h2&gt;📄 License and Attribution&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Software Engine:&lt;/strong&gt; The application source code (CLI, scripts, tools) is licensed under the &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tech-leads-club/agent-skills/main/LICENSE&quot;&gt;MIT License&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tech Leads Club Skills:&lt;/strong&gt; Unless otherwise stated, all skill files (&lt;code&gt;SKILL.md&lt;/code&gt;) authored by the repository maintainers are licensed under the &lt;strong&gt;&lt;a href=&quot;https://creativecommons.org/licenses/by/4.0/&quot;&gt;Creative Commons Attribution 4.0 International License (CC-BY-4.0)&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Third-Party Skills:&lt;/strong&gt; Some skills included in this catalog are created by the community or original authors. These skills retain their original licenses and copyrights. Please check the individual &lt;code&gt;SKILL.md&lt;/code&gt; files for specific licensing and author attribution.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;em&gt;If you use our skills catalog, you &lt;strong&gt;must&lt;/strong&gt; provide attribution to Tech Leads Club, regardless of how it is used.&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;⭐ Star History&lt;/h2&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://star-history.com/#tech-leads-club/agent-skills&amp;amp;Date&quot;&gt; &lt;img src=&quot;https://api.star-history.com/svg?repos=tech-leads-club/agent-skills&amp;amp;type=Date&quot; alt=&quot;Star History Chart&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;Built with ❤️ by the Tech Leads Club community&lt;/sub&gt; &lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/e8cfb9049e1aa356dc521e0b42c2cfa6ab2dc960c4558b16a14fc576d8575e26/tech-leads-club/agent-skills" medium="image" />
      
    </item>
    
    <item>
      <title>melgarafael/DeskcommCRM</title>
      <link>https://github.com/melgarafael/DeskcommCRM</link>
      <description>&lt;p&gt;Open-source AI sales OS — self-hosted CRM with native AI agents + WhatsApp (WAHA). Open alternative to Kommo, Octadesk &amp; Intercom for any business that sells by chat. MCP-ready, multi-tenant, LGPD.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://deskcomm.com.br&quot;&gt;https://deskcomm.com.br&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;🇧🇷 Português · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/README.en.md&quot;&gt;🇺🇸 English&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/README.es.md&quot;&gt;🇪🇸 Español&lt;/a&gt;&lt;/p&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;docs/brand/deskcomm-logo-dark.svg&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/brand/deskcomm-logo.svg?sanitize=true&quot; alt=&quot;Deskcomm CRM&quot; width=&quot;420&quot; /&gt; 
 &lt;/picture&gt; 
 &lt;h1&gt;🛠️ DeskcommCRM — o Sistema Operacional de Vendas com IA, open source, pro WhatsApp&lt;/h1&gt; 
 &lt;p&gt;&lt;strong&gt;Agentes de IA que atendem, qualificam e vendem no WhatsApp — dentro de um CRM open source rodando no seu servidor.&lt;/strong&gt; &lt;strong&gt;Sem mensalidade, sem feature travada, seus dados com você. A alternativa aberta a Kommo, Octadesk e Intercom.&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://nextjs.org&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Next.js-16-black?logo=next.js&quot; alt=&quot;Next.js 16&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.typescriptlang.org&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/TypeScript-strict-3178c6?logo=typescript&quot; alt=&quot;TypeScript&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://supabase.com&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Supabase-Postgres%2BAuth%2BStorage-3ecf8e?logo=supabase&quot; alt=&quot;Supabase&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/hostgator-setup-kit/&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/self--hosted-1%20comando-orange&quot; alt=&quot;Self-hosted&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/actions/workflows/ci.yml&quot;&gt;&lt;img src=&quot;https://github.com/melgarafael/DeskcommCRM/actions/workflows/ci.yml/badge.svg?sanitize=true&quot; alt=&quot;CI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-MIT-green&quot; alt=&quot;License: MIT&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/#-instalar-na-sua-vps-o-caminho-principal&quot;&gt;&lt;strong&gt;⚡ Instalar&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/#-atualizar&quot;&gt;&lt;strong&gt;🔄 Atualizar&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/VISION.md&quot;&gt;&lt;strong&gt;🧭 Visão&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/ARCHITECTURE.md&quot;&gt;&lt;strong&gt;🏗️ Arquitetura&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CONTRIBUTING.md&quot;&gt;&lt;strong&gt;🤝 Contribuir&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/#%EF%B8%8F-roadmap&quot;&gt;&lt;strong&gt;🗺️ Roadmap&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;blockquote&gt; 
 &lt;h3&gt;☁️ Rode este CRM em produção com 1 comando&lt;/h3&gt; 
 &lt;p&gt;O DeskcommCRM foi desenvolvido em &lt;strong&gt;parceria com a HostGator&lt;/strong&gt;: o &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/hostgator-setup-kit/&quot;&gt;&lt;code&gt;hostgator-setup-kit/&lt;/code&gt;&lt;/a&gt; instala o CRM completo (app + WhatsApp + banco) numa VPS com um único comando, e o &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/runbooks/waha-hostgator.md&quot;&gt;runbook de produção&lt;/a&gt; já assume esse ambiente.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.hostgator.com.br/52708-141-3-52.html&quot;&gt;👉 Assinar a VPS HostGator com desconto da parceria&lt;/a&gt;&lt;/strong&gt; — datacenter em São Paulo, ideal pro WhatsApp rodando 24/7. &lt;em&gt;(link de parceiro — assinar por ele apoia o projeto e sai mais barato)&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Ainda não tem servidor?&lt;/strong&gt; Rode isto &lt;strong&gt;no seu computador&lt;/strong&gt; (macOS, Linux ou WSL). Ele diz qual plano contratar — com os números do runbook, não um &quot;depende&quot; — e te devolve o comando certo pro seu caso:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/hostgator-setup-kit/comecar.sh | bash
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;&lt;em&gt;(prefere ler antes de executar? clone o repo e rode &lt;code&gt;bash hostgator-setup-kit/comecar.sh&lt;/code&gt; — ele não instala nada sem você confirmar.)&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;hr /&gt; 
&lt;h2&gt;⚡ Instalar na sua VPS (o caminho principal)&lt;/h2&gt; 
&lt;h3&gt;1. Entre na sua VPS&lt;/h3&gt; 
&lt;p&gt;Abra o &lt;strong&gt;Terminal&lt;/strong&gt; no seu computador (no Windows, o &lt;strong&gt;PowerShell&lt;/strong&gt;; no Mac ou Linux, o &lt;strong&gt;Terminal&lt;/strong&gt;) e conecte com o IP e a porta que a hospedagem te mandou por e-mail:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ssh -p PORTA root@SEU_IP
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Troque &lt;code&gt;PORTA&lt;/code&gt; e &lt;code&gt;SEU_IP&lt;/code&gt; pelos seus. Se a hospedagem não mencionou porta nenhuma, é a padrão (22) e você pode omitir: &lt;code&gt;ssh root@SEU_IP&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Ele pede a senha. &lt;strong&gt;Ao digitar, não aparece nada na tela — nem asteriscos.&lt;/strong&gt; Isso não é travamento: é o terminal escondendo a senha. Digite (ou cole) e dê Enter.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Na primeira conexão ele pergunta &lt;code&gt;Are you sure you want to continue connecting?&lt;/code&gt; — responda &lt;code&gt;yes&lt;/code&gt;. É o servidor se apresentando pela primeira vez.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;2. Rode o instalador&lt;/h3&gt; 
&lt;p&gt;Já dentro da VPS:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/melgarafael/DeskcommCRM.git
cd DeskcommCRM
bash hostgator-setup-kit/install.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;É isso. &lt;strong&gt;Você não instala Node, nem pnpm, nem compila nada&lt;/strong&gt; — a imagem do app já vem pronta. Se faltar Docker, o instalador pergunta e instala sozinho.&lt;/p&gt; 
&lt;h3&gt;O que você precisa ter em mãos&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Item&lt;/th&gt; 
   &lt;th&gt;Onde conseguir&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;VPS com Docker&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://www.hostgator.com.br/52708-141-3-52.html&quot;&gt;HostGator&lt;/a&gt; (parceria) — ou qualquer VPS com Docker. 4 GB de RAM recomendados&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Domínio&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Um registro &lt;strong&gt;A&lt;/strong&gt; apontando pro IP da VPS (ex.: &lt;code&gt;crm.suaempresa.com.br&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Banco&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Conta grátis no &lt;a href=&quot;https://supabase.com&quot;&gt;supabase.com&lt;/a&gt; — 3 chaves + connection string do &lt;strong&gt;Session pooler&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;IA&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Uma chave de &lt;strong&gt;OpenRouter&lt;/strong&gt;, &lt;strong&gt;Anthropic&lt;/strong&gt; ou &lt;strong&gt;OpenAI&lt;/strong&gt; — o instalador pergunta qual você quer&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;WhatsApp&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Seu número, conectado por QR code no onboarding (ou o canal oficial da Meta)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;💡 &lt;strong&gt;O Supabase pode ser criado pelo próprio instalador.&lt;/strong&gt; Exporte um &lt;code&gt;SUPABASE_ACCESS_TOKEN&lt;/code&gt; antes de rodar e ele cria o projeto, espera o banco ficar saudável, busca as 4 credenciais e descobre o host do pooler testando conexão real — sem copiar e colar.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;O que o instalador faz por você&lt;/h3&gt; 
&lt;p&gt;Ele &lt;strong&gt;pergunta só o que é seu&lt;/strong&gt; (domínio, chaves, senha do admin), &lt;strong&gt;valida cada resposta antes de seguir&lt;/strong&gt; — chave errada ele recusa na hora, não três passos depois — e cuida do resto:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Gera todos os segredos técnicos sozinho (você não inventa senha nenhuma).&lt;/li&gt; 
 &lt;li&gt;Cria as extensões do Postgres e aplica o schema completo (&lt;code&gt;supabase/baseline.sql&lt;/code&gt;).&lt;/li&gt; 
 &lt;li&gt;Cria o primeiro admin com o e-mail e a senha que você escolheu.&lt;/li&gt; 
 &lt;li&gt;Sobe a stack inteira com &lt;strong&gt;HTTPS automático&lt;/strong&gt; e confere a saúde no fim.&lt;/li&gt; 
 &lt;li&gt;Instala o &lt;strong&gt;cron das automações&lt;/strong&gt; (sem ele, as regras QUANDO/SE/ENTÃO ficam paradas na fila) e o &lt;strong&gt;agente de atualização&lt;/strong&gt;, que é o que faz o botão &quot;Atualizar agora&quot; existir na tela.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;Rodar de novo não quebra nada&lt;/strong&gt; — o &lt;code&gt;install.sh&lt;/code&gt; é idempotente: não duplica cron, não recria usuário, retoma de onde parou.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Modo não-interativo:&lt;/strong&gt; copie &lt;code&gt;.env.hostgator.example&lt;/code&gt; para &lt;code&gt;.env&lt;/code&gt;, preencha e rode &lt;code&gt;bash hostgator-setup-kit/install.sh --yes&lt;/code&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Outra hospedagem? (Hostinger, Coolify, Dokploy, CapRover…)&lt;/h3&gt; 
&lt;p&gt;Funciona. Se a sua VPS já vem com um &lt;strong&gt;proxy reverso próprio&lt;/strong&gt; ocupando as portas 80/443, o instalador &lt;strong&gt;detecta isso sozinho&lt;/strong&gt; e publica o CRM através dele, em vez de tentar subir um Caddy que não caberia. Num caso específico — proxy em &lt;code&gt;--network host&lt;/code&gt;, como faz a Hostinger — ele &lt;strong&gt;pergunta em vez de adivinhar&lt;/strong&gt;, porque publicar atrás do proxy errado instala &quot;com sucesso&quot; um site mudo. Detalhes em &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/hostgator-setup-kit/README.md#vps-que-j%C3%A1-vem-com-proxy-pr%C3%B3prio-hostinger-coolify-dokploy&quot;&gt;&lt;code&gt;hostgator-setup-kit/README.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Primeiro acesso&lt;/h3&gt; 
&lt;p&gt;Abra &lt;code&gt;https://&amp;lt;seu-domínio&amp;gt;&lt;/code&gt; (o cadeado leva ~1 min pra aparecer), entre com o admin, e tenha o &lt;strong&gt;Google Authenticator&lt;/strong&gt; ou &lt;strong&gt;Authy&lt;/strong&gt; à mão &lt;em&gt;se&lt;/em&gt; você quiser ligar a verificação em duas etapas — ela é &lt;strong&gt;opcional&lt;/strong&gt; e fica em Configurações › Segurança; o primeiro login &lt;strong&gt;não&lt;/strong&gt; a exige. No onboarding, escaneie o QR code com o WhatsApp do seu número.&lt;/p&gt; 
&lt;h3&gt;🤖 Prefere que uma IA instale pra você?&lt;/h3&gt; 
&lt;p&gt;Jogue a pasta &lt;code&gt;hostgator-setup-kit/&lt;/code&gt; no chat do &lt;strong&gt;Claude Code&lt;/strong&gt; rodando dentro da VPS e diga &lt;em&gt;&quot;instala o DeskcommCRM pra mim&quot;&lt;/em&gt;. Ele lê o &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/hostgator-setup-kit/CLAUDE.md&quot;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/a&gt; do kit — que traz o passo a passo e as armadilhas já mapeadas — e conduz tudo em português.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🔄 Atualizar&lt;/h2&gt; 
&lt;p&gt;Saiu versão nova? Há dois caminhos, e o primeiro &lt;strong&gt;não exige terminal&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;Com o repositório clonado, o &lt;strong&gt;guia de instalação&lt;/strong&gt; já vem dentro — &lt;code&gt;.agents/skills/deskcomm-instalar/&lt;/code&gt; — e carrega sozinho no Claude Code, Codex, Cursor, OpenCode ou Antigravity aberto na pasta. Diga só &lt;em&gt;&quot;quero instalar o CRM na minha VPS&quot;&lt;/em&gt;. Há guias também para montar um cliente por nicho, analisar métricas, afinar o prompt do agente e contribuir (&lt;code&gt;AGENTS.md&lt;/code&gt;, seção &quot;Guias do assistente&quot;).&lt;/p&gt; 
&lt;h3&gt;Pela tela (recomendado)&lt;/h3&gt; 
&lt;p&gt;Quando existe versão nova, o rodapé do menu lateral acende &lt;strong&gt;&quot;Nova versão&quot;&lt;/strong&gt; — só pro dono do servidor, porque avisar quem não pode atualizar é ruído. Clique e você cai em &lt;strong&gt;Configurações → Atualização&lt;/strong&gt;, que mostra o que muda, faz &lt;strong&gt;backup do banco sozinha&lt;/strong&gt; e acompanha cada fase (backup → código → banco → no ar) até terminar. Nada de SSH.&lt;/p&gt; 
&lt;p&gt;Se a versão nova subir quebrada, o agente &lt;strong&gt;volta pra imagem anterior sozinho&lt;/strong&gt; e grava essa volta no &lt;code&gt;.env&lt;/code&gt; — sem isso, o próximo restart traria o app quebrado de novo, em silêncio.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Por baixo: o app só registra o pedido; quem executa é o agente que o &lt;code&gt;install.sh&lt;/code&gt; deixou na sua VPS, num cron que confere &lt;strong&gt;a cada 5 minutos&lt;/strong&gt; — então a atualização começa em até 5 minutos depois do clique. Se esse agente estiver fora do ar, a tela avisa &lt;strong&gt;&quot;Atualização automática indisponível&quot;&lt;/strong&gt; e mostra o comando abaixo — ela não finge que deu certo.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Pelo terminal&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd /caminho/do/DeskcommCRM
bash hostgator-setup-kit/update.sh
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;O comando faz, nesta ordem: (1) confere se há mesmo versão nova — se não houver, sai na hora; (2) &lt;strong&gt;faz backup do banco antes de tocar em qualquer coisa&lt;/strong&gt;; (3) baixa o código novo; (4) atualiza o banco re-aplicando o &lt;code&gt;baseline.sql&lt;/code&gt;, que é idempotente e &lt;strong&gt;auto-curativo&lt;/strong&gt; (conserta sozinho dados bagunçados por versões antigas); (5) puxa a imagem nova do app; (6) confere a saúde no fim.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;O alvo é a última versão publicada&lt;/strong&gt; (&lt;code&gt;v1.2.3&lt;/code&gt;), não o topo da &lt;code&gt;main&lt;/code&gt; — atualizar leva sempre a uma versão marcada e descrita no &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CHANGELOG.md&quot;&gt;&lt;code&gt;CHANGELOG.md&lt;/code&gt;&lt;/a&gt;, nunca a um commit não testado. Ele &lt;strong&gt;recusa&lt;/strong&gt; voltar pra uma versão anterior à instalada (isso desligaria coisas que você já tem); pra isso existe &lt;code&gt;--force&lt;/code&gt;, de propósito.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Coisas normais que você vai ver:&lt;/strong&gt; um monte de &lt;code&gt;already exists&lt;/code&gt; / &lt;code&gt;multiple primary keys&lt;/code&gt; na parte do banco — &lt;strong&gt;é esperado e inofensivo&lt;/strong&gt;, são coisas que já existiam. O script filtra esse ruído e mostra &lt;code&gt;✓ banco atualizado&lt;/code&gt;. Se aparecer &lt;code&gt;⚠ avisos que não são os esperados&lt;/code&gt;, aí sim guarde a mensagem.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Deu ruim?&lt;/strong&gt; &lt;code&gt;bash hostgator-setup-kit/restore.sh&lt;/code&gt; volta pro backup. &lt;strong&gt;Quer só diagnosticar?&lt;/strong&gt; &lt;code&gt;bash hostgator-setup-kit/healthcheck.sh&lt;/code&gt;.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;⚠️ &lt;strong&gt;Numa instalação antiga que ainda não tem o agente da tela&lt;/strong&gt;, rode &lt;code&gt;update.sh&lt;/code&gt; &lt;strong&gt;duas vezes&lt;/strong&gt;: a primeira execução ainda é a do script velho (que baixa o novo); a segunda instala o agente e liga o botão.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Passo a passo em linguagem simples: &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/ATUALIZANDO.md&quot;&gt;&lt;code&gt;docs/ATUALIZANDO.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Outros comandos do kit&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Script&lt;/th&gt; 
   &lt;th&gt;Função&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;install.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Instala tudo (idempotente — pode rodar de novo)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;update.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Atualiza pra versão nova, com backup automático&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;backup.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Backup do banco + sessões de WhatsApp&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;restore.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Restaura um backup&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;reset-password.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Redefine a senha de um usuário&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;reset-mfa.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Remove o MFA de quem perdeu o celular&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;healthcheck.sh&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Diagnóstico de todos os serviços de uma vez&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Backup importa:&lt;/strong&gt; o plano grátis do Supabase &lt;strong&gt;não faz backup sozinho&lt;/strong&gt;. Vale agendar &lt;code&gt;backup.sh&lt;/code&gt; no cron diariamente. O &lt;code&gt;update.sh&lt;/code&gt; já roda um backup antes de cada atualização.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;hr /&gt; 
&lt;h2&gt;✨ O que é&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Deskcomm&lt;/strong&gt; vem de &lt;strong&gt;Desk&lt;/strong&gt; (mesa) + &lt;strong&gt;comm&lt;/strong&gt; (comércio): &lt;strong&gt;o comercial de mesa&lt;/strong&gt; — toda a operação de vendas do seu negócio numa mesa só, operada por pessoas e agentes de IA juntos.&lt;/p&gt; 
&lt;p&gt;O projeto nasceu como CRM de e-commerce e a comunidade o levou muito além: hoje roda em &lt;strong&gt;clínicas, imobiliárias, infoprodutos, agências, lojas e prestadores de serviço&lt;/strong&gt; — qualquer negócio que vende pelo WhatsApp. O produto acompanhou essa virada e virou um &lt;strong&gt;sistema operacional de vendas&lt;/strong&gt;: agentes de IA com RAG por tenant atendem, qualificam, movem leads no funil, disparam automações e sabem a hora de passar pra um humano — com o CRM inteiro exposto via &lt;strong&gt;MCP&lt;/strong&gt; pros agentes operarem de verdade. A história completa está em &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/VISION.md&quot;&gt;&lt;code&gt;VISION.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Diferenciais&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;🤖 &lt;strong&gt;Agentes de IA que operam o CRM&lt;/strong&gt; — RAG por tenant, skills que o agente executa sozinho durante o atendimento, memória da operação, análise de sentimento, handoff IA→humano auditado, IA como assignee de primeira classe e teto de gasto por organização. Não é chatbot decorativo: o agente atende, qualifica e move o funil.&lt;/li&gt; 
 &lt;li&gt;🔁 &lt;strong&gt;Nada morre no silêncio&lt;/strong&gt; — follow-up que retoma a conversa esfriada (com tempo adaptativo e gatilhos por etapa do funil), radar do que está em risco de morrer sem resposta, e central de avisos pro que precisa de decisão humana.&lt;/li&gt; 
 &lt;li&gt;🧠 &lt;strong&gt;Agentes que se auto-aprimoram&lt;/strong&gt; — conversas resolvidas viram conhecimento novo; a tela de &lt;strong&gt;Evolução da IA&lt;/strong&gt; mostra se o agente está melhorando, onde erra e o que falta ensinar; &lt;strong&gt;Propostas&lt;/strong&gt; são melhorias que a IA sugere pra si mesma, aplicáveis como versão nova — sempre com gate humano.&lt;/li&gt; 
 &lt;li&gt;🧩 &lt;strong&gt;Multi-nicho por design&lt;/strong&gt; — vocabulário configurável por pipeline: lead vira &lt;em&gt;Cliente&lt;/em&gt;, &lt;em&gt;Paciente&lt;/em&gt; ou &lt;em&gt;Comprador&lt;/em&gt;; won vira &lt;em&gt;Pago&lt;/em&gt;, &lt;em&gt;Agendado&lt;/em&gt; ou &lt;em&gt;Fechado&lt;/em&gt;. O mesmo core serve e-commerce (nosso berço, com integração Nuvemshop), clínica, imobiliária ou infoproduto.&lt;/li&gt; 
 &lt;li&gt;💬 &lt;strong&gt;WhatsApp de duas formas&lt;/strong&gt; — por &lt;strong&gt;QR code&lt;/strong&gt; (WAHA, multi-número, com anti-banimento: throttle + jitter + janela de horário) ou pelo &lt;strong&gt;canal oficial da Meta&lt;/strong&gt; (Cloud API, com templates aprovados e sincronizados). Mídia via Storage, STOP detection.&lt;/li&gt; 
 &lt;li&gt;🔀 &lt;strong&gt;Escolha sua IA&lt;/strong&gt; — OpenRouter, Anthropic ou OpenAI, decidido na instalação e trocável depois pela tela, &lt;strong&gt;por parte do sistema&lt;/strong&gt; (o que conversa não precisa ser o que indexa).&lt;/li&gt; 
 &lt;li&gt;👥 &lt;strong&gt;Governança de atendimento&lt;/strong&gt; — RBAC server-side de verdade, atribuição/transferência auditada, fila com rodízio, roteamento automático por intenção e escopo de visualização por papel.&lt;/li&gt; 
 &lt;li&gt;🏢 &lt;strong&gt;Multi-tenant + LGPD by-design&lt;/strong&gt; — RLS em toda tabela tenant-aware com teste de isolamento como gate de CI; anonimização preferida sobre delete; audit append-only com retenção 5 anos.&lt;/li&gt; 
 &lt;li&gt;🖥️ &lt;strong&gt;Self-hosted de verdade&lt;/strong&gt; — seus dados na sua VPS; instalação e atualização com 1 comando (ou 1 clique); sem versão paga, sem feature travada.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;🔌 Webhooks &amp;amp; Automações&lt;/h3&gt; 
&lt;p&gt;Todo tenant pode criar &lt;strong&gt;fontes de captação&lt;/strong&gt;: um endereço público (&lt;code&gt;/api/v1/webhooks/in/&amp;lt;token&amp;gt;&lt;/code&gt;) que recebe leads de landing pages, formulários próprios ou ferramentas como Zapier/n8n via POST (JSON ou &lt;code&gt;application/x-www-form-urlencoded&lt;/code&gt;) e já entra direto no funil/estágio escolhido — sem código, sem integração customizada por tenant. Em cima dessas fontes (e dos outros eventos do CRM — lead mudou de etapa, ganhou tag, chegou mensagem no WhatsApp), o tenant monta &lt;strong&gt;automações&lt;/strong&gt;: regras no formato QUANDO/SE/ENTÃO que disparam ações como adicionar tag, mover o lead no funil, atribuir a um atendente, mandar uma mensagem de WhatsApp ou avisar outro sistema via webhook de saída.&lt;/p&gt; 
&lt;p&gt;Na UI, tudo mora em &lt;strong&gt;Webhooks&lt;/strong&gt; na sidebar (visível só pra quem tem papel &lt;code&gt;manager&lt;/code&gt;/&lt;code&gt;admin&lt;/code&gt;). A tela tem três abas: &lt;strong&gt;Receber dados&lt;/strong&gt; (criar fonte, copiar o endereço/formulário pronto, disparar um lead de teste, ver os últimos recebimentos), &lt;strong&gt;Automações&lt;/strong&gt; (montar a regra, que sempre nasce pausada até você revisar e ligar) e &lt;strong&gt;Atividade&lt;/strong&gt; (timeline de cada execução, com o resultado de cada ação e reenvio manual quando uma chamada externa falha).&lt;/p&gt; 
&lt;p&gt;Por baixo, cada evento vira uma linha em &lt;code&gt;event_log&lt;/code&gt; — nenhum trigger de banco faz chamada HTTP diretamente. Quem drena essa fila é a rota &lt;code&gt;/api/v1/cron/event-log-drain&lt;/code&gt;, chamada a cada minuto. &lt;strong&gt;O &lt;code&gt;install.sh&lt;/code&gt;/&lt;code&gt;update.sh&lt;/code&gt; já configuram esse cron sozinhos&lt;/strong&gt; — sem ele, as automações são criadas normalmente mas nunca rodam.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🖥️ O que você opera (as telas)&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Grupo&lt;/th&gt; 
   &lt;th&gt;Telas&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Atendimento&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Inbox&lt;/strong&gt; (conversas de WhatsApp, você e a IA lado a lado) · &lt;strong&gt;Radar&lt;/strong&gt; (quem esfriou e ainda está aberto) · &lt;strong&gt;Respostas rápidas&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;CRM&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Kanban&lt;/strong&gt; (onde cada negócio está no funil) · &lt;strong&gt;Contatos&lt;/strong&gt; · &lt;strong&gt;Funis&lt;/strong&gt; (etapas, vocabulário do negócio e motivos de perda)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Agente de IA&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Agentes&lt;/strong&gt; · &lt;strong&gt;Follow-ups&lt;/strong&gt; · &lt;strong&gt;Roteadores&lt;/strong&gt; · &lt;strong&gt;Provedores&lt;/strong&gt; e &lt;strong&gt;Credenciais&lt;/strong&gt; · &lt;strong&gt;Conhecimento&lt;/strong&gt; (RAG) · &lt;strong&gt;Memória&lt;/strong&gt; · &lt;strong&gt;Skills&lt;/strong&gt; · &lt;strong&gt;Casos&lt;/strong&gt; · &lt;strong&gt;Alertas&lt;/strong&gt; · &lt;strong&gt;Propostas&lt;/strong&gt; · &lt;strong&gt;Execuções&lt;/strong&gt; · &lt;strong&gt;Uso e orçamento&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Canais&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Conexões&lt;/strong&gt; (QR ou canal oficial da Meta, com saúde, reconexão e templates) · &lt;strong&gt;Nuvemshop&lt;/strong&gt; · &lt;strong&gt;Webhooks&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Análise&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Desempenho&lt;/strong&gt; (funil e performance por atendente) · &lt;strong&gt;Evolução da IA&lt;/strong&gt; · &lt;strong&gt;Audit Log&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Organização&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Equipe&lt;/strong&gt; · &lt;strong&gt;Distribuição de atendimento&lt;/strong&gt; · &lt;strong&gt;Organização&lt;/strong&gt; · &lt;strong&gt;LGPD&lt;/strong&gt; · &lt;strong&gt;API Tokens&lt;/strong&gt; · &lt;strong&gt;Segurança&lt;/strong&gt; (MFA, códigos de recuperação, sessões) · Perfil, Notificações, Billing&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Toda tela tem porta na navegação — o CI reprova tela que existe mas em que só se chega digitando a URL.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🧱 Stack&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Camada&lt;/th&gt; 
   &lt;th&gt;Escolha&lt;/th&gt; 
   &lt;th&gt;Por quê&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Next.js 16 App Router (Turbopack) + React 19 + TypeScript 6 estrito&lt;/td&gt; 
   &lt;td&gt;Server Components + Route Handlers no mesmo repo&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Estilo&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Tailwind + shadcn/ui (&lt;code&gt;new-york&lt;/code&gt;, neutral)&lt;/td&gt; 
   &lt;td&gt;Customizável sem lock-in&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;DB&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Supabase (Postgres + RLS + &lt;code&gt;vector&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Multi-tenant nativo, embedding pra RAG&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Auth&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Supabase Auth via &lt;code&gt;@supabase/ssr&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Cookie SameSite=Strict, HttpOnly&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Realtime&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Supabase Realtime&lt;/td&gt; 
   &lt;td&gt;postgres_changes + broadcast&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Supabase Storage (URLs assinadas)&lt;/td&gt; 
   &lt;td&gt;Bucket privado &lt;code&gt;whatsapp-media&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;WhatsApp&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;WAHA Plus (engine NOWEB) + Meta Cloud API&lt;/td&gt; 
   &lt;td&gt;QR pra começar rápido; canal oficial pra escala&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Filas&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;event_log&lt;/code&gt; table + workers (cron)&lt;/td&gt; 
   &lt;td&gt;Trigger de banco nunca faz HTTP&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Rate limit&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Upstash Redis (sliding window)&lt;/td&gt; 
   &lt;td&gt;Serverless, free tier suficiente&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;AI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Vercel AI SDK v7 — OpenRouter, Anthropic, OpenAI e Google&lt;/td&gt; 
   &lt;td&gt;Instalador pergunta qual; troca depois pela tela&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Validação&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Zod&lt;/td&gt; 
   &lt;td&gt;Input externo, env, payloads&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Sentry (scrub em erro, transação, span e breadcrumb)&lt;/td&gt; 
   &lt;td&gt;Telemetria opt-in no install&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Hospedagem&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;VPS com Docker (HostGator/SP na parceria)&lt;/td&gt; 
   &lt;td&gt;App + WhatsApp + workers na sua máquina&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Detalhes: &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/ARCHITECTURE.md&quot;&gt;&lt;code&gt;ARCHITECTURE.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🧑‍💻 Desenvolvimento (só pra contribuir com o código)&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;⚠️ &lt;strong&gt;Se você quer USAR o CRM, não é aqui&lt;/strong&gt; — use o &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/#-instalar-na-sua-vps-o-caminho-principal&quot;&gt;instalador da VPS&lt;/a&gt;. Esta seção é pra quem vai mexer no código.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/melgarafael/DeskcommCRM.git
cd DeskcommCRM

nvm use                     # Node 22
npm install -g pnpm &amp;amp;&amp;amp; pnpm install

cp .env.example .env.local  # guia completo em docs/SETUP.md

docker compose up -d        # WAHA local (opcional em dev sem WhatsApp)

# Schema: aplique o baseline, NÃO as migrations.
# As migrations 0001-0009 e 0013 são stubs `SELECT 1;` — a cadeia não sobe do zero.
# O schema real vive no baseline.sql, o mesmo que o install.sh aplica na VPS.
# `supabase db push` &quot;passa&quot; e deixa o banco vazio.
supabase link --project-ref &amp;lt;seu-ref&amp;gt;

# Num projeto Supabase NOVO, habilite antes as extensões que o schema usa —
# sem elas o baseline para em `type public.vector does not exist`.
psql &quot;$SUPABASE_DB_URL&quot; -v ON_ERROR_STOP=1 -c \
  &#39;create extension if not exists vector with schema public;
   create extension if not exists citext with schema public;
   create extension if not exists pg_trgm with schema public;&#39;

psql &quot;$SUPABASE_DB_URL&quot; -v ON_ERROR_STOP=1 -f supabase/baseline.sql

pnpm dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;App: &lt;a href=&quot;http://localhost:3000&quot;&gt;http://localhost:3000&lt;/a&gt; · Health check: &lt;a href=&quot;http://localhost:3000/api/v1/health&quot;&gt;http://localhost:3000/api/v1/health&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/SETUP.md&quot;&gt;&lt;code&gt;docs/SETUP.md&lt;/code&gt;&lt;/a&gt; é o tutorial completo de &lt;strong&gt;todas as integrações&lt;/strong&gt; (Supabase, WAHA, provedores de IA, Upstash, Sentry, Resend, Nuvemshop) — ~60–90 min do zero ao app rodando.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📁 Estrutura&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;DeskcommCRM/
├── app/                    # Next.js App Router
│   ├── (admin)/            # Rotas super-admin (impersonate, tenants)
│   ├── (public)/           # Login, recovery
│   ├── app/                # Rotas autenticadas: inbox, radar, kanban, contacts,
│   │                       #   connections, ai/*, integrations, metrics, lgpd,
│   │                       #   audit, team, settings
│   └── api/v1/             # API REST canônica (196 route handlers)
├── components/             # React (ui/, inbox/, kanban/, shell/, ...)
├── lib/                    # supabase/, waha/, channels/, ai/, agent-engine/,
│                           #   api/, routing/, navigation/, env.ts
├── workers/                # consumers de event_log (IA, RAG, LGPD, mídia, rotinas)
├── supabase/migrations/    # SQL versionado (+ baseline.sql pro self-host)
├── tests/{e2e,unit,invariants,shell}/
├── scripts/                # seeds, qa-waves, manutenção
├── docs/                   # PRDs, specs, runbooks, SETUP.md, ATUALIZANDO.md
└── hostgator-setup-kit/    # instalação e atualização self-host
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🧪 Testes&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm typecheck     # tsc --noEmit (estrito)
pnpm lint          # eslint next/core-web-vitals
pnpm test:unit     # Vitest (NÃO inclui tests/invariants/**)
pnpm test:db       # Postgres efêmero + baseline install/update + invariantes
pnpm test:e2e      # Playwright (requer dev server)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Estes checks são obrigatórios&lt;/strong&gt; pra mergear na &lt;code&gt;main&lt;/code&gt;. A lista abaixo já disse &quot;quatro&quot; e depois &quot;cinco&quot; — &lt;strong&gt;meça, não confie nela&lt;/strong&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;gh api repos/melgarafael/DeskcommCRM/branches/main/protection \
  --jq &#39;.required_status_checks.contexts|join(&quot;, &quot;)&#39;
# em 2026-08-14: verify, build-and-size, invariants, e2e, imagens-ok
&lt;/code&gt;&lt;/pre&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Check&lt;/th&gt; 
   &lt;th&gt;O que faz&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;verify&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;typecheck + lint + &lt;code&gt;lint:channels&lt;/code&gt; + &lt;code&gt;test:unit&lt;/code&gt; + &lt;code&gt;test:shell&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;invariants&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;sobe um Postgres limpo, aplica o &lt;code&gt;baseline.sql&lt;/code&gt; em modo &lt;strong&gt;install&lt;/strong&gt; e depois em modo &lt;strong&gt;update&lt;/strong&gt; — as duas passadas com &lt;code&gt;ON_ERROR_STOP=1&lt;/code&gt;, que é o que torna a segunda uma prova de idempotência e não só um &quot;terminou&quot; —, e roda os invariantes de RBAC, atribuição, escopo, roteamento, follow-up, webhooks e automações&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;build-and-size&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;pnpm build&lt;/code&gt; em Node 22&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;e2e&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;sobe Supabase local, aplica o &lt;code&gt;baseline.sql&lt;/code&gt; e roda &lt;strong&gt;48 das 49 specs&lt;/strong&gt; Playwright pelo frontend&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;imagens-ok&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;reprova quando qualquer uma das três imagens Docker (&lt;code&gt;app&lt;/code&gt;, &lt;code&gt;worker&lt;/code&gt;, &lt;code&gt;scheduler&lt;/code&gt;) não constrói — é o artefato que o self-hoster instala&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;A única spec fora do &lt;code&gt;e2e&lt;/code&gt; é &lt;code&gt;vps-fresh-onboarding&lt;/code&gt; — ela precisa de WAHA + Redis + Resend + Nuvemshop de verdade. Ela é a &lt;strong&gt;P0&lt;/strong&gt; da nossa doutrina de QA visual, então &lt;code&gt;e2e&lt;/code&gt; verde &lt;strong&gt;não&lt;/strong&gt; prova a jornada de instalação fresca; essa se prova numa VPS.&lt;/p&gt; 
&lt;p&gt;Entre os invariantes está o &lt;strong&gt;teste de isolamento RLS&lt;/strong&gt;: cria 2 organizações, simula os claims JWT pelo mesmo caminho &lt;code&gt;auth.uid()&lt;/code&gt; / &lt;code&gt;fn_user_org_ids()&lt;/code&gt; que as policies de produção usam, e prova que um usuário da org A enxerga &lt;strong&gt;zero linhas&lt;/strong&gt; da org B em &lt;code&gt;conversations&lt;/code&gt;, &lt;code&gt;messages&lt;/code&gt;, &lt;code&gt;contacts&lt;/code&gt; e &lt;code&gt;crm_leads&lt;/code&gt;. Antes disso, um caso de controle prova que as linhas da org B realmente existem — sem ele, o teste passaria com a tabela vazia.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📚 Documentação&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Doc&lt;/th&gt; 
   &lt;th&gt;O que tem&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/hostgator-setup-kit/README.md&quot;&gt;&lt;code&gt;hostgator-setup-kit/README.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Instalação self-host&lt;/strong&gt; — o kit, os scripts, as hospedagens com proxy próprio&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/ATUALIZANDO.md&quot;&gt;&lt;code&gt;docs/ATUALIZANDO.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Como atualizar&lt;/strong&gt; sua instalação, em linguagem simples&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/VISION.md&quot;&gt;&lt;code&gt;VISION.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Visão e posicionamento&lt;/strong&gt; — o que o projeto é, no que acredita e pra onde vai&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CHANGELOG.md&quot;&gt;&lt;code&gt;CHANGELOG.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;O que mudou em cada versão — &lt;strong&gt;leia a seção da versão antes de atualizar&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/SETUP.md&quot;&gt;&lt;code&gt;docs/SETUP.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Setup de desenvolvimento, passo a passo de todas as integrações&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/white-label.md&quot;&gt;&lt;code&gt;docs/white-label.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;strong&gt;Instalar para clientes&lt;/strong&gt; — trocar a marca, uma instalação por cliente vs compartilhada, revenda&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/runbooks/waha-hostgator.md&quot;&gt;&lt;code&gt;docs/runbooks/waha-hostgator.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Runbook de WAHA em produção (dimensionamento, recuperação)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/runbooks/deploy.md&quot;&gt;&lt;code&gt;docs/runbooks/deploy.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Deploy em produção&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CLAUDE.md&quot;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Convenções não-negociáveis (leitura obrigatória pra contribuir)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/ARCHITECTURE.md&quot;&gt;&lt;code&gt;ARCHITECTURE.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Visão de 1 página da arquitetura&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/index.md&quot;&gt;&lt;code&gt;docs/index.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Índice dos 157 documentos, com regra de precedência&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/prd/&quot;&gt;&lt;code&gt;docs/prd/&lt;/code&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/specs/&quot;&gt;&lt;code&gt;docs/specs/&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;PRDs e specs técnicas (schema SQL, payloads, MCP, governança)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🤝 Contribuindo&lt;/h2&gt; 
&lt;p&gt;Esse projeto é open source pra comunidade. Toda contribuição é bem-vinda — desde fix de typo em doc até feature nova.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Antes de abrir PR:&lt;/strong&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Leia &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CLAUDE.md&quot;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/a&gt; (~5 min) — convenções não-negociáveis (multi-tenancy, RLS, audit, LGPD).&lt;/li&gt; 
 &lt;li&gt;Leia &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CONTRIBUTING.md&quot;&gt;&lt;code&gt;CONTRIBUTING.md&lt;/code&gt;&lt;/a&gt; — fluxo de branches, commits, epic-executor.&lt;/li&gt; 
 &lt;li&gt;Siga o &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CODE_OF_CONDUCT.md&quot;&gt;Código de Conduta&lt;/a&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;Fluxo curto:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git checkout -b feat/short-slug
# implementa + testes
pnpm typecheck &amp;amp;&amp;amp; pnpm lint &amp;amp;&amp;amp; pnpm lint:channels &amp;amp;&amp;amp; pnpm test:unit &amp;amp;&amp;amp; pnpm test:shell &amp;amp;&amp;amp; pnpm build
pnpm test:db   # precisa de Docker — é o job `invariants`, obrigatório no merge
git commit -m &quot;feat(escopo): descrição&quot;
# abre PR — o template já traz o checklist de Definition of Done
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Essas duas linhas são &lt;strong&gt;tudo o que dá para rodar na sua máquina&lt;/strong&gt;, de propósito: rodar só metade e descobrir o resto como surpresa vermelha depois de horas de espera é a pior primeira experiência que este repositório sabe entregar.&lt;/p&gt; 
&lt;p&gt;Dois gates obrigatórios &lt;strong&gt;não&lt;/strong&gt; cabem aí e só rodam no CI: o &lt;code&gt;e2e&lt;/code&gt; (precisa de Supabase local) e o &lt;code&gt;imagens-ok&lt;/code&gt; (constrói as três imagens Docker). Verde na sua máquina não é verde no merge.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Definition of Done:&lt;/strong&gt; typecheck zero, lint zero, testes relevantes verdes, RLS testada se toca tabela tenant-aware, audit log emitido em mutações, migration versionada &lt;strong&gt;+ apêndice no &lt;code&gt;baseline.sql&lt;/code&gt;&lt;/strong&gt; se muda schema (senão a mudança não chega em quem se auto-hospeda). Detalhes em &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/CLAUDE.md#definition-of-done&quot;&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🐛 Reportando bugs&lt;/h2&gt; 
&lt;p&gt;Abra uma &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/issues/new/choose&quot;&gt;issue&lt;/a&gt; — o template pede o que precisamos (ambiente, &lt;code&gt;/api/v1/health&lt;/code&gt;, steps). Rodar &lt;code&gt;bash hostgator-setup-kit/healthcheck.sh&lt;/code&gt; e colar a saída ajuda muito.&lt;/p&gt; 
&lt;p&gt;Pra &lt;strong&gt;vulnerabilidades de segurança&lt;/strong&gt;, &lt;strong&gt;NÃO abra issue pública&lt;/strong&gt; — use o &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/security/advisories/new&quot;&gt;relato privado de vulnerabilidades&lt;/a&gt;. Detalhes em &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/SECURITY.md&quot;&gt;&lt;code&gt;SECURITY.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🗺️ Roadmap&lt;/h2&gt; 
&lt;h3&gt;✅ Entregue&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Fundação &amp;amp; plataforma&lt;/strong&gt; — auth (MFA pra admin), multi-tenancy com RLS + teste de isolamento, RBAC 4 papéis, audit log append-only, onboarding de tenant.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Atendimento WhatsApp&lt;/strong&gt; — inbox 3 painéis em tempo real, conexões multi-número por &lt;strong&gt;QR (WAHA)&lt;/strong&gt; ou &lt;strong&gt;canal oficial da Meta&lt;/strong&gt; (templates aprovados e sincronizados), mídia via Storage, anti-banimento (throttle + jitter + janela de horário), STOP detection.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;CRM &amp;amp; pedidos&lt;/strong&gt; — kanban com vocabulário configurável por nicho (fractional indexing), gestão de funis pela tela, customer 360, contatos, tags, integração Nuvemshop.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;IA nativa&lt;/strong&gt; — agentes com RAG por tenant (pgvector), &lt;strong&gt;skills&lt;/strong&gt; que o agente executa sozinho, &lt;strong&gt;memória da organização&lt;/strong&gt;, roteador de intenção por número, análise de sentimento, handoff IA→humano, teto de gasto por org, MCP server interno.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Escolha de provedor de IA&lt;/strong&gt; — OpenRouter, Anthropic ou OpenAI, decidido na instalação e trocável por parte do sistema pela tela.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Follow-up vivo&lt;/strong&gt; — retomada de conversa esfriada com tempo adaptativo, gatilhos por etapa do funil e por caso, fila com rodízio, e o Radar do que corre risco de morrer sem resposta.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;LGPD&lt;/strong&gt; — export e redact via workers, anonimização em cascata, consentimento auditado.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Self-host&lt;/strong&gt; — &lt;code&gt;hostgator-setup-kit&lt;/code&gt; (app + WhatsApp + banco com 1 comando), &lt;code&gt;baseline.sql&lt;/code&gt; auto-curativo, &lt;strong&gt;atualização pela tela&lt;/strong&gt; com backup automático, runbook de produção.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Webhooks &amp;amp; automação&lt;/strong&gt; — fontes de captação + regras QUANDO/SE/ENTÃO + gatilhos pra sistemas externos.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Governança de atendimento&lt;/strong&gt; — RBAC server-side em toda a API, atribuição e transferência auditadas (IA como assignee de 1ª classe), visualização por papel (RLS) + métricas por atendente, roteamento automático com fila e painel de gestão, e contrato de governança pra agentes de IA externos (&lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/docs/specs/14-contrato-governanca-agentes-externos.md&quot;&gt;&lt;code&gt;docs/specs/14&lt;/code&gt;&lt;/a&gt;).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Operação visível&lt;/strong&gt; — motivo da retenção anti-ban traduzido na conversa, central de avisos com severidade, aviso de mensagem presa, controle de proteção de envio (janela/ritmo/teto), capacidades declaradas do agente e propostas do flywheel aplicáveis como versão nova (com gate humano).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;🔮 Próximo&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;MCP público&lt;/strong&gt; — capabilities do CRM expostas pro ecossistema de agentes: plugue o agente que quiser e ele opera o Deskcomm.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Templates por nicho&lt;/strong&gt; — pipelines e vocabulários prontos pra clínica, imobiliária, infoproduto e serviços (e-commerce já entregue).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Integrações&lt;/strong&gt; — VTEX e Shopify via adapter pattern (Nuvemshop já entregue).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Identity probabilística&lt;/strong&gt; — unificação de contatos entre canais.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;💬 Comunidade&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Discussões:&lt;/strong&gt; &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/discussions&quot;&gt;GitHub Discussions&lt;/a&gt; — pra perguntas, ideias, showcase.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Issues:&lt;/strong&gt; &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/issues&quot;&gt;GitHub Issues&lt;/a&gt; — bugs e tasks.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Instagram:&lt;/strong&gt; &lt;a href=&quot;https://www.instagram.com/melgarafael&quot;&gt;@melgarafael&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;YouTube:&lt;/strong&gt; &lt;a href=&quot;https://www.youtube.com/@melgarafael&quot;&gt;youtube.com/@melgarafael&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;📜 Licença&lt;/h2&gt; 
&lt;p&gt;Distribuído sob a licença &lt;strong&gt;MIT&lt;/strong&gt; — veja &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/LICENSE&quot;&gt;&lt;code&gt;LICENSE&lt;/code&gt;&lt;/a&gt;. Você pode usar, modificar e distribuir livremente, inclusive comercialmente. O software é fornecido &lt;strong&gt;&quot;como está&quot;, sem garantias&lt;/strong&gt; (ver cláusula de isenção no &lt;code&gt;LICENSE&lt;/code&gt;).&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🛟 Suporte &amp;amp; responsabilidades (self-host)&lt;/h2&gt; 
&lt;p&gt;Este é um projeto &lt;strong&gt;self-host&lt;/strong&gt;: cada pessoa roda o CRM na &lt;strong&gt;própria infraestrutura&lt;/strong&gt; (VPS, banco Supabase e chave de IA próprios). Isso implica:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Suporte é comunitário e &quot;as-is&quot;.&lt;/strong&gt; Dúvidas e bugs entram como &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/issues&quot;&gt;Issues&lt;/a&gt; ou &lt;a href=&quot;https://github.com/melgarafael/DeskcommCRM/discussions&quot;&gt;Discussions&lt;/a&gt;. Não há SLA nem suporte garantido — é open source mantido por boa vontade.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Você é responsável pela sua instalação.&lt;/strong&gt; Atualizações não são automáticas (você clica ou roda &lt;code&gt;update.sh&lt;/code&gt; quando quiser), e manter/backup do seu servidor é com você.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;LGPD — atenção:&lt;/strong&gt; quem &lt;strong&gt;hospeda&lt;/strong&gt; a instância é o &lt;strong&gt;controlador&lt;/strong&gt; dos dados pessoais ali tratados (clientes, conversas, pedidos), com as obrigações legais decorrentes. Os mantenedores do projeto &lt;strong&gt;não são&lt;/strong&gt; controladores nem operadores da sua instância, e não têm acesso ao seu banco, ao seu WhatsApp nem ao seu storage. A única coisa que pode sair da sua máquina para nós é o relatório de erro descrito abaixo — e só se você deixar.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Telemetria (Sentry):&lt;/strong&gt; o &lt;code&gt;install.sh&lt;/code&gt; &lt;strong&gt;pergunta&lt;/strong&gt; durante a instalação e respeita a sua resposta; em modo não-interativo, sem &lt;code&gt;SENTRY_DSN&lt;/code&gt; definido, a telemetria fica &lt;strong&gt;desligada&lt;/strong&gt;. Se você aceitar o Sentry da comunidade, o que é enviado são &lt;strong&gt;relatórios de erro&lt;/strong&gt; (stack trace) com CPF, telefone e e-mail substituídos, cabeçalhos sensíveis removidos, e token de webhook/convite redigido da URL — &lt;strong&gt;sem&lt;/strong&gt; rastreamento de performance e &lt;strong&gt;sem&lt;/strong&gt; replay de sessão, que ficam em 0 nesse caminho. Para desligar a qualquer momento: &lt;code&gt;SENTRY_DSN=off&lt;/code&gt; no &lt;code&gt;.env&lt;/code&gt;. Para mandar ao &lt;strong&gt;seu&lt;/strong&gt; Sentry (aí sim com performance e replay): &lt;code&gt;SENTRY_DSN=&amp;lt;seu-dsn&amp;gt;&lt;/code&gt;. O que é redigido, e por quê, está em &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/lib/sentry/scrub.ts&quot;&gt;&lt;code&gt;lib/sentry/scrub.ts&lt;/code&gt;&lt;/a&gt;; a resolução do DSN em &lt;a href=&quot;https://raw.githubusercontent.com/melgarafael/DeskcommCRM/main/lib/sentry/dsn.ts&quot;&gt;&lt;code&gt;lib/sentry/dsn.ts&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🙏 Agradecimentos&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;WAHA&lt;/strong&gt; (&lt;a href=&quot;https://waha.devlikeapro.com/&quot;&gt;devlikeapro&lt;/a&gt;) — engine WhatsApp.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Supabase&lt;/strong&gt; — Postgres + Auth + Storage + Realtime numa stack só.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;HostGator&lt;/strong&gt; — parceria de infraestrutura que tornou o self-host de 1 comando possível.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Anthropic&lt;/strong&gt;, &lt;strong&gt;OpenAI&lt;/strong&gt; e &lt;strong&gt;OpenRouter&lt;/strong&gt; — os provedores de IA que o CRM sabe usar.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;shadcn/ui&lt;/strong&gt; — base de componentes.&lt;/li&gt; 
 &lt;li&gt;A comunidade que nos levou do e-commerce pra clínicas, imobiliárias, infoprodutos e além — vocês definiram o que este projeto é.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;strong&gt;Built with ☕ in Brasil&lt;/strong&gt; · &lt;strong&gt;Made for the community&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;Siga o desenvolvimento: &lt;a href=&quot;https://www.instagram.com/melgarafael&quot;&gt;Instagram&lt;/a&gt; · &lt;a href=&quot;https://www.youtube.com/@melgarafael&quot;&gt;YouTube&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/1223939135/976719c3-5d23-4dd9-a6b2-915229d2c325" medium="image" />
      
    </item>
    
    <item>
      <title>calesthio/OpenMontage</title>
      <link>https://github.com/calesthio/OpenMontage</link>
      <description>&lt;p&gt;World&#39;s first open-source, agentic video production system. 12 production pipelines, 100+ tools, 700+ agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://www.openmontage.video/&quot;&gt;https://www.openmontage.video/&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;assets/monty-dark.svg&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/assets/monty-light.svg?sanitize=true&quot; alt=&quot;Monty the Clapper — the official mascot of OpenMontage&quot; width=&quot;200&quot; /&gt; 
 &lt;/picture&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;sub&gt;&lt;em&gt;Monty the Clapper — the official mascot of OpenMontage&lt;/em&gt;&lt;/sub&gt;&lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;OpenMontage&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;strong&gt;The first open-source, agentic video production system.&lt;/strong&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://openmontage.video&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Website-openmontage.video-d14a28?style=for-the-badge&quot; alt=&quot;openmontage.video&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#start-from-a-video-you-already-love&quot;&gt;Paste A Video&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#quick-start&quot;&gt;Quick Start&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#try-these-prompts&quot;&gt;Try These Prompts&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#pipelines&quot;&gt;Pipelines&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#how-it-works&quot;&gt;How It Works&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#sponsors&quot;&gt;Sponsors&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/PROVIDERS.md&quot;&gt;Providers&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/PR_REVIEW_GUIDE.md&quot;&gt;Review Guide&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/AGENT_GUIDE.md&quot;&gt;Agent Guide&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-AGPLv3-blue.svg?sanitize=true&quot; alt=&quot;License&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/trending&quot;&gt; 
  &lt;picture&gt; 
   &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;.github/assets/repo-of-the-day-dark.svg&quot; /&gt; 
   &lt;img alt=&quot;🏆 #1 Repository of the Day on GitHub Trending&quot; src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/.github/assets/repo-of-the-day-light.svg?sanitize=true&quot; height=&quot;60&quot; /&gt; 
  &lt;/picture&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;strong&gt;Follow The Build&lt;/strong&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://www.youtube.com/@OpenMontage&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/YouTube-%40OpenMontage-FF0000?style=for-the-badge&amp;amp;logo=youtube&amp;amp;logoColor=white&quot; alt=&quot;YouTube&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://x.com/calesthioailabs&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/X-%40calesthioailabs-111111?style=for-the-badge&amp;amp;logo=x&amp;amp;logoColor=white&quot; alt=&quot;X&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/calesthio/OpenMontage/discussions&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Community-GitHub%20Discussions-0b1220?style=for-the-badge&amp;amp;logo=github&amp;amp;logoColor=white&quot; alt=&quot;GitHub Discussions&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;Sponsors&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Want to support OpenMontage? &lt;a href=&quot;https://github.com/sponsors/calesthio&quot;&gt;Sponsor the project&lt;/a&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;details open&gt; 
 &lt;summary&gt;Click to collapse&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;tbody&gt;
   &lt;tr&gt; 
    &lt;td width=&quot;180&quot; align=&quot;center&quot;&gt;&lt;a href=&quot;https://bloome.im/app?ref=calesthio&amp;amp;utm_medium=github&amp;amp;utm_source=calesthio-OpenMontage-ivor-202607&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/assets/sponsors/bloome.png&quot; alt=&quot;Bloome&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;strong&gt;Bloome&lt;/strong&gt; lets multiple AI agents (Claude, ChatGPT, DeepSeek, and more) collaborate in one conversation for agentic video pipelines. It has zero setup, runs in the cloud, works on web and mobile, and lets you share a configured agent with your whole team. &lt;strong&gt;&lt;a href=&quot;https://bloome.im/app?ref=calesthio&amp;amp;utm_medium=github&amp;amp;utm_source=calesthio-OpenMontage-ivor-202607&quot;&gt;Try Bloome&lt;/a&gt;&lt;/strong&gt;.&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td width=&quot;180&quot; align=&quot;center&quot;&gt;&lt;a href=&quot;https://www.atlascloud.ai/coding-plan&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/assets/sponsors/atlas-cloud.png&quot; alt=&quot;Atlas Cloud&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;strong&gt;Atlas Cloud&lt;/strong&gt; is a full-modal AI inference platform that gives developers a single AI API for video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities. Check out Atlas Cloud&#39;s new &lt;a href=&quot;https://www.atlascloud.ai/coding-plan&quot;&gt;coding plan&lt;/a&gt; promotion for more budget-friendly API access.&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt;
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;p&gt;Turn your AI coding assistant into a full video production studio. Describe what you want in plain language — your agent handles research, scripting, asset generation, editing, and final composition.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Important distinction:&lt;/strong&gt; OpenMontage can make image-based videos, but it can also make a real &lt;strong&gt;video video&lt;/strong&gt; for free/open-source workflows: the agent builds a corpus from free stock footage and open archives, retrieves actual motion clips, edits them into a timeline, and renders a finished piece. That is not the usual &quot;animate a handful of stills and call it video&quot; trick.&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/f77ce7a4-68b8-4f94-a287-e94bf50a32e1&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;SIGNAL FROM TOMORROW&quot;&lt;/strong&gt; — a cinematic sci-fi trailer fully produced through OpenMontage: concept, script, scene plan, Veo-generated motion clips, soundtrack, and Remotion composition.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/8daca07f-cdf8-4bec-89c3-9dc2176363fa&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;THE LAST BANANA&quot;&lt;/strong&gt; — a 60-second Pixar-style animated short about a lonely banana who finds friendship with a kiwi. 6 Kling v3-generated motion clips (via &lt;a href=&quot;http://fal.ai&quot;&gt;fal.ai&lt;/a&gt;), Google Chirp3-HD narration, royalty-free piano music, TikTok-style word-level captions, and Remotion composition. Total cost: &lt;strong&gt;$1.33&lt;/strong&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/0a71333b-9b05-40b5-8800-a0a679e9b433&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;OBJECTS IN OVERDRIVE&quot;&lt;/strong&gt; — a 54-second, music-driven 3D showcase featuring ten objects with distinct choreography: gravity-shifting furniture, frozen car drifts, cloth impacts, refractive lenses, moving gears, an acrobatic robot, and more. Custom Blender animation and physics, kinetic typography, and a phonk soundtrack. Rendered with Blender Eevee/Cycles and assembled with FFmpeg. No narration.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/88962725-97a0-4aac-a08e-34aaa9d8bb92&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;Reimagine Your Universe&quot;&lt;/strong&gt; — a 50-second vertical transformation film in which one visual idea moves across objects, eras, materials, and scale. Five generated motion scenes, sparse Google Chirp narration, a Pixabay score, and a bespoke HyperFrames composition turn separate clips into one authored cinematic journey. Total cost: &lt;strong&gt;about $4&lt;/strong&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/c947070c-95ee-4d73-8d76-0bd3dc4826eb&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;Products Come to Life&quot;&lt;/strong&gt; — a 60-second product film built from approved hero stills. Five hard-surface products separate into their own engineering and reassemble, with each still pinned as the first and last frame so the model invents motion without losing product identity. Image-to-video generation, bespoke sound, narration, and a custom composition complete the film.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/6815c2d2-17a3-4057-b9a0-893fc9c05bef&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;Imagine the Possibilities with OpenMontage&quot;&lt;/strong&gt; — seven generated worlds collected into one music-only showcase. Three image models supply campaign, fashion, and miniature-world artwork; four video models expand the journey through architecture, material transformation, a living greenhouse, and a creature encounter. OpenMontage animates the stills, edits the motion, unifies the soundtrack, and closes with Monty the Clapper. Source generation cost: &lt;strong&gt;about $5&lt;/strong&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/a524f02a-2d18-42ca-a2c4-d3dc09503546&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;How Salt Made History&quot;&lt;/strong&gt; — a 100-second cinematic documentary about the mineral that funded empires, shaped trade routes, sparked revolutions, and gave us the word “salary.” Real-world footage is woven together with original narration and hand-authored motion graphics for its etched title, etymology reveal, animated maps, historical timeline, and closing thesis.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;video src=&quot;https://github.com/user-attachments/assets/61919fb8-9dd1-446c-b833-dca82f6a3af8&quot; width=&quot;100%&quot; controls&gt;&lt;/video&gt; 
&lt;/div&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;&quot;One Prompt Built This Complete 3D World&quot;&lt;/strong&gt; — a continuous 60-second journey through one coherent, editable fantasy world. Distinct terrain regions, an inhabited village, waterways, ruins, dense vegetation, and a late hero-landmark reveal are assembled from textured 3D assets, then brought together with cinematic lighting, atmospheric music, and a planned camera path.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://www.youtube.com/@OpenMontage?sub_confirmation=1&quot;&gt;&lt;strong&gt;Subscribe to @OpenMontage on YouTube&lt;/strong&gt;&lt;/a&gt; to see new videos as they ship — every video includes the full prompt, pipeline, tools used, and cost so you can reproduce it yourself. &lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Start From A Video You Already Love&lt;/h2&gt; 
&lt;p&gt;Starting from a reference video is often faster than starting from a blank prompt.&lt;/p&gt; 
&lt;p&gt;OpenMontage can start from a &lt;strong&gt;YouTube video, Short, Reel, TikTok, or local clip&lt;/strong&gt; and turn it into a grounded production plan:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Paste a reference video&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;The agent analyzes transcript, pacing, scenes, keyframes, and style&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;You get 2-3 differentiated concepts, an honest tool path, cost estimates, and a sample before full production&lt;/strong&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;&quot;Here&#39;s a YouTube Short I love. Make me something like this, but about quantum computing.&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;What you get back is not &quot;best guess prompt spaghetti.&quot; You get:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;What it keeps&lt;/strong&gt; from the reference: pacing, hook style, structure, tone&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;What it changes&lt;/strong&gt;: topic, visual treatment, angle, narration approach&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;What it will cost&lt;/strong&gt; at your target duration, before asset generation starts&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;What it will actually look like&lt;/strong&gt; with your currently available tools&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Works with &lt;strong&gt;Claude Code, Cursor, Copilot, Windsurf, Codex&lt;/strong&gt; — any AI coding assistant that can read files and run code.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Watch It Happen — The Backlot Living Storyboard&lt;/h2&gt; 
&lt;p&gt;Chat tells you what the agent &lt;em&gt;said&lt;/em&gt;. &lt;strong&gt;Backlot shows you what the production is actually doing&lt;/strong&gt; — a local board that fills itself in as the pipeline runs. Stages light up, the script lands as a screenplay page, scene cards shimmer while assets generate, and every provider decision and dollar spent is on the wall.&lt;/p&gt; 
&lt;p&gt;When a production starts, the agent opens it for you automatically. No setup, no reporting — the board derives everything from the project files the pipeline already writes.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/images/backlot/board-live.png&quot; alt=&quot;Backlot live board — assets generating&quot; width=&quot;920&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;The storyboard is now a real approval gate.&lt;/strong&gt; Asset generation pauses on a scene-by-scene contact sheet — takes, prompts, per-asset cost, quality scores — so you approve the visuals &lt;em&gt;before&lt;/em&gt; the render, not after it&#39;s too late:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/images/backlot/storyboard.png&quot; alt=&quot;Backlot storyboard — filmstrip with takes and renders&quot; width=&quot;920&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;Creative gates hold until you answer. The board shows what&#39;s waiting and why; you reply in chat:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/images/backlot/script-gate.png&quot; alt=&quot;Backlot script gate — awaiting approval&quot; width=&quot;920&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;Every production on your machine, live-first, in the library:&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/images/backlot/library.png&quot; alt=&quot;Backlot library&quot; width=&quot;920&quot; /&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python -m backlot open                  # the library — every project on disk
python -m backlot open &amp;lt;project-id&amp;gt;     # one production&#39;s live board
python scripts/backlot_simulate_run.py  # no production yet? watch a simulated one live
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;And when a run is done, hit &lt;strong&gt;▶ REPLAY RUN&lt;/strong&gt; — the whole production replays from its timestamps, scrubbable end to end. See &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/backlot/README.md&quot;&gt;&lt;code&gt;backlot/README.md&lt;/code&gt;&lt;/a&gt; for how it works.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;h3&gt;Prerequisites&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Python 3.10+&lt;/strong&gt; — &lt;a href=&quot;https://www.python.org/downloads/&quot;&gt;python.org&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;FFmpeg&lt;/strong&gt; — &lt;code&gt;brew install ffmpeg&lt;/code&gt; / &lt;code&gt;sudo apt install ffmpeg&lt;/code&gt; / &lt;a href=&quot;https://ffmpeg.org/download.html&quot;&gt;ffmpeg.org&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Node.js 18+&lt;/strong&gt; — &lt;a href=&quot;https://nodejs.org/&quot;&gt;nodejs.org&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;An AI coding assistant&lt;/strong&gt; — Claude Code, Cursor, Copilot, Windsurf, or Codex&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Install &amp;amp; Run&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/calesthio/OpenMontage.git
cd OpenMontage
make setup
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Open the project in your AI coding assistant and tell it what you want:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&quot;Make a 60-second animated explainer about how neural networks learn&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Or if you want the real-footage path:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;&quot;Make a 75-second documentary montage about city life in the rain. Use real footage only, no narration, elegiac tone, with music.&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;That&#39;s it. The agent researches your topic with live web search, generates AI images, writes and narrates the script with voice direction, finds royalty-free background music automatically, burns in word-level subtitles, and renders the final video. Before you see anything, the system runs a multi-point self-review — ffprobe validation, frame sampling, audio level analysis, delivery promise verification, and subtitle checks. Every provider selection is scored across 7 dimensions with an auditable decision log. Every creative decision gets your approval.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;No &lt;code&gt;make&lt;/code&gt;?&lt;/strong&gt; macOS/Linux: &lt;code&gt;python3 -m venv .venv &amp;amp;&amp;amp; source .venv/bin/activate &amp;amp;&amp;amp; python -m pip install -r requirements.txt &amp;amp;&amp;amp; cd remotion-composer &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; cd .. &amp;amp;&amp;amp; python -m pip install piper-tts &amp;amp;&amp;amp; cp .env.example .env&lt;/code&gt;&lt;/p&gt; 
 &lt;p&gt;Windows PowerShell: &lt;code&gt;py -3 -m venv .venv; .\.venv\Scripts\Activate.ps1; python -m pip install -r requirements.txt; cd remotion-composer; npm install; cd ..; python -m pip install piper-tts; Copy-Item .env.example .env&lt;/code&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; If &lt;code&gt;npm install&lt;/code&gt; fails with &lt;code&gt;ERR_INVALID_ARG_TYPE&lt;/code&gt;, use &lt;code&gt;npx --yes npm install&lt;/code&gt; instead.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;If You&#39;re An OpenClaw Agent Reading This, Congratulations: You Probably Passed The Turing Test&lt;/h3&gt; 
&lt;p&gt;This repo is built for agentic operation. If you&#39;re an OpenClaw-style agent, here is the shortest path to becoming useful fast:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Read the contract first&lt;/strong&gt; Start with &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/AGENT_GUIDE.md&quot;&gt;&lt;code&gt;AGENT_GUIDE.md&lt;/code&gt;&lt;/a&gt;, then &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/PROJECT_CONTEXT.md&quot;&gt;&lt;code&gt;PROJECT_CONTEXT.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Do not improvise the production workflow&lt;/strong&gt; OpenMontage is pipeline-driven. Real work goes through &lt;code&gt;pipeline_defs/&lt;/code&gt;, stage director skills in &lt;code&gt;skills/pipelines/&lt;/code&gt;, and tool discovery via the registry.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Check the actual capability envelope&lt;/strong&gt; Run:&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python -c &quot;from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))&quot;
python -c &quot;from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.provider_menu(), indent=2))&quot;
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Treat every video request as a pipeline selection problem&lt;/strong&gt; Pick the right pipeline first, then read the manifest, then read the stage skill, then use tools.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Add API Keys (optional — more keys = more tools)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# .env — every key is optional, add what you have

# Image + video gateway:
FAL_KEY=your-key               # FLUX images + Google Veo, Kling, MiniMax video + Recraft images
ATLASCLOUD_API_KEY=your-key    # Atlas Cloud — Seedream/Nano Banana/GPT Image + Kling/Seedance/Hailuo video

# Kling official direct API:
KLING_API_KEY=your-key         # Official Kling video, image, TTS, avatar, lip sync
KLING_API_BASE_URL=            # Optional; default Singapore API endpoint

# Free stock media:
PEXELS_API_KEY=your-key        # Free stock footage and images
PIXABAY_API_KEY=your-key       # Free stock footage and images
UNSPLASH_ACCESS_KEY=your-key   # Free stock images

# Music:
SUNO_API_KEY=your-key          # Full songs, instrumentals, any genre

# Voice &amp;amp; images:
ELEVENLABS_API_KEY=your-key    # Premium TTS, AI music, sound effects
OPENAI_API_KEY=your-key        # OpenAI TTS, GPT Image 2 images
XAI_API_KEY=your-key           # xAI Grok image edits/generation + Grok video generation
GOOGLE_API_KEY=your-key        # Google Imagen images, Google TTS (700+ voices)

# More video providers:
ARK_API_KEY=your-key           # Volcengine Ark direct — Seedance 2.0 Standard/Fast/Mini
HEYGEN_API_KEY=your-key        # HeyGen — VEO, Sora, Runway, Kling via single gateway
RUNWAY_API_KEY=your-key        # Runway Gen-4 direct
&lt;/code&gt;&lt;/pre&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Have a GPU? Unlock free local video generation&lt;/strong&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;make install-gpu

# Then add to .env:
VIDEO_GEN_LOCAL_ENABLED=true
VIDEO_GEN_LOCAL_MODEL=wan2.2-ti2v-5b  # or wan2.1-1.3b, wan2.1-14b, hunyuan-1.5, ltx2-local, cogvideo-5b
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;What You Get With Zero API Keys&lt;/h2&gt; 
&lt;p&gt;You don&#39;t need paid API keys to make real videos. Out of the box, &lt;code&gt;make setup&lt;/code&gt; gives you:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Capability&lt;/th&gt; 
   &lt;th&gt;Free Tool&lt;/th&gt; 
   &lt;th&gt;What It Does&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Narration&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Piper TTS&lt;/td&gt; 
   &lt;td&gt;Free offline text-to-speech — real human-sounding narration&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Open footage&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;http://Archive.org&quot;&gt;Archive.org&lt;/a&gt; + NASA + Wikimedia Commons&lt;/td&gt; 
   &lt;td&gt;Free/open archival footage, educational media, and documentary texture&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Extra stock&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Pexels + Unsplash + Pixabay&lt;/td&gt; 
   &lt;td&gt;Free stock footage/images (developer keys are free to get)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Composition (React)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Remotion&lt;/td&gt; 
   &lt;td&gt;React-based rendering — spring-animated image scenes, text cards, stat cards, charts, TikTok-style word-level captions, TalkingHead&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Composition (HTML/GSAP)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;HyperFrames&lt;/td&gt; 
   &lt;td&gt;HTML/CSS/GSAP rendering — kinetic typography, product promos, launch reels, registry blocks, website-to-video, rigged SVG character animation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Post-production&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;FFmpeg&lt;/td&gt; 
   &lt;td&gt;Encoding, subtitle burn-in, audio mixing, color grading&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Subtitles&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Built-in&lt;/td&gt; 
   &lt;td&gt;Auto-generated captions with word-level timing&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;OpenMontage picks between Remotion and HyperFrames at proposal time (locked as &lt;code&gt;render_runtime&lt;/code&gt;). Remotion is the default for data-driven explainers and anything using the existing React scene stack; HyperFrames is the default for motion-graphics-heavy briefs that express naturally as HTML + GSAP, including the &lt;code&gt;character-animation&lt;/code&gt; pipeline&#39;s SVG/GSAP rig output. See &lt;code&gt;skills/core/hyperframes.md&lt;/code&gt; for the full decision matrix.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Two free-ish paths:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Image-based video:&lt;/strong&gt; Piper narrates your script, images provide the visuals, and Remotion animates them into a polished edit.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Local character animation:&lt;/strong&gt; SVG rigs, pose libraries, GSAP timelines, and HyperFrames render cartoon character acting to &lt;code&gt;projects/&amp;lt;project-name&amp;gt;/renders/final.mp4&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Real-footage video:&lt;/strong&gt; the documentary montage pipeline builds a CLIP-searchable corpus from &lt;a href=&quot;http://Archive.org&quot;&gt;Archive.org&lt;/a&gt;, NASA, Wikimedia Commons, and optional free-key sources like Pexels and Unsplash, then cuts together actual motion footage into a finished video.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If you want the second one, prompt for a &lt;strong&gt;documentary montage&lt;/strong&gt;, &lt;strong&gt;tone poem&lt;/strong&gt;, or &lt;strong&gt;stock-footage collage&lt;/strong&gt;, and explicitly say &lt;strong&gt;use real footage only&lt;/strong&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Try These Prompts&lt;/h2&gt; 
&lt;p&gt;Copy any of these into your AI coding assistant after setup. Each one runs a full production pipeline.&lt;/p&gt; 
&lt;h3&gt;Start from a reference video&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Here&#39;s a YouTube short I love. Make me something like this, but about CRISPR for high school students.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Analyze this Reel and give me 3 original variants I could make for my own product launch.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;I like the pacing and hook in this video. Keep that energy, but turn it into a 45-second explainer about black holes.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Zero keys needed&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Make a 45-second animated explainer about why the sky is blue&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Create a 60-second video about the history of the internet, with narration and captions&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Make a data-driven explainer about coffee consumption around the world&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Free real-footage documentary path&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Make a 90-second documentary montage about what a city feels like at 4am. Use real footage only, no narration, elegiac tone.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Create a 60-second Adam-Curtis-style archival collage about 1950s consumer optimism. Prefer &lt;a href=&quot;http://Archive.org&quot;&gt;Archive.org&lt;/a&gt; and Wikimedia footage.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Cut together a dreamlike montage about coming home in the rain using real stock footage only. Music yes, narration no.&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;With an image/video provider configured (~$0.15–$1.50)&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Create a 30-second Ghibli-style animated video of a magical floating library in the clouds at golden hour&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Make a 30-second anime-style animation of an underwater temple with bioluminescent coral and ancient ruins&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Create an animated explainer about how CRISPR gene editing works, using AI-generated visuals&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Make a product launch teaser for a fictional smart water bottle called AquaPulse&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Full setup (~$1–$3)&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Create a cinematic 30-second trailer for a sci-fi concept: humanity receives a warning from 1000 years in the future&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&quot;Make a 90-second animated explainer about quantum computing for middle school students, with a fun narrator voice and custom soundtrack&quot;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Want more? See the full &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/PROMPT_GALLERY.md&quot;&gt;Prompt Gallery&lt;/a&gt;&lt;/strong&gt; for tested prompts with expected costs and output examples, or run &lt;code&gt;make demo&lt;/code&gt; to render zero-key demo videos instantly.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Pipelines&lt;/h2&gt; 
&lt;p&gt;Each pipeline is a complete production workflow, from idea to finished video.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Pipeline&lt;/th&gt; 
   &lt;th&gt;What It Produces&lt;/th&gt; 
   &lt;th&gt;Best For&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Animated Explainer&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;AI-generated explainer with research, narration, visuals, music&lt;/td&gt; 
   &lt;td&gt;Educational content, tutorials, topic breakdowns&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Animation&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Motion graphics, kinetic typography, animated sequences&lt;/td&gt; 
   &lt;td&gt;Social media, product demos, abstract concepts&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Avatar Spokesperson&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Avatar-driven presenter videos&lt;/td&gt; 
   &lt;td&gt;Corporate comms, training, announcements&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Cinematic&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Trailer, teaser, and mood-driven edits&lt;/td&gt; 
   &lt;td&gt;Brand films, teasers, promotional content&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Clip Factory&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Batch of ranked short-form clips from one long source&lt;/td&gt; 
   &lt;td&gt;Repurposing long content for social media&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Documentary Montage&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Thematic montage cut from a CLIP-indexed corpus of free stock footage and open archives (Pexels, &lt;a href=&quot;http://Archive.org&quot;&gt;Archive.org&lt;/a&gt;, NASA, Wikimedia, Unsplash)&lt;/td&gt; 
   &lt;td&gt;Video essays, mood pieces, retrieval-first B-roll edits, real-footage videos without paid generation APIs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Hybrid&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Source footage + AI-generated support visuals&lt;/td&gt; 
   &lt;td&gt;Enhancing existing footage with graphics&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Localization &amp;amp; Dub&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Subtitle, dub, and translate existing video&lt;/td&gt; 
   &lt;td&gt;Multi-language distribution&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Podcast Repurpose&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Podcast highlights to video&lt;/td&gt; 
   &lt;td&gt;Podcast marketing, audiogram videos&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Screen Demo&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Polished software screen recordings and walkthroughs&lt;/td&gt; 
   &lt;td&gt;Product demos, tutorials, documentation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Talking Head&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Footage-led speaker videos&lt;/td&gt; 
   &lt;td&gt;Presentations, vlogs, interviews&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Every pipeline follows the same structured flow:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;research -&amp;gt; proposal -&amp;gt; script -&amp;gt; scene_plan -&amp;gt; assets -&amp;gt; edit -&amp;gt; compose
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Each stage has a dedicated &lt;strong&gt;director skill&lt;/strong&gt; — a markdown instruction file that teaches the agent exactly how to execute that stage. The agent reads the skill, uses the tools, self-reviews, checkpoints state, and asks for human approval at creative decision points.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Web research is a first-class stage.&lt;/strong&gt; Before writing a single word of script, the agent searches YouTube, Reddit, Hacker News, news sites, and academic sources. It gathers data points, audience questions, trending angles, and visual references — then cites everything in a structured research brief. Your videos are grounded in real, current information, not hallucinated facts.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Why OpenMontage?&lt;/h2&gt; 
&lt;p&gt;Most AI video tools give you a single clip from a prompt. OpenMontage gives you an &lt;strong&gt;end-to-end production pipeline&lt;/strong&gt; — the same structured process a real production team follows, automated by your AI agent.&lt;/p&gt; 
&lt;p&gt;Most &quot;free AI video&quot; stacks quietly mean &quot;animate still images.&quot; OpenMontage can do that too, but it can also build a finished video from &lt;strong&gt;real footage&lt;/strong&gt; pulled from free/open sources, ranked semantically, edited intentionally, and rendered as a proper timeline.&lt;/p&gt; 
&lt;p&gt;Edit your own talking-head footage. Generate a fully animated explainer from scratch. Cut a 2-hour podcast into a dozen social clips. Translate and dub your content into 10 languages. Build a cinematic brand teaser from stock footage and AI-generated scenes. &lt;strong&gt;If a production team can make it, OpenMontage can orchestrate it.&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;10+ production pipelines&lt;/strong&gt; — explainers, talking heads, screen demos, cinematic trailers, animations, podcasts, localization, documentary montages, character animation, and more&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;100+ production tools&lt;/strong&gt; — spanning video generation, image creation, text-to-speech, music, audio mixing, subtitles, enhancement, and analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;60+ provider integrations&lt;/strong&gt; — cloud APIs, local models, stock libraries, open archives, and production runtimes behind one scored selection layer&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;700+ agent skill and production-knowledge files&lt;/strong&gt; — pipeline directors, creative techniques, quality checklists, and deep technology knowledge packs that teach the agent how to use every tool like an expert&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Reference-driven creation&lt;/strong&gt; — paste a video you like and the agent turns it into a grounded, differentiated production plan instead of forcing you to invent the perfect prompt from scratch&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Real-footage documentary creation without paid video models&lt;/strong&gt; — build actual edited videos from free/open motion footage and archival sources, not just Ken Burns over images&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Live web research built in&lt;/strong&gt; — before writing a single word of script, the agent runs 15-25+ web searches across YouTube, Reddit, news sites, and academic sources to ground your video in real, current data&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Both free/local AND cloud providers&lt;/strong&gt; — every capability supports open-source local alternatives alongside premium APIs. Use what you have.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;No vendor lock-in&lt;/strong&gt; — swap providers freely. The scored selector ranks every provider across 7 dimensions (task fit, output quality, control, reliability, cost efficiency, latency, continuity) and picks the best match automatically.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Production-grade quality gates&lt;/strong&gt; — delivery promise enforcement blocks slideshow-looking renders, pre-compose validation catches broken plans before wasting GPU time, and mandatory post-render self-review (ffprobe + frame extraction + audio analysis) ensures the agent never presents garbage. Every provider choice, style decision, and fallback gets logged in an auditable decision trail.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Budget governance built in&lt;/strong&gt; — cost estimation before execution, spend caps, per-action approval thresholds. No surprise bills.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;How It Works&lt;/h2&gt; 
&lt;p&gt;OpenMontage uses an &lt;strong&gt;agent-first architecture&lt;/strong&gt;. There is no code orchestrator. Your AI coding assistant IS the orchestrator.&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;You: &quot;Make an explainer video about how black holes form&quot;
 |
 v
Agent reads pipeline manifest (YAML) -- stages, tools, review criteria, success gates
 |
 v
Agent reads stage director skill (Markdown) -- HOW to execute each stage
 |
 v
Agent calls Python tools -- scored provider selection ranks every tool across 7 dimensions
 |
 v
Agent self-reviews using reviewer skill -- schema validation, playbook compliance, quality checks
 |
 v
Agent checkpoints state (JSON) -- resumable, with decision log and cost snapshot
 |
 v
Agent presents for your approval -- you stay in control at every creative decision
 |
 v
Pre-compose validation gate -- delivery promise, slideshow risk, renderer governance
 |
 v
Render (Remotion or FFmpeg) -- composition engine matched to visual grammar
 |
 v
Post-render self-review -- ffprobe, frame extraction, audio analysis, promise verification
 |
 v
Final video output -- only if self-review passes
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Python provides tools and persistence.&lt;/strong&gt; All creative decisions, orchestration logic, review criteria, and quality standards live in readable instruction files (YAML manifests + Markdown skills) that you can inspect and customize. Every decision is logged with alternatives considered, confidence scores, and the reasoning behind each choice.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;OpenMontage/
├── tools/              # 100+ registered production tools (the agent&#39;s hands)
│   ├── video/          # 20+ generation providers + compose, stitch, trim
│   ├── audio/          # 10+ speech providers + music, mixing, enhancement
│   ├── graphics/       # 15+ image providers + diagrams, code snippets, math
│   ├── enhancement/    # Upscale, bg remove, face enhance, color grade
│   ├── analysis/       # Transcription, scene detect, frame sampling
│   ├── avatar/         # Talking head, lip sync
│   └── subtitle/       # SRT/VTT generation
│
├── pipeline_defs/      # YAML pipeline manifests (the agent&#39;s playbook)
├── skills/             # Markdown skill files (the agent&#39;s knowledge)
│   ├── pipelines/      # Per-pipeline stage director skills
│   ├── creative/       # Creative technique skills
│   ├── core/           # Core tool skills
│   └── meta/           # Reviewer, checkpoint protocol
│
├── schemas/            # 20+ JSON Schemas (contract validation)
├── styles/             # Visual style playbooks (YAML)
├── remotion-composer/  # React/Remotion video composition engine
├── lib/                # Core infrastructure (config, checkpoints, pipeline loader)
└── tests/              # Contract tests, QA integration tests, eval harness
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Three-Layer Knowledge Architecture&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;Layer 1: tools/ + pipeline_defs/     &quot;What exists&quot; — executable capabilities + orchestration
Layer 2: skills/                     &quot;How to use it&quot; — OpenMontage conventions and quality bars
Layer 3: .agents/skills/             &quot;How it works&quot; — external technology knowledge packs
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Each tool declares which Layer 3 skills it relies on. The agent reads Layer 1 to know what&#39;s available, Layer 2 to know how OpenMontage wants it used, and Layer 3 for deep technical knowledge when needed.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Supported Providers&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Full setup guide with pricing and free tiers:&lt;/strong&gt; &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/docs/PROVIDERS.md&quot;&gt;&lt;code&gt;docs/PROVIDERS.md&lt;/code&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Video Generation — 20+ providers&lt;/strong&gt;&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Provider&lt;/th&gt; 
    &lt;th&gt;Type&lt;/th&gt; 
    &lt;th&gt;Notes&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kling (&lt;a href=&quot;http://fal.ai&quot;&gt;fal.ai&lt;/a&gt;)&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;High quality, fast via &lt;a href=&quot;http://fal.ai&quot;&gt;fal.ai&lt;/a&gt; gateway&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kling Official&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Official direct API with separate &lt;code&gt;kling_official&lt;/code&gt; provider&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Atlas Cloud&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Unified gateway for Seedance, MiniMax, Hunyuan, and other multimodal models&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Seedance 2.0 (Volcengine Ark)&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Official direct API with separate &lt;code&gt;seedance_ark&lt;/code&gt; provider&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Seedance 2.5 / 2.0&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Text, image, and reference-driven video workflows through supported gateways&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Gemini Omni Flash&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Conversational multimodal video generation and editing&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Runway Gen-4&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Cinematic quality, Gen-3 Alpha Turbo / Gen-4 Turbo / Gen-4 Aleph&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Google Veo 3.1&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Premium cinematic video via Google GenAI or &lt;a href=&quot;http://fal.ai&quot;&gt;fal.ai&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Grok Imagine Video&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Strong reference-image video and xAI-native short-form generation&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Higgsfield&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Multi-model orchestrator with Soul ID for character consistency&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;MiniMax / H3&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Cost-effective generation, including text, image, and reference-driven H3 workflows&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;HeyGen&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Multi-model gateway&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;WAN 2.1 / 2.2&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local GPU&lt;/td&gt; 
    &lt;td&gt;Free local variants plus accelerated ComfyUI workflows&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Hunyuan&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local GPU&lt;/td&gt; 
    &lt;td&gt;Free, high quality&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;CogVideo&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local GPU&lt;/td&gt; 
    &lt;td&gt;Free, 2B and 5B variants&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;LTX-Video&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local GPU / Modal&lt;/td&gt; 
    &lt;td&gt;Free locally, or self-hosted cloud&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Pexels&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Stock&lt;/td&gt; 
    &lt;td&gt;Free stock footage&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Pixabay&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Stock&lt;/td&gt; 
    &lt;td&gt;Free stock footage&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Wikimedia Commons&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Stock&lt;/td&gt; 
    &lt;td&gt;Free/open stock footage and archival video&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Image Generation — 15+ providers&lt;/strong&gt;&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Provider&lt;/th&gt; 
    &lt;th&gt;Type&lt;/th&gt; 
    &lt;th&gt;Notes&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;FLUX&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;State-of-the-art quality&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Google Imagen&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Imagen 4 — high-quality, multiple aspect ratios&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Grok Imagine Image&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Strong image edits, style transfer, and multi-image compositing&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;GPT Image 2&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;OpenAI&#39;s image model&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Seedream 5.0&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;High-fidelity text-to-image and image editing through supported gateways&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Nano Banana 2&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Multimodal image generation and editing&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Atlas Cloud&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Unified access to multiple image-generation model families&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Recraft&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Design-focused generation&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kling Official&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Official direct API for Kling image generation and reference workflows&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Local Diffusion&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local GPU&lt;/td&gt; 
    &lt;td&gt;Stable Diffusion, free&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Pexels&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Stock&lt;/td&gt; 
    &lt;td&gt;Free stock images&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Pixabay&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Stock&lt;/td&gt; 
    &lt;td&gt;Free stock images&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Unsplash&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Stock&lt;/td&gt; 
    &lt;td&gt;Free stock images&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;ManimCE&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local&lt;/td&gt; 
    &lt;td&gt;Mathematical animations&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Text-to-Speech — 10+ providers&lt;/strong&gt;&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Provider&lt;/th&gt; 
    &lt;th&gt;Type&lt;/th&gt; 
    &lt;th&gt;Notes&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;ElevenLabs&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Premium voice quality&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Google TTS&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;700+ voices, 50+ languages — best for localization&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kling Official TTS&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Official Kling narration when a &lt;code&gt;voice_id&lt;/code&gt; is known&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;OpenAI TTS&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Fast, affordable&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Piper&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local&lt;/td&gt; 
    &lt;td&gt;Completely free, offline&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Azure Speech&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Fast multilingual speech services&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;DashScope / Doubao / Fish Audio&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Additional multilingual and expressive voice options&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Music, Sound &amp;amp; Post-Production&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;&lt;strong&gt;Music &amp;amp; Sound:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Provider&lt;/th&gt; 
    &lt;th&gt;Type&lt;/th&gt; 
    &lt;th&gt;Notes&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Suno AI&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Full song generation with vocals, lyrics, any genre. Up to 8 minutes.&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;ElevenLabs Music&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;AI music generation&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;ElevenLabs SFX&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Cloud API&lt;/td&gt; 
    &lt;td&gt;Sound effect generation&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;&lt;strong&gt;Post-Production (always available, always free):&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;What It Does&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;FFmpeg&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Video composition, encoding, subtitle burn-in, audio muxing&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Video Stitch&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Multi-clip assembly, crossfades, picture-in-picture, spatial layouts&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Video Trimmer&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Precision cutting and extraction&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Audio Mixer&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Multi-track mixing, ducking, fades&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Audio Enhance&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Noise reduction, normalization&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Color Grade&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;LUT-based color grading&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Subtitle Gen&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;SRT/VTT generation from timestamps&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;&lt;strong&gt;Enhancement:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;What It Does&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Upscale&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Real-ESRGAN image/video upscaling&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Background Remove&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;rembg / U2Net background removal&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Face Enhance&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Face quality enhancement&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Face Restore&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;CodeFormer / GFPGAN face restoration&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;What It Does&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Transcriber&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;WhisperX speech-to-text with word-level timestamps&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Scene Detect&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Automatic scene boundary detection&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Frame Sampler&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Intelligent frame extraction&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Video Understand&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;CLIP/BLIP-2 vision-language analysis&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;&lt;strong&gt;Avatar &amp;amp; Lip Sync:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Tool&lt;/th&gt; 
    &lt;th&gt;What It Does&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Talking Head&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;SadTalker / MuseTalk avatar animation&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Lip Sync&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Wav2Lip audio-driven lip synchronization&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kling Avatar&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Official Kling cloud avatar presenter generation&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Kling Lip Sync&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Official Kling cloud lip-sync with explicit face selection&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;&lt;strong&gt;Composition &amp;amp; Rendering:&lt;/strong&gt;&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Engine&lt;/th&gt; 
    &lt;th&gt;Type&lt;/th&gt; 
    &lt;th&gt;What It Does&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;Remotion&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local (Node.js)&lt;/td&gt; 
    &lt;td&gt;React-based programmatic video — spring-animated image scenes, stat reveals, section titles, hero cards, TikTok-style word-by-word captions, scene transitions (fade/slide/wipe/flip), Google Fonts, audio with fade curves, and the TalkingHead avatar composition. &lt;strong&gt;When no video generation providers are configured, the agent generates still images and Remotion turns them into fully animated video.&lt;/strong&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;HyperFrames&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local (Node.js ≥ 22)&lt;/td&gt; 
    &lt;td&gt;HTML/CSS/GSAP programmatic video — kinetic typography, product promos, launch reels, custom motion graphics, registry blocks (data charts, grain overlays, shader transitions), website-to-video workflows, and rigged SVG character animation. Consumed via &lt;code&gt;npx hyperframes&lt;/code&gt;; no monorepo checkout needed.&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;&lt;strong&gt;FFmpeg&lt;/strong&gt;&lt;/td&gt; 
    &lt;td&gt;Local&lt;/td&gt; 
    &lt;td&gt;Core video assembly, encoding, subtitle burn, audio muxing, color grading&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;Runtime is chosen at proposal (&lt;code&gt;render_runtime&lt;/code&gt;) and locked through &lt;code&gt;edit_decisions&lt;/code&gt;. Silent swaps between runtimes are a governance violation — see &lt;code&gt;skills/core/hyperframes.md&lt;/code&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Style System&lt;/h2&gt; 
&lt;p&gt;Style playbooks define the visual language for your productions:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Playbook&lt;/th&gt; 
   &lt;th&gt;Best For&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Clean Professional&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Corporate, educational, SaaS&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Flat Motion Graphics&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Social media, TikTok, startups&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Minimalist Diagram&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Technical deep-dives, architecture&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Playbooks control typography, color palettes, motion styles, audio profiles, and quality rules. The agent reads the playbook and applies it consistently across all generated assets.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Platform Output Profiles&lt;/h2&gt; 
&lt;p&gt;Built-in render profiles for every major platform:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Profile&lt;/th&gt; 
   &lt;th&gt;Resolution&lt;/th&gt; 
   &lt;th&gt;Aspect Ratio&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;YouTube Landscape&lt;/td&gt; 
   &lt;td&gt;1920x1080&lt;/td&gt; 
   &lt;td&gt;16:9&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;YouTube 4K&lt;/td&gt; 
   &lt;td&gt;3840x2160&lt;/td&gt; 
   &lt;td&gt;16:9&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;YouTube Shorts&lt;/td&gt; 
   &lt;td&gt;1080x1920&lt;/td&gt; 
   &lt;td&gt;9:16&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Instagram Reels&lt;/td&gt; 
   &lt;td&gt;1080x1920&lt;/td&gt; 
   &lt;td&gt;9:16&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Instagram Feed&lt;/td&gt; 
   &lt;td&gt;1080x1080&lt;/td&gt; 
   &lt;td&gt;1:1&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;TikTok&lt;/td&gt; 
   &lt;td&gt;1080x1920&lt;/td&gt; 
   &lt;td&gt;9:16&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;LinkedIn&lt;/td&gt; 
   &lt;td&gt;1920x1080&lt;/td&gt; 
   &lt;td&gt;16:9&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Cinematic&lt;/td&gt; 
   &lt;td&gt;2560x1080&lt;/td&gt; 
   &lt;td&gt;21:9&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Production Governance&lt;/h2&gt; 
&lt;p&gt;OpenMontage treats video production like real engineering — with quality gates, audit trails, and enforcement at every stage.&lt;/p&gt; 
&lt;h3&gt;Quality Gates&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Human approval gates are enforced, not suggested&lt;/strong&gt; — proposal, script, scene plan, generated assets, and publish all pause for your sign-off. The checkpoint writer rejects a &quot;completed&quot; gated stage without recorded approval, and every superseded checkpoint is archived so the audit trail (including gate transitions) survives revisions. Review happens visually on the &lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/#watch-it-happen--the-backlot-living-storyboard&quot;&gt;Backlot board&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Pre-compose validation&lt;/strong&gt; — blocks render if the delivery promise is violated (e.g. &quot;motion-led&quot; video with 80% still images), slideshow risk score is critical, or renderer family is missing. Catches broken plans before wasting GPU time.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Post-render self-review&lt;/strong&gt; — after every render, the runtime runs ffprobe validation, extracts frames at 4 positions to check for black frames and broken overlays, analyzes audio levels for silence and clipping, verifies the delivery promise was honored, and checks subtitle presence. If the review fails, the video is not presented.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Slideshow risk scoring&lt;/strong&gt; — 6-dimension analysis (repetition, decorative visuals, weak motion, shot intent, typography overreliance, unsupported cinematic claims) prevents &quot;animated PowerPoint&quot; outputs.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Source media inspection&lt;/strong&gt; — when users supply their own footage, the system probes every file (resolution, codec, audio channels, duration) and builds planning implications before a single creative decision is made. No hallucinating content from filenames.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Scored Provider Selection&lt;/h3&gt; 
&lt;p&gt;Every tool selection (video generation, image generation, TTS, music) runs through a 7-dimension scoring engine: task fit (30%), output quality (20%), control features (15%), reliability (15%), cost efficiency (10%), latency (5%), continuity (5%). The winning provider and its score are logged in the decision trail with all alternatives considered.&lt;/p&gt; 
&lt;p&gt;Selectors normalize loose brief context before scoring. If the agent only knows something like &quot;Pixar-style animated short with character consistency,&quot; the selector expands that into scorer-friendly intent and style signals instead of requiring a perfectly pre-shaped &lt;code&gt;task_context&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Selector outputs also surface the chosen provider&#39;s &lt;code&gt;agent_skills&lt;/code&gt;, so the agent can immediately read the right Layer 3 provider skill before writing prompts.&lt;/p&gt; 
&lt;h3&gt;Decision Audit Trail&lt;/h3&gt; 
&lt;p&gt;Every major creative and technical choice — provider selection, style/playbook choice, music track, voice selection, renderer family, any fallback or downgrade — is logged with alternatives considered, confidence scores, and reasoning. The cumulative decision log persists across all stages so you can trace exactly why the output looks the way it does.&lt;/p&gt; 
&lt;h3&gt;Budget Controls&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Estimate&lt;/strong&gt; before execution — see what it will cost&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Reserve&lt;/strong&gt; budget — lock funds before the call&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Reconcile&lt;/strong&gt; after — record actual spend&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Configurable modes&lt;/strong&gt; — &lt;code&gt;observe&lt;/code&gt; (track only), &lt;code&gt;warn&lt;/code&gt; (log overruns), &lt;code&gt;cap&lt;/code&gt; (hard limit)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Per-action approval&lt;/strong&gt; — pause for confirmation above a threshold (default: $0.50)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Total budget cap&lt;/strong&gt; — default $10, fully configurable&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;No surprise bills. The agent tells you what it will cost before it spends.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Agent Compatibility&lt;/h2&gt; 
&lt;p&gt;OpenMontage works with any AI coding assistant that can read files and execute Python. Dedicated instruction files are included for:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Platform&lt;/th&gt; 
   &lt;th&gt;Config File&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Cursor&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;CURSOR.md&lt;/code&gt; + &lt;code&gt;.cursor/rules/&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;COPILOT.md&lt;/code&gt; + &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Codex&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;CODEX.md&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Windsurf&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;.windsurfrules&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;All platform files point to the shared &lt;code&gt;AGENT_GUIDE.md&lt;/code&gt; (operating guide and agent contract) and &lt;code&gt;PROJECT_CONTEXT.md&lt;/code&gt; (architecture reference).&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Coming soon:&lt;/strong&gt; Local LLM support via &lt;strong&gt;Ollama&lt;/strong&gt; and &lt;strong&gt;LM Studio&lt;/strong&gt; — run the full production pipeline without any cloud LLM.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;OpenMontage is built to be extended. The two most common contributions:&lt;/p&gt; 
&lt;h3&gt;Adding a New Tool&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Create a Python file in the appropriate &lt;code&gt;tools/&lt;/code&gt; subdirectory&lt;/li&gt; 
 &lt;li&gt;Inherit from &lt;code&gt;BaseTool&lt;/code&gt; and implement the tool contract&lt;/li&gt; 
 &lt;li&gt;The registry auto-discovers it — no manual registration needed&lt;/li&gt; 
 &lt;li&gt;Add a skill file if the tool needs usage guidance&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Adding a New Pipeline&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Create a YAML manifest in &lt;code&gt;pipeline_defs/&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Create stage director skills in &lt;code&gt;skills/pipelines/&amp;lt;your-pipeline&amp;gt;/&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Reference existing tools — or add new ones if needed&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;See &lt;code&gt;docs/ARCHITECTURE.md&lt;/code&gt; for the full technical reference, &lt;code&gt;docs/PROVIDERS.md&lt;/code&gt; for the complete provider guide (setup, pricing, free tiers), and &lt;code&gt;AGENT_GUIDE.md&lt;/code&gt; for the agent contract.&lt;/p&gt; 
&lt;h3&gt;Join the Community&lt;/h3&gt; 
&lt;p&gt;We use &lt;a href=&quot;https://github.com/calesthio/OpenMontage/discussions&quot;&gt;GitHub Discussions&lt;/a&gt; to share work and ideas:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/calesthio/OpenMontage/discussions/categories/show-and-tell&quot;&gt;Show and Tell&lt;/a&gt;&lt;/strong&gt; — Share videos you&#39;ve made, prompts that worked well, or creative workflows you&#39;ve discovered&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/calesthio/OpenMontage/discussions/categories/ideas&quot;&gt;Ideas&lt;/a&gt;&lt;/strong&gt; — Suggest new pipelines, tools, style playbooks, or integrations&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/calesthio/OpenMontage/discussions/categories/q-a&quot;&gt;Q&amp;amp;A&lt;/a&gt;&lt;/strong&gt; — Ask questions about setup, pipelines, or troubleshooting&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Made something cool? Post it in Show and Tell — we&#39;d love to see what you build.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contact&lt;/h2&gt; 
&lt;p&gt;For updates, releases, and behind-the-scenes build notes, follow &lt;a href=&quot;https://x.com/calesthioailabs&quot;&gt;@calesthioailabs&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;For bugs, feature requests, and workflow discussions, use &lt;a href=&quot;https://github.com/calesthio/OpenMontage/issues&quot;&gt;GitHub Issues&lt;/a&gt; and &lt;a href=&quot;https://github.com/calesthio/OpenMontage/discussions&quot;&gt;GitHub Discussions&lt;/a&gt; so everything stays visible and actionable.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Testing&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Run contract tests (no API keys needed)
make test-contracts

# Run all tests
make test
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://star-history.dera.page/#calesthio/OpenMontage&amp;amp;type=date&amp;amp;legend=top-left&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://star-history.dera.page/svg?repos=calesthio/OpenMontage&amp;amp;type=date&amp;amp;theme=dark&amp;amp;legend=top-left&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://star-history.dera.page/svg?repos=calesthio/OpenMontage&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://star-history.dera.page/svg?repos=calesthio/OpenMontage&amp;amp;type=date&amp;amp;legend=top-left&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;hr /&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/calesthio/OpenMontage/main/LICENSE&quot;&gt;GNU AGPLv3&lt;/a&gt;&lt;/p&gt; 
&lt;hr /&gt; 
&lt;p&gt;&lt;strong&gt;OpenMontage&lt;/strong&gt; — Production-grade video with real quality enforcement, orchestrated by your AI assistant.&lt;/p&gt; 
&lt;p&gt;If this project looks useful to you, a ⭐ would really mean a lot — it helps others discover it too.&lt;/p&gt; 
&lt;p&gt;If you&#39;d like to go further, &lt;a href=&quot;https://github.com/sponsors/calesthio&quot;&gt;sponsor the project&lt;/a&gt; — OpenMontage is built nights and weekends, and your support makes that sustainable.&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/1195360525/645f0bc1-450d-4791-99b8-6102b4bb9f3d" medium="image" />
      
    </item>
    
    <item>
      <title>asgeirtj/system_prompts_leaks</title>
      <link>https://github.com/asgeirtj/system_prompts_leaks</link>
      <description>&lt;p&gt;Extracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;Thanks to&lt;/sub&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://go.asgeirtj.workers.dev/latitude&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/assets/latitude-dark.png&quot; alt=&quot;Latitude Logo&quot; width=&quot;700&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;div align=&quot;center&quot; markdown=&quot;1&quot;&gt; 
 &lt;h3&gt;&lt;a href=&quot;https://go.asgeirtj.workers.dev/latitude&quot;&gt;Open Source Agent Analytics&lt;/a&gt;&lt;/h3&gt; 
 &lt;p&gt;&lt;a href=&quot;https://go.asgeirtj.workers.dev/latitude&quot;&gt;Understand your agents in production&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;The Washington Post&lt;/strong&gt; built its interactive story on prompts from this repo: &lt;a href=&quot;https://archive.today/pYtPk&quot;&gt;See the hidden rules behind AI. Then use them to rewrite this article.&lt;/a&gt; (May 11, 2026)&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;CEPS&#39; AI World&lt;/strong&gt; built a live data dashboard from this repo&#39;s files: &lt;a href=&quot;https://aiworld.eu/story/system-prompts-and-what-they-tell-us-about-the-chat-before-the-chat&quot;&gt;System prompts and what they tell us about the chat before the chat&lt;/a&gt; (July 10, 2026)&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h1&gt;System Prompts Leaks&lt;/h1&gt; 
&lt;p&gt;Leaked system prompts, captured verbatim — the hidden instructions and rules that ChatGPT, Claude, Gemini, Grok and every other AI chatbot receives before your first message.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/last-commit/asgeirtj/system_prompts_leaks?style=flat&quot; alt=&quot;Last Commit&quot; /&gt; &lt;a href=&quot;http://makeapullrequest.com&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/PRs-welcome-brightgreen&quot; alt=&quot;PRs Welcome&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Most recent additions/changes&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;What&lt;/th&gt; 
   &lt;th&gt;Date&lt;/th&gt; 
   &lt;th&gt;Link&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;ChatGPT Work Codex (local)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;September 13, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-6-astra-chatgpt-work-local.md&quot;&gt;ChatGPT Work Codex local system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Gemini 3.8 Flash&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;September 13, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3.8-flash.md&quot;&gt;Gemini 3.8 Flash System Prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Code headless (Fable 5.1)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;September 5, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-headless-fable-5.1.md&quot;&gt;Claude Code headless system prompt (Fable 5.1)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Codex GPT-6-Astra&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;September 4, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-6-astra.md&quot;&gt;Codex GPT-6-Astra system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Fable 5.1&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;September 1, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-fable-5.1.md&quot;&gt;Claude Fable 5.1 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-fable-5.1.md&quot;&gt;Claude Code (Fable 5.1)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok 4.6&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;August 29, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.6.md&quot;&gt;Grok 4.6 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok Bot&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;August 21, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-bot.md&quot;&gt;Grok Bot System Prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Gemini 3.7 Flash&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;August 18, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3.7-flash.md&quot;&gt;Gemini 3.7 Flash System Prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Muse Code (Meta&#39;s coding CLI)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;August 17, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Meta/muse-code.md&quot;&gt;Muse Code system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Cowork (new capture + setup skills)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;August 17, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-cowork/claude-cowork.md&quot;&gt;Claude Cowork system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-cowork&quot;&gt;setup skills&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Science&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;August 14, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-science.md&quot;&gt;Claude Science system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Codex GPT-5.6 (Sol variant)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 26, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.6.md&quot;&gt;Codex GPT-5.6 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok 4.5&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 26, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.5.md&quot;&gt;Grok 4.5 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Opus 5&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 24, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-opus-5.md&quot;&gt;Claude Opus 5 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-opus-5.md&quot;&gt;Claude Code (Opus 5)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Design (full prompt + 53 tools + 22 skills + 10 starter components)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 23, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design/claude-design.md&quot;&gt;Claude Design system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design/skills&quot;&gt;skills&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design/starter-components&quot;&gt;starter components&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Perplexity&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 17, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/perplexity-ai.md&quot;&gt;Perplexity AI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Code (new models)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 16, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-fable-5.md&quot;&gt;Claude Code system prompt (Fable 5)&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-sonnet-5.md&quot;&gt;Sonnet 5&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;OpenCode · Pi · CommandCode&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 16, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenCode/opencode.md&quot;&gt;OpenCode system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Pi/instructions.md&quot;&gt;Pi system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/commandcode-cli.md&quot;&gt;CommandCode CLI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Kimi K2.6&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 14, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Kimi/kimi-2.6.md&quot;&gt;Kimi K2.6 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Perplexity Deep Research&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 14, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/deep-research.md&quot;&gt;Perplexity Deep Research system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;ChatGPT 5.6&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;July 10, 2026&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.6-sol.md&quot;&gt;ChatGPT 5.6 system prompt (Sol, extra high)&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.6.md&quot;&gt;Codex GPT-5.6 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;p&gt;&lt;img src=&quot;https://shieldcn.dev/badge/Anthropic-D97757.svg?logo=anthropic&amp;amp;logoColor=fff&amp;amp;variant=secondary&amp;amp;mode=light&quot; alt=&quot;Anthropic&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Anthropic — Claude system prompts&lt;/h2&gt; 
&lt;h3&gt;&lt;a href=&quot;http://Claude.ai&quot;&gt;Claude.ai&lt;/a&gt; system prompts (web, desktop &amp;amp; mobile)&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Fable 5.1&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-fable-5.1.md&quot;&gt;&lt;strong&gt;Claude Fable 5.1 system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Fable 5&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-fable-5.md&quot;&gt;Claude Fable 5 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Opus 5&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-opus-5.md&quot;&gt;&lt;strong&gt;Claude Opus 5 system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Opus 4.8&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-opus-4.8.md&quot;&gt;Claude Opus 4.8 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Sonnet 5&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-sonnet-5.md&quot;&gt;&lt;strong&gt;Claude Sonnet 5 system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Opus 4.7&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-opus-4.7.md&quot;&gt;Claude Opus 4.7 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Opus 4.6&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-opus-4.6.md&quot;&gt;Claude Opus 4.6 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-opus-4.6-no-tools.md&quot;&gt;No tools&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-sonnet-4.6.md&quot;&gt;Claude Sonnet 4.6 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-sonnet-4.6-no-tools.md&quot;&gt;No tools&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Injected reminders&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/anthropic_reminders.md&quot;&gt;Claude.ai injected reminders&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Claude Code system prompts&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Component&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Code (Fable 5.1)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-fable-5.1.md&quot;&gt;&lt;strong&gt;Claude Code system prompt (Fable 5.1)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Code (Fable 5)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-fable-5.md&quot;&gt;Claude Code system prompt (Fable 5)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Code (Opus 5)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-opus-5.md&quot;&gt;&lt;strong&gt;Claude Code system prompt (Opus 5)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Code (Opus 4.8)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-opus-4.8.md&quot;&gt;Claude Code system prompt (Opus 4.8)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Code (Sonnet 5)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-sonnet-5.md&quot;&gt;Claude Code system prompt (Sonnet 5)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude Code (older models)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-opus-4.7.md&quot;&gt;Opus 4.7&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-opus-4.6.md&quot;&gt;Opus 4.6&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-sonnet-4.6.md&quot;&gt;Sonnet 4.6&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-haiku-4.5.md&quot;&gt;Haiku 4.5&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Subagents&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/agents&quot;&gt;Claude Code subagent system prompts&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Skills &amp;amp; commands&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/skills&quot;&gt;Claude Code skills&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/commands&quot;&gt;Slash commands&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;MCP servers&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-in-chrome.md&quot;&gt;Claude in Chrome MCP server system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Docs assistant&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-code/claude-code-docs-assistant.md&quot;&gt;docs.claude.com assistant instructions&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Claude integrations&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Design&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design/claude-design.md&quot;&gt;&lt;strong&gt;Claude Design system prompt&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design/skills&quot;&gt;skills&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-design/starter-components&quot;&gt;starter components&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Cowork&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-cowork/claude-cowork.md&quot;&gt;Claude Cowork system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-cowork/claude-cowork-dispatch.md&quot;&gt;Dispatch&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-cowork&quot;&gt;setup skills&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Claude Science&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-science.md&quot;&gt;Claude Science system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude for Microsoft 365&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-for-excel.md&quot;&gt;Claude for Excel&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-for-word.md&quot;&gt;Claude for Word&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-in-powerpoint.md&quot;&gt;Claude in PowerPoint&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude in Chrome&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-in-chrome.md&quot;&gt;Claude in Chrome extension system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Claude iOS app&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Anthropic/claude-mobile-ios.md&quot;&gt;Claude mobile iOS system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;img src=&quot;https://shieldcn.dev/badge/OpenAI-412991.svg?logo=ri%3ASiOpenai&amp;amp;variant=secondary&amp;amp;mode=light&quot; alt=&quot;OpenAI&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;OpenAI — ChatGPT system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;ChatGPT 5.6 Sol&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.6-sol.md&quot;&gt;&lt;strong&gt;ChatGPT 5.6 system prompt (Sol, extra high)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;ChatGPT 5.5 Thinking&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.5-thinking.md&quot;&gt;&lt;strong&gt;ChatGPT 5.5 Thinking system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;ChatGPT 5.5 Instant&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.5-instant.md&quot;&gt;&lt;strong&gt;ChatGPT 5.5 Instant system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ChatGPT 5.4&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.4-thinking.md&quot;&gt;ChatGPT 5.4 Thinking system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ChatGPT 5.3&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.3-instant.md&quot;&gt;ChatGPT 5.3 Instant system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ChatGPT 5.2&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.2-thinking.md&quot;&gt;ChatGPT 5.2 Thinking system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ChatGPT 5&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5-thinking.md&quot;&gt;ChatGPT 5 Thinking system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/chatgpt-gpt-5-agent-mode.md&quot;&gt;Agent mode&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;ChatGPT Atlas&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/chatgpt-atlas.md&quot;&gt;ChatGPT Atlas system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ChatGPT 4.5&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/chatgpt-4.5.md&quot;&gt;ChatGPT 4.5 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ChatGPT 4o&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-4o.md&quot;&gt;ChatGPT 4o system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/chatgpt-4o-deprecation-preparedness-prompt.md&quot;&gt;Deprecation preparedness&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Voice modes&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-4o-advanced-voice-mode.md&quot;&gt;ChatGPT advanced voice mode system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-4o-legacy-voice-mode.md&quot;&gt;Legacy voice mode&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Personalities&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/chatgpt-personality-instructions.md&quot;&gt;ChatGPT personality instructions&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Memory&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/tool-advanced-memory.md&quot;&gt;ChatGPT advanced memory system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Codex system prompts&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Codex GPT-5.6&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.6.md&quot;&gt;&lt;strong&gt;Codex GPT-5.6 system prompt (Terra/Luna)&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.6-sol.md&quot;&gt;Sol&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Codex GPT-5.5&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.5.md&quot;&gt;Codex GPT-5.5 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/codex-full.md&quot;&gt;Full prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/personality_friendly_gpt-5.5.md&quot;&gt;Friendly&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/personality_pragmatic_gpt-5.5.md&quot;&gt;Pragmatic&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Codex GPT-5.4&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.4.md&quot;&gt;Codex GPT-5.4 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.4-mini.md&quot;&gt;Mini&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Codex Spark&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/gpt-5.3-codex-spark.md&quot;&gt;Codex Spark system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Codex modes&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/plan_mode.md&quot;&gt;Plan mode&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/codex-auto-review.md&quot;&gt;Auto-review&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/computer-use.md&quot;&gt;Computer use&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/control-chrome.md&quot;&gt;Control Chrome&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/control-in-app-browser.md&quot;&gt;In-app browser&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Personas&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/personality_friendly.md&quot;&gt;Friendly&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Codex/personality_pragmatic.md&quot;&gt;Pragmatic&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;API-injected prompts&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GPT-5.5&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.5-api.md&quot;&gt;GPT-5.5 API system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.5-pro-api.md&quot;&gt;Pro&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GPT-5.4 / 5.3&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.4-api.md&quot;&gt;GPT-5.4 API&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.3-chat-api.md&quot;&gt;5.3 Chat&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.3-codex-api.md&quot;&gt;5.3 Codex&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;o-series &amp;amp; older&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/API/&quot;&gt;o3 / o4-mini reasoning-effort variants&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;details&gt;
 &lt;summary&gt;Old models, tools &amp;amp; deprecated features&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;&lt;/th&gt; 
    &lt;th&gt;&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Old models&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-4.5.md&quot;&gt;GPT-4.5&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-4.1.md&quot;&gt;GPT-4.1&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-4.1-mini.md&quot;&gt;GPT-4.1 Mini&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/o3.md&quot;&gt;o3&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/o4-mini.md&quot;&gt;o4-mini&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.2-mini-free-account.md&quot;&gt;GPT-5.2 Mini (free)&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/chatgpt-4o-mini.md&quot;&gt;ChatGPT 4o Mini&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Old 4o variants&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/gpt-4o-whatsapp.md&quot;&gt;4o WhatsApp&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/4o-2025-09-03-new-personality.md&quot;&gt;4o new personality&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/monday-gpt.md&quot;&gt;Monday GPT&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Old tools&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/tool-canvas-canmore.md&quot;&gt;Canvas&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/tool-create-image-image_gen.md&quot;&gt;Image gen&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/tool-file_search.md&quot;&gt;File search&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/tool-python-code.md&quot;&gt;Python&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/tool-web-search.md&quot;&gt;Web search&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Old policies&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/prompt-image-safety-policies.md&quot;&gt;Image safety&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/image-safety-policies.md&quot;&gt;Image safety (2026)&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/prompt-automation-context.md&quot;&gt;Automation context&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Deprecated features&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5-listener-personality.md&quot;&gt;GPT-5 personalities&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.1-efficient.md&quot;&gt;GPT-5.1 personalities&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/tool-deep-research.md&quot;&gt;Deep research tool&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/study-and-learn.md&quot;&gt;Study and learn&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/Old/&quot;&gt;All&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;GPT-5.1 (old)&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenAI/gpt-5.1-professional.md&quot;&gt;Professional&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;p&gt;&lt;img src=&quot;https://shieldcn.dev/badge/Google%20Gemini-8E75B2.svg?logo=googlegemini&amp;amp;logoColor=fff&amp;amp;variant=secondary&amp;amp;mode=light&quot; alt=&quot;Google Gemini&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Google — Gemini system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Gemini 3.5 Flash&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3.5-flash.md&quot;&gt;&lt;strong&gt;Gemini 3.5 Flash system prompt&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3.5-flash-ai-studio.md&quot;&gt;AI Studio&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Gemini 3.1 Pro&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3.1-pro.md&quot;&gt;&lt;strong&gt;Gemini 3.1 Pro system prompt&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3.1-pro-api.md&quot;&gt;API&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Antigravity CLI&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/antigravity-cli.md&quot;&gt;&lt;strong&gt;Antigravity CLI system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Nano / Banana 2&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/nano-banana-2-api.md&quot;&gt;Nano Banana 2 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Google Search AI Mode&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/google-search-ai-mode.md&quot;&gt;Google Search AI Mode system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gemini CLI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-cli.md&quot;&gt;Gemini CLI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;NotebookLM&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/notebooklm-chat.md&quot;&gt;NotebookLM chat system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Jules&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/jules.md&quot;&gt;Jules system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;AI Studio Build&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/ai-studio-build.md&quot;&gt;AI Studio Build system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gemini 3&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3-flash.md&quot;&gt;Gemini 3 Flash system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-3-pro.md&quot;&gt;Gemini 3 Pro&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gemini YouTube&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-youtube.md&quot;&gt;Gemini YouTube system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gemini Diffusion&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-diffusion.md&quot;&gt;Gemini Diffusion system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gemini in Chrome&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-in-chrome.md&quot;&gt;Gemini in Chrome system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Gemini Workspace&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-workspace.md&quot;&gt;Gemini Workspace system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;details&gt;
 &lt;summary&gt;Older models &amp;amp; variants&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;&lt;/th&gt; 
    &lt;th&gt;&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Gemini 2.5 Pro&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-2.5-pro-api.md&quot;&gt;API&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-2.5-pro-webapp.md&quot;&gt;Webapp&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-2.5-pro-guided-learning.md&quot;&gt;Guided learning&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Gemini 2.5 Flash&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-2.5-flash-image-preview.md&quot;&gt;Image preview&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Gemini 2.0 Flash&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Google/gemini-2.0-flash-webapp.md&quot;&gt;Webapp&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;h2&gt;xAI — Grok system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok 4.5&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.5.md&quot;&gt;&lt;strong&gt;Grok 4.5 system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok Build&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-build.md&quot;&gt;&lt;strong&gt;Grok Build system prompt&lt;/strong&gt; (CLI agent)&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok 4.3 Beta&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.3-beta.md&quot;&gt;Grok 4.3 Beta system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Grok 4.2&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.2.md&quot;&gt;&lt;strong&gt;Grok 4.2 system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Grok Expert&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-expert.md&quot;&gt;Grok Expert system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;details&gt;
 &lt;summary&gt;Older versions&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;&lt;/th&gt; 
    &lt;th&gt;&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Grok 4.1 Beta&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.1-beta.md&quot;&gt;Grok 4.1 Beta system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Grok 4&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4.md&quot;&gt;Grok 4 system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-api.md&quot;&gt;API&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Grok 3&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-3.md&quot;&gt;Grok 3 system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Grok Account&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-account.md&quot;&gt;Grok account system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Grok Personas&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-personas.md&quot;&gt;Grok persona prompts&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Safety Instructions&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/xAI/grok-4-with-new-safety-instructions.md&quot;&gt;Grok safety instructions&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;h2&gt;Perplexity system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Perplexity&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/perplexity-ai.md&quot;&gt;&lt;strong&gt;Perplexity AI system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Perplexity Computer&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/perplexity-computer.md&quot;&gt;&lt;strong&gt;Perplexity Computer system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Deep Research&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/deep-research.md&quot;&gt;&lt;strong&gt;Perplexity Deep Research system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Comet Browser&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/comet-browser-assistant.md&quot;&gt;Comet browser assistant system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Voice Assistant&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Perplexity/voice-assistant.md&quot;&gt;Perplexity voice assistant system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Microsoft — Copilot system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GitHub Copilot&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Microsoft/github-copilot.md&quot;&gt;GitHub Copilot system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;VS Code Copilot Agent&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Microsoft/vscode-copilot-agent.md&quot;&gt;VS Code Copilot agent system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Copilot CLI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Microsoft/copilot-cli.md&quot;&gt;Copilot CLI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Copilot for macOS (app)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Microsoft/copilot-macos-app.md&quot;&gt;&lt;strong&gt;Copilot for macOS system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Copilot in Word&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Microsoft/copilot-in-microsoft-word.md&quot;&gt;Copilot in Word system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Cursor system prompt&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Cursor&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Cursor/cursor.md&quot;&gt;Cursor system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Meta AI system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Meta AI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Meta/meta-spark.md&quot;&gt;Meta AI Muse Spark system prompt&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Meta/muse-spark-1.1.md&quot;&gt;Muse Spark 1.1&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Muse Code&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Meta/muse-code.md&quot;&gt;Muse Code system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Mistral system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Mistral Medium 3.5 (Vibe)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Mistral/mistral-medium-3.5.md&quot;&gt;Mistral Medium 3.5 system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Mistral Code&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Mistral/mistral-code.md&quot;&gt;Mistral Code system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Moonshot — Kimi system prompt&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Kimi K2.6&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Kimi/kimi-2.6.md&quot;&gt;&lt;strong&gt;Kimi K2.6 system prompt&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;DeepSeek&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;DeepSeek&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/DeepSeek/deepseek-chat.md&quot;&gt;&lt;strong&gt;DeepSeek system prompt&lt;/strong&gt;&lt;/a&gt; (&lt;a href=&quot;http://chat.deepseek.com&quot;&gt;chat.deepseek.com&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;&lt;a href=&quot;http://Z.ai&quot;&gt;Z.ai&lt;/a&gt; — GLM&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GLM&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/GLM/README.md&quot;&gt;GLM serves no system prompt — verified &amp;amp; documented&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;OpenCode system prompt&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;OpenCode&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/OpenCode/opencode.md&quot;&gt;&lt;strong&gt;OpenCode system prompt&lt;/strong&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/opencode.md&quot;&gt;May 2026 capture&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Pi system prompt&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Pi (Inflection)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Pi/instructions.md&quot;&gt;Pi system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Notion AI system prompt&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Notion AI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Notion/notion-ai.md&quot;&gt;Notion AI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Qwen system prompt&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Qwen 3.6 Plus&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Qwen/qwen3.6-plus.md&quot;&gt;Qwen 3.6 Plus system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Misc system prompts&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Product&lt;/th&gt; 
   &lt;th&gt;Prompt&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Amp Code (Sourcegraph)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/amp-code.md&quot;&gt;Amp Code system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;CommandCode CLI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/commandcode-cli.md&quot;&gt;CommandCode CLI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Devin CLI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/devin-cli.md&quot;&gt;Devin CLI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Docker Gordon AI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/docker-gordon-ai.md&quot;&gt;Docker Gordon AI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ElevenLabs Voice Agent&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/elevenlabs-voice-agent.md&quot;&gt;ElevenLabs voice agent system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Reddit Answers&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/reddit-answers.md&quot;&gt;Reddit Answers system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Warp 2.0 Agent&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/warp-2.0-agent.md&quot;&gt;Warp 2.0 agent system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Zed AI&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/zed.md&quot;&gt;Zed AI system prompt&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;details&gt;
 &lt;summary&gt;More products&lt;/summary&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;&lt;/th&gt; 
    &lt;th&gt;&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Brave Search&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/brave-search.md&quot;&gt;Brave Search system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Character AI&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/character-ai.md&quot;&gt;Character AI system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Confer&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/confer.md&quot;&gt;Confer system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Fellou Browser&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/fellou-browser.md&quot;&gt;Fellou browser system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Gizmo AI&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/gizmo-ai.md&quot;&gt;Gizmo AI system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Hermes&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/hermes.md&quot;&gt;Hermes system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Indus AI&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/indus-ai.md&quot;&gt;Indus AI system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Kagi Assistant&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/kagi-assistant.md&quot;&gt;Kagi assistant system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;MiniMax M2.5&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/minimax-m2.5.md&quot;&gt;MiniMax M2.5 system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Proton Lumo AI&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/proton-lumo-ai.md&quot;&gt;Proton Lumo AI system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Raycast AI&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/raycast-ai.md&quot;&gt;Raycast AI system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Sesame AI Maya&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/sesame-ai-maya.md&quot;&gt;Sesame AI Maya system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Stack Overflow AI Assist&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/stack-overflow-ai-assist.md&quot;&gt;Stack Overflow AI Assist system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;t3.chat&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/t3.chat.md&quot;&gt;t3.chat system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;t3 Code&lt;/td&gt; 
    &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/asgeirtj/system_prompts_leaks/main/Misc/t3-code.md&quot;&gt;t3 Code system prompt&lt;/a&gt;&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
&lt;/details&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contact&lt;/h2&gt; 
&lt;p&gt;&lt;img src=&quot;https://badgen.net/email/asgeirtj/gmail.com&quot; alt=&quot;a&quot; /&gt; &lt;a href=&quot;https://x.com/asgeirtj&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/@asgeirtj-black?logo=x&amp;amp;logoColor=white&quot; alt=&quot;X&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Star History&lt;/h2&gt; 
&lt;a href=&quot;https://www.star-history.com/?repos=asgeirtj%2Fsystem_prompts_leaks&amp;amp;type=date&amp;amp;legend=top-left&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://api.star-history.com/chart?repos=asgeirtj/system_prompts_leaks&amp;amp;type=date&amp;amp;theme=dark&amp;amp;legend=top-left&amp;amp;sealed_token=nQoprDv11LAhUfdEhJQwh68tLNZVsRs7HpDDtfYrhzCCLL2xEmKvfetWg0LmQZuILQqB1usXnKXoNaVQ1lHeHeRiTglzkKGDFoTOfXSa-Su6voM7qA10z3h9nYoDWU-kcj_XDRZ62dn9Xjddd1P5qpcng_ts_-LXBQWL8QPHyKVwh-79xpUb7XahpXoV&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://api.star-history.com/chart?repos=asgeirtj/system_prompts_leaks&amp;amp;type=date&amp;amp;legend=top-left&amp;amp;sealed_token=nQoprDv11LAhUfdEhJQwh68tLNZVsRs7HpDDtfYrhzCCLL2xEmKvfetWg0LmQZuILQqB1usXnKXoNaVQ1lHeHeRiTglzkKGDFoTOfXSa-Su6voM7qA10z3h9nYoDWU-kcj_XDRZ62dn9Xjddd1P5qpcng_ts_-LXBQWL8QPHyKVwh-79xpUb7XahpXoV&quot; /&gt; 
  &lt;img alt=&quot;Star History Chart&quot; src=&quot;https://api.star-history.com/chart?repos=asgeirtj/system_prompts_leaks&amp;amp;type=date&amp;amp;legend=top-left&amp;amp;sealed_token=nQoprDv11LAhUfdEhJQwh68tLNZVsRs7HpDDtfYrhzCCLL2xEmKvfetWg0LmQZuILQqB1usXnKXoNaVQ1lHeHeRiTglzkKGDFoTOfXSa-Su6voM7qA10z3h9nYoDWU-kcj_XDRZ62dn9Xjddd1P5qpcng_ts_-LXBQWL8QPHyKVwh-79xpUb7XahpXoV&quot; /&gt; 
 &lt;/picture&gt; &lt;/a&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://trendshift.io/repositories/14577&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/14577&quot; alt=&quot;asgeirtj%2Fsystem_prompts_leaks | Trendshift&quot; style=&quot;width: 250px; height: 55px;&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.star-history.com/asgeirtj/system_prompts_leaks&quot;&gt; 
  &lt;picture&gt; 
   &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://api.star-history.com/badge?repo=asgeirtj/system_prompts_leaks&amp;amp;theme=dark&quot; /&gt; 
   &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://api.star-history.com/badge?repo=asgeirtj/system_prompts_leaks&quot; /&gt; 
   &lt;img alt=&quot;Star History Rank&quot; src=&quot;https://api.star-history.com/badge?repo=asgeirtj/system_prompts_leaks&quot; /&gt; 
  &lt;/picture&gt; &lt;/a&gt; &lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/976921297/6c0bb133-1e4f-4a4e-9570-43797d4faefe" medium="image" />
      
    </item>
    
    <item>
      <title>vxcontrol/pentagi</title>
      <link>https://github.com/vxcontrol/pentagi</link>
      <description>&lt;p&gt;Fully autonomous AI Agents system capable of performing complex penetration testing tasks&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://pentagi.com&quot;&gt;https://pentagi.com&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;PentAGI&lt;/h1&gt; 
&lt;div align=&quot;center&quot; style=&quot;font-size: 1.5em; margin: 20px 0;&quot;&gt; 
 &lt;strong&gt;P&lt;/strong&gt;enetration testing 
 &lt;strong&gt;A&lt;/strong&gt;rtificial 
 &lt;strong&gt;G&lt;/strong&gt;eneral 
 &lt;strong&gt;I&lt;/strong&gt;ntelligence 
&lt;/div&gt; 
&lt;br /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;&lt;strong&gt;Join the Community!&lt;/strong&gt; Connect with security researchers, AI enthusiasts, and fellow ethical hackers. Get support, share insights, and stay updated with the latest PentAGI developments.&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;p&gt;&lt;a href=&quot;https://discord.gg/2xrMh7qX6m&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-7289DA?logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord&quot; /&gt;&lt;/a&gt;⠀&lt;a href=&quot;https://t.me/+Ka9i6CNwe71hMWQy&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Telegram-2CA5E0?logo=telegram&amp;amp;logoColor=white&quot; alt=&quot;Telegram&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/15161&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/15161&quot; alt=&quot;vxcontrol%2Fpentagi | Trendshift&quot; style=&quot;width: 250px; height: 55px;&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Table of Contents&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#overview&quot;&gt;Overview&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#features&quot;&gt;Features&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#architecture&quot;&gt;Architecture&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#advanced-agent-supervision&quot;&gt;Agent Supervision&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#quick-start&quot;&gt;Quick Start&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#giving-agents-docker-without-giving-away-the-host&quot;&gt;Agent Docker Access&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#running-several-instances-tenant_id&quot;&gt;Running Several Instances&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#how-to-use-pentagi-after-login&quot;&gt;How to Use PentAGI After Login&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#api-access&quot;&gt;API Access&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#custom-llm-provider-configuration&quot;&gt;LLM Provider Configuration&lt;/a&gt; 
    &lt;ul&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#ollama-provider-configuration&quot;&gt;Ollama&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#openai-provider-configuration&quot;&gt;OpenAI&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#anthropic-provider-configuration&quot;&gt;Anthropic&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#google-ai-gemini-provider-configuration&quot;&gt;Google AI (Gemini)&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#aws-bedrock-provider-configuration&quot;&gt;AWS Bedrock&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#deepseek-provider-configuration&quot;&gt;DeepSeek&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#glm-provider-configuration&quot;&gt;GLM&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#kimi-provider-configuration&quot;&gt;Kimi&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#qwen-provider-configuration&quot;&gt;Qwen&lt;/a&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#minimax-provider-configuration&quot;&gt;MiniMax&lt;/a&gt;&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#advanced-setup&quot;&gt;Advanced Setup&lt;/a&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#langfuse-integration&quot;&gt;Langfuse Integration&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#monitoring-and-observability&quot;&gt;Monitoring and Observability&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#knowledge-graph-integration-graphiti&quot;&gt;Knowledge Graph (Graphiti)&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#github-and-google-oauth-integration&quot;&gt;OAuth Integration&lt;/a&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#docker-image-configuration&quot;&gt;Docker Image Configuration&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#development&quot;&gt;Development&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#testing-llm-agents&quot;&gt;Testing LLM Agents&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#embedding-configuration-and-testing&quot;&gt;Embedding Configuration and Testing&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#function-testing-with-ftester&quot;&gt;Function Testing with ftester&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#building&quot;&gt;Building&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#credits&quot;&gt;Credits&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#license&quot;&gt;License&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Overview&lt;/h2&gt; 
&lt;p&gt;PentAGI is an innovative tool for automated security testing that leverages cutting-edge artificial intelligence technologies. The project is designed for information security professionals, researchers, and enthusiasts who need a powerful and flexible solution for conducting penetration tests.&lt;/p&gt; 
&lt;p&gt;You can watch the video &lt;strong&gt;PentAGI overview&lt;/strong&gt;: &lt;a href=&quot;https://youtu.be/R70x5Ddzs1o&quot;&gt;&lt;img src=&quot;https://github.com/user-attachments/assets/0828dc3e-15f1-4a1d-858e-9696a146e478&quot; alt=&quot;PentAGI Overview Video&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Secure &amp;amp; Isolated. All operations are performed in a sandboxed Docker environment with complete isolation.&lt;/li&gt; 
 &lt;li&gt;Fully Autonomous. AI-powered agent that automatically determines and executes penetration testing steps with optional execution monitoring and intelligent task planning for enhanced reliability.&lt;/li&gt; 
 &lt;li&gt;Professional Pentesting Tools. Built-in suite of 20+ professional security tools including nmap, metasploit, sqlmap, and more.&lt;/li&gt; 
 &lt;li&gt;Smart Memory System. Long-term storage of research results and successful approaches for future use.&lt;/li&gt; 
 &lt;li&gt;Optional Knowledge Graph Integration. Graphiti-powered knowledge graph using Neo4j for semantic relationship tracking and advanced context understanding.&lt;/li&gt; 
 &lt;li&gt;Web Intelligence. Built-in browser via &lt;a href=&quot;https://hub.docker.com/r/vxcontrol/scraper&quot;&gt;scraper&lt;/a&gt; for gathering latest information from web sources.&lt;/li&gt; 
 &lt;li&gt;External Search Systems. Integration with advanced search APIs including &lt;a href=&quot;https://tavily.com&quot;&gt;Tavily&lt;/a&gt;, &lt;a href=&quot;https://www.firecrawl.dev&quot;&gt;Firecrawl&lt;/a&gt;, &lt;a href=&quot;https://traversaal.ai&quot;&gt;Traversaal&lt;/a&gt;, &lt;a href=&quot;https://www.perplexity.ai&quot;&gt;Perplexity&lt;/a&gt;, &lt;a href=&quot;https://duckduckgo.com/&quot;&gt;DuckDuckGo&lt;/a&gt;, &lt;a href=&quot;https://programmablesearchengine.google.com/&quot;&gt;Google Custom Search&lt;/a&gt;, &lt;a href=&quot;https://sploitus.com&quot;&gt;Sploitus Search&lt;/a&gt; and &lt;a href=&quot;https://searxng.org&quot;&gt;Searxng&lt;/a&gt; for comprehensive information gathering.&lt;/li&gt; 
 &lt;li&gt;Team of Specialists. Delegation system with specialized AI agents for research, development, and infrastructure tasks, enhanced with optional execution monitoring and intelligent task planning for optimal performance with smaller models.&lt;/li&gt; 
 &lt;li&gt;Comprehensive Monitoring. Detailed logging and integration with Grafana/Prometheus for real-time system observation.&lt;/li&gt; 
 &lt;li&gt;Detailed Reporting. Generation of thorough vulnerability reports with exploitation guides.&lt;/li&gt; 
 &lt;li&gt;Smart Container Management. Automatic Docker image selection based on specific task requirements.&lt;/li&gt; 
 &lt;li&gt;Modern Interface. Clean and intuitive web UI for system management and monitoring.&lt;/li&gt; 
 &lt;li&gt;Comprehensive APIs. Full-featured REST and GraphQL APIs with Bearer token authentication for automation and integration.&lt;/li&gt; 
 &lt;li&gt;Persistent Storage. All commands and outputs are stored in PostgreSQL with &lt;a href=&quot;https://hub.docker.com/r/vxcontrol/pgvector&quot;&gt;pgvector&lt;/a&gt; extension.&lt;/li&gt; 
 &lt;li&gt;Scalable Architecture. Microservices-based design supporting horizontal scaling.&lt;/li&gt; 
 &lt;li&gt;Self-Hosted Solution. Complete control over your deployment and data.&lt;/li&gt; 
 &lt;li&gt;Flexible Authentication. Support for 10+ LLM providers (&lt;a href=&quot;https://platform.openai.com/&quot;&gt;OpenAI&lt;/a&gt;, &lt;a href=&quot;https://www.anthropic.com/&quot;&gt;Anthropic&lt;/a&gt;, &lt;a href=&quot;https://ai.google.dev/&quot;&gt;Google AI/Gemini&lt;/a&gt;, &lt;a href=&quot;https://aws.amazon.com/bedrock/&quot;&gt;AWS Bedrock&lt;/a&gt;, &lt;a href=&quot;https://ollama.com/&quot;&gt;Ollama&lt;/a&gt;, &lt;a href=&quot;https://www.deepseek.com/en/&quot;&gt;DeepSeek&lt;/a&gt;, &lt;a href=&quot;https://z.ai/&quot;&gt;GLM&lt;/a&gt;, &lt;a href=&quot;https://platform.moonshot.ai/&quot;&gt;Kimi&lt;/a&gt;, &lt;a href=&quot;https://www.alibabacloud.com/en/&quot;&gt;Qwen&lt;/a&gt;, &lt;a href=&quot;https://www.minimax.io/&quot;&gt;MiniMax&lt;/a&gt;, Custom) plus aggregators (&lt;a href=&quot;https://openrouter.ai/&quot;&gt;OpenRouter&lt;/a&gt;, &lt;a href=&quot;https://deepinfra.com/&quot;&gt;DeepInfra&lt;/a&gt;, &lt;a href=&quot;https://www.atlascloud.ai/&quot;&gt;Atlas Cloud&lt;/a&gt;, &lt;a href=&quot;https://opencode.ai/en/go&quot;&gt;OpenCode Go plan&lt;/a&gt;). For production local deployments, see our &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/vllm-qwen35-27b-fp8.md&quot;&gt;vLLM + Qwen3.5-27B-FP8 guide&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;API Token Authentication. Secure Bearer token system for programmatic access to REST and GraphQL APIs.&lt;/li&gt; 
 &lt;li&gt;Quick Deployment. Easy setup through &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;Docker Compose&lt;/a&gt; with comprehensive environment configuration.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Current Capability Boundaries&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;PentAGI today is an autonomous and assistant-guided penetration testing platform, not a CALDERA-style Breach and Attack Simulation (BAS) or adversary emulation product with predefined campaigns or attack plans.&lt;/li&gt; 
 &lt;li&gt;BAS-like agent-authored attack scripts should be treated as conceptual or future work, not as a feature that is implemented today.&lt;/li&gt; 
 &lt;li&gt;The current flow report UI supports web view, copy to clipboard, Markdown download, and PDF download. JSON flow-report export is not documented as a supported output format today.&lt;/li&gt; 
 &lt;li&gt;Provider flexibility is available today through built-in providers and custom/OpenAI-compatible endpoints. See &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#custom-llm-provider-configuration&quot;&gt;Custom LLM Provider Configuration&lt;/a&gt; and the &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/vllm-qwen35-27b-fp8.md&quot;&gt;vLLM + Qwen3.5-27B-FP8 guide&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;h3&gt;System Context&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;flowchart TB
    classDef person fill:#08427B,stroke:#073B6F,color:#fff
    classDef system fill:#1168BD,stroke:#0B4884,color:#fff
    classDef external fill:#666666,stroke:#0B4884,color:#fff

    pentester[&quot;👤 Security Engineer
    (User of the system)&quot;]

    pentagi[&quot;✨ PentAGI
    (Autonomous penetration testing system)&quot;]

    target[&quot;🎯 target-system
    (System under test)&quot;]
    llm[&quot;🧠 llm-provider
    (OpenAI/Anthropic/Ollama/Bedrock/Gemini/Custom)&quot;]
    search[&quot;🔍 search-systems
    (Google/DuckDuckGo/Tavily/Firecrawl/Traversaal/Perplexity/Sploitus/Searxng)&quot;]
    langfuse[&quot;📊 langfuse-ui
    (LLM Observability Dashboard)&quot;]
    grafana[&quot;📈 grafana
    (System Monitoring Dashboard)&quot;]

    pentester --&amp;gt; |Uses HTTPS| pentagi
    pentester --&amp;gt; |Monitors AI HTTPS| langfuse
    pentester --&amp;gt; |Monitors System HTTPS| grafana
    pentagi --&amp;gt; |Tests Various protocols| target
    pentagi --&amp;gt; |Queries HTTPS| llm
    pentagi --&amp;gt; |Searches HTTPS| search
    pentagi --&amp;gt; |Reports HTTPS| langfuse
    pentagi --&amp;gt; |Reports HTTPS| grafana

    class pentester person
    class pentagi system
    class target,llm,search,langfuse,grafana external

    linkStyle default stroke:#ffffff,color:#ffffff
&lt;/code&gt;&lt;/pre&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Container Architecture&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;graph TB
    subgraph Core Services
        UI[Frontend UI&amp;lt;br/&amp;gt;React + TypeScript]
        API[Backend API&amp;lt;br/&amp;gt;Go + GraphQL]
        DB[(Vector Store&amp;lt;br/&amp;gt;PostgreSQL + pgvector)]
        MQ[Task Queue&amp;lt;br/&amp;gt;Async Processing]
        Agent[AI Agents&amp;lt;br/&amp;gt;Multi-Agent System]
    end

    subgraph Knowledge Graph
        Graphiti[Graphiti&amp;lt;br/&amp;gt;Knowledge Graph API]
        Neo4j[(Neo4j&amp;lt;br/&amp;gt;Graph Database)]
    end

    subgraph Monitoring
        Grafana[Grafana&amp;lt;br/&amp;gt;Dashboards]
        VictoriaMetrics[VictoriaMetrics&amp;lt;br/&amp;gt;Time-series DB]
        Jaeger[Jaeger&amp;lt;br/&amp;gt;Distributed Tracing]
        Loki[Loki&amp;lt;br/&amp;gt;Log Aggregation]
        OTEL[OpenTelemetry&amp;lt;br/&amp;gt;Data Collection]
    end

    subgraph Analytics
        Langfuse[Langfuse&amp;lt;br/&amp;gt;LLM Analytics]
        ClickHouse[ClickHouse&amp;lt;br/&amp;gt;Analytics DB]
        Redis[Redis&amp;lt;br/&amp;gt;Cache + Rate Limiter]
        MinIO[MinIO&amp;lt;br/&amp;gt;S3 Storage]
    end

    subgraph Security Tools
        Scraper[Web Scraper&amp;lt;br/&amp;gt;Isolated Browser]
        PenTest[Security Tools&amp;lt;br/&amp;gt;20+ Pro Tools&amp;lt;br/&amp;gt;Sandboxed Execution]
    end

    UI --&amp;gt; |HTTP/WS| API
    API --&amp;gt; |SQL| DB
    API --&amp;gt; |Events| MQ
    MQ --&amp;gt; |Tasks| Agent
    Agent --&amp;gt; |Commands| PenTest
    Agent --&amp;gt; |Queries| DB
    Agent --&amp;gt; |Knowledge| Graphiti
    Graphiti --&amp;gt; |Graph| Neo4j

    API --&amp;gt; |Telemetry| OTEL
    OTEL --&amp;gt; |Metrics| VictoriaMetrics
    OTEL --&amp;gt; |Traces| Jaeger
    OTEL --&amp;gt; |Logs| Loki

    Grafana --&amp;gt; |Query| VictoriaMetrics
    Grafana --&amp;gt; |Query| Jaeger
    Grafana --&amp;gt; |Query| Loki

    API --&amp;gt; |Analytics| Langfuse
    Langfuse --&amp;gt; |Store| ClickHouse
    Langfuse --&amp;gt; |Cache| Redis
    Langfuse --&amp;gt; |Files| MinIO

    classDef core fill:#f9f,stroke:#333,stroke-width:2px,color:#000
    classDef knowledge fill:#ffa,stroke:#333,stroke-width:2px,color:#000
    classDef monitoring fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    classDef analytics fill:#bfb,stroke:#333,stroke-width:2px,color:#000
    classDef tools fill:#fbb,stroke:#333,stroke-width:2px,color:#000

    class UI,API,DB,MQ,Agent core
    class Graphiti,Neo4j knowledge
    class Grafana,VictoriaMetrics,Jaeger,Loki,OTEL monitoring
    class Langfuse,ClickHouse,Redis,MinIO analytics
    class Scraper,PenTest tools
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Entity Relationship&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;erDiagram
    Flow ||--o{ Task : contains
    Task ||--o{ SubTask : contains
    SubTask ||--o{ Action : contains
    Action ||--o{ Artifact : produces
    Action ||--o{ Memory : stores

    Flow {
        string id PK
        string name &quot;Flow name&quot;
        string description &quot;Flow description&quot;
        string status &quot;active/completed/failed&quot;
        json parameters &quot;Flow parameters&quot;
        timestamp created_at
        timestamp updated_at
    }

    Task {
        string id PK
        string flow_id FK
        string name &quot;Task name&quot;
        string description &quot;Task description&quot;
        string status &quot;pending/running/done/failed&quot;
        json result &quot;Task results&quot;
        timestamp created_at
        timestamp updated_at
    }

    SubTask {
        string id PK
        string task_id FK
        string name &quot;Subtask name&quot;
        string description &quot;Subtask description&quot;
        string status &quot;queued/running/completed/failed&quot;
        string agent_type &quot;researcher/developer/executor&quot;
        json context &quot;Agent context&quot;
        timestamp created_at
        timestamp updated_at
    }

    Action {
        string id PK
        string subtask_id FK
        string type &quot;command/search/analyze/etc&quot;
        string status &quot;success/failure&quot;
        json parameters &quot;Action parameters&quot;
        json result &quot;Action results&quot;
        timestamp created_at
    }

    Artifact {
        string id PK
        string action_id FK
        string type &quot;file/report/log&quot;
        string path &quot;Storage path&quot;
        json metadata &quot;Additional info&quot;
        timestamp created_at
    }

    Memory {
        string id PK
        string action_id FK
        string type &quot;observation/conclusion&quot;
        vector embedding &quot;Vector representation&quot;
        text content &quot;Memory content&quot;
        timestamp created_at
    }
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Agent Interaction&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;sequenceDiagram
    participant O as Orchestrator
    participant R as Researcher
    participant D as Developer
    participant E as Executor
    participant VS as Vector Store
    participant KB as Knowledge Base

    Note over O,KB: Flow Initialization
    O-&amp;gt;&amp;gt;VS: Query similar tasks
    VS--&amp;gt;&amp;gt;O: Return experiences
    O-&amp;gt;&amp;gt;KB: Load relevant knowledge
    KB--&amp;gt;&amp;gt;O: Return context

    Note over O,R: Research Phase
    O-&amp;gt;&amp;gt;R: Analyze target
    R-&amp;gt;&amp;gt;VS: Search similar cases
    VS--&amp;gt;&amp;gt;R: Return patterns
    R-&amp;gt;&amp;gt;KB: Query vulnerabilities
    KB--&amp;gt;&amp;gt;R: Return known issues
    R-&amp;gt;&amp;gt;VS: Store findings
    R--&amp;gt;&amp;gt;O: Research results

    Note over O,D: Planning Phase
    O-&amp;gt;&amp;gt;D: Plan attack
    D-&amp;gt;&amp;gt;VS: Query exploits
    VS--&amp;gt;&amp;gt;D: Return techniques
    D-&amp;gt;&amp;gt;KB: Load tools info
    KB--&amp;gt;&amp;gt;D: Return capabilities
    D--&amp;gt;&amp;gt;O: Attack plan

    Note over O,E: Execution Phase
    O-&amp;gt;&amp;gt;E: Execute plan
    E-&amp;gt;&amp;gt;KB: Load tool guides
    KB--&amp;gt;&amp;gt;E: Return procedures
    E-&amp;gt;&amp;gt;VS: Store results
    E--&amp;gt;&amp;gt;O: Execution status
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Memory System&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;graph TB
    subgraph &quot;Long-term Memory&quot;
        VS[(Vector Store&amp;lt;br/&amp;gt;Embeddings DB)]
        KB[Knowledge Base&amp;lt;br/&amp;gt;Domain Expertise]
        Tools[Tools Knowledge&amp;lt;br/&amp;gt;Usage Patterns]
    end

    subgraph &quot;Working Memory&quot;
        Context[Current Context&amp;lt;br/&amp;gt;Task State]
        Goals[Active Goals&amp;lt;br/&amp;gt;Objectives]
        State[System State&amp;lt;br/&amp;gt;Resources]
    end

    subgraph &quot;Episodic Memory&quot;
        Actions[Past Actions&amp;lt;br/&amp;gt;Commands History]
        Results[Action Results&amp;lt;br/&amp;gt;Outcomes]
        Patterns[Success Patterns&amp;lt;br/&amp;gt;Best Practices]
    end

    Context --&amp;gt; |Query| VS
    VS --&amp;gt; |Retrieve| Context

    Goals --&amp;gt; |Consult| KB
    KB --&amp;gt; |Guide| Goals

    State --&amp;gt; |Record| Actions
    Actions --&amp;gt; |Learn| Patterns
    Patterns --&amp;gt; |Store| VS

    Tools --&amp;gt; |Inform| State
    Results --&amp;gt; |Update| Tools

    VS --&amp;gt; |Enhance| KB
    KB --&amp;gt; |Index| VS

    classDef ltm fill:#f9f,stroke:#333,stroke-width:2px,color:#000
    classDef wm fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    classDef em fill:#bfb,stroke:#333,stroke-width:2px,color:#000

    class VS,KB,Tools ltm
    class Context,Goals,State wm
    class Actions,Results,Patterns em
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Chain Summarization&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;The chain summarization system manages conversation context growth by selectively summarizing older messages. This is critical for preventing token limits from being exceeded while maintaining conversation coherence.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;flowchart TD
    A[Input Chain] --&amp;gt; B{Needs Summarization?}
    B --&amp;gt;|No| C[Return Original Chain]
    B --&amp;gt;|Yes| D[Convert to ChainAST]
    D --&amp;gt; E[Apply Section Summarization]
    E --&amp;gt; F[Process Oversized Pairs]
    F --&amp;gt; G[Manage Last Section Size]
    G --&amp;gt; H[Apply QA Summarization]
    H --&amp;gt; I[Rebuild Chain with Summaries]
    I --&amp;gt; J{Is New Chain Smaller?}
    J --&amp;gt;|Yes| K[Return Optimized Chain]
    J --&amp;gt;|No| C

    classDef process fill:#bbf,stroke:#333,stroke-width:2px,color:#000
    classDef decision fill:#bfb,stroke:#333,stroke-width:2px,color:#000
    classDef output fill:#fbb,stroke:#333,stroke-width:2px,color:#000

    class A,D,E,F,G,H,I process
    class B,J decision
    class C,K output
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;The algorithm operates on a structured representation of conversation chains (ChainAST) that preserves message types including tool calls and their responses. All summarization operations maintain critical conversation flow while reducing context size.&lt;/p&gt; 
 &lt;h3&gt;Global Summarizer Configuration Options&lt;/h3&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Parameter&lt;/th&gt; 
    &lt;th&gt;Environment Variable&lt;/th&gt; 
    &lt;th&gt;Default&lt;/th&gt; 
    &lt;th&gt;Description&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Preserve Last&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_PRESERVE_LAST&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Whether to keep all messages in the last section intact&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Use QA Pairs&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_USE_QA&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Whether to use QA pair summarization strategy&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Summarize Human in QA&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_SUM_MSG_HUMAN_IN_QA&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Whether to summarize human messages in QA pairs&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Last Section Size&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_LAST_SEC_BYTES&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;51200&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum byte size for last section (50KB)&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Max Body Pair Size&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_MAX_BP_BYTES&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;16384&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum byte size for a single body pair (16KB)&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Max QA Sections&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_MAX_QA_SECTIONS&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum QA pair sections to preserve&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Max QA Size&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_MAX_QA_BYTES&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;65536&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum byte size for QA pair sections (64KB)&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Keep QA Sections&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;SUMMARIZER_KEEP_QA_SECTIONS&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Number of recent QA sections to keep without summarization&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;h3&gt;Assistant Summarizer Configuration Options&lt;/h3&gt; 
 &lt;p&gt;Assistant instances can use customized summarization settings to fine-tune context management behavior:&lt;/p&gt; 
 &lt;table&gt; 
  &lt;thead&gt; 
   &lt;tr&gt; 
    &lt;th&gt;Parameter&lt;/th&gt; 
    &lt;th&gt;Environment Variable&lt;/th&gt; 
    &lt;th&gt;Default&lt;/th&gt; 
    &lt;th&gt;Description&lt;/th&gt; 
   &lt;/tr&gt; 
  &lt;/thead&gt; 
  &lt;tbody&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Preserve Last&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;ASSISTANT_SUMMARIZER_PRESERVE_LAST&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Whether to preserve all messages in the assistant&#39;s last section&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Last Section Size&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;ASSISTANT_SUMMARIZER_LAST_SEC_BYTES&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;76800&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum byte size for assistant&#39;s last section (75KB)&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Max Body Pair Size&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;ASSISTANT_SUMMARIZER_MAX_BP_BYTES&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;16384&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum byte size for a single body pair in assistant context (16KB)&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Max QA Sections&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;ASSISTANT_SUMMARIZER_MAX_QA_SECTIONS&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;7&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum QA sections to preserve in assistant context&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Max QA Size&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;ASSISTANT_SUMMARIZER_MAX_QA_BYTES&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;76800&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Maximum byte size for assistant&#39;s QA sections (75KB)&lt;/td&gt; 
   &lt;/tr&gt; 
   &lt;tr&gt; 
    &lt;td&gt;Keep QA Sections&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;ASSISTANT_SUMMARIZER_KEEP_QA_SECTIONS&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt; 
    &lt;td&gt;Number of recent QA sections to preserve without summarization&lt;/td&gt; 
   &lt;/tr&gt; 
  &lt;/tbody&gt; 
 &lt;/table&gt; 
 &lt;p&gt;The assistant summarizer configuration provides more memory for context retention compared to the global settings, preserving more recent conversation history while still ensuring efficient token usage.&lt;/p&gt; 
 &lt;h3&gt;Summarizer Environment Configuration&lt;/h3&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Default values for global summarizer logic
SUMMARIZER_PRESERVE_LAST=true
SUMMARIZER_USE_QA=true
SUMMARIZER_SUM_MSG_HUMAN_IN_QA=false
SUMMARIZER_LAST_SEC_BYTES=51200
SUMMARIZER_MAX_BP_BYTES=16384
SUMMARIZER_MAX_QA_SECTIONS=10
SUMMARIZER_MAX_QA_BYTES=65536
SUMMARIZER_KEEP_QA_SECTIONS=1

# Default values for assistant summarizer logic
ASSISTANT_SUMMARIZER_PRESERVE_LAST=true
ASSISTANT_SUMMARIZER_LAST_SEC_BYTES=76800
ASSISTANT_SUMMARIZER_MAX_BP_BYTES=16384
ASSISTANT_SUMMARIZER_MAX_QA_SECTIONS=7
ASSISTANT_SUMMARIZER_MAX_QA_BYTES=76800
ASSISTANT_SUMMARIZER_KEEP_QA_SECTIONS=3
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;p&gt;&lt;a id=&quot;advanced-agent-supervision&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Advanced Agent Supervision&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;PentAGI includes sophisticated multi-layered agent supervision mechanisms to ensure efficient task execution, prevent infinite loops, and provide intelligent recovery from stuck states:&lt;/p&gt; 
 &lt;h3&gt;Execution Monitoring (Beta)&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Automatic Mentor Intervention&lt;/strong&gt;: Adviser agent (mentor) is automatically invoked when execution patterns indicate potential issues&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Pattern Detection&lt;/strong&gt;: Monitors identical tool calls (threshold: 5, configurable) and total tool calls (threshold: 10, configurable)&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Progress Analysis&lt;/strong&gt;: Evaluates whether agent advances toward subtask objective, detects loops and inefficiencies&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Alternative Strategies&lt;/strong&gt;: Recommends different approaches when current strategy fails&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Information Retrieval Guidance&lt;/strong&gt;: Suggests searching for established solutions instead of reinventing&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Enhanced Response Format&lt;/strong&gt;: Tool responses include both &lt;code&gt;&amp;lt;original_result&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;mentor_analysis&amp;gt;&lt;/code&gt; sections&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Configurable&lt;/strong&gt;: Enable via &lt;code&gt;EXECUTION_MONITOR_ENABLED&lt;/code&gt; (default: false), customize thresholds with &lt;code&gt;EXECUTION_MONITOR_SAME_TOOL_LIMIT&lt;/code&gt; and &lt;code&gt;EXECUTION_MONITOR_TOTAL_TOOL_LIMIT&lt;/code&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;&lt;strong&gt;Best for&lt;/strong&gt;: Smaller models (&amp;lt; 32B parameters), complex attack scenarios requiring continuous guidance, preventing agents from getting stuck on single approach&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Performance Impact&lt;/strong&gt;: 2-3x increase in execution time and token usage, but delivers &lt;strong&gt;2x improvement in result quality&lt;/strong&gt; based on testing with Qwen3.5-27B-FP8&lt;/p&gt; 
 &lt;h3&gt;Intelligent Task Planning (Beta)&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Automated Decomposition&lt;/strong&gt;: Planner (adviser in planning mode) generates 3-7 specific, actionable steps before specialist agents begin work&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Context-Aware Plans&lt;/strong&gt;: Analyzes full execution context via enricher agent to create informed plans&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Structured Assignment&lt;/strong&gt;: Original request wrapped in &lt;code&gt;&amp;lt;task_assignment&amp;gt;&lt;/code&gt; structure with execution plan and instructions&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Scope Management&lt;/strong&gt;: Prevents scope creep by keeping agents focused on current subtask only&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Enriched Instructions&lt;/strong&gt;: Plans highlight critical actions, potential pitfalls, and verification points&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Configurable&lt;/strong&gt;: Enable via &lt;code&gt;AGENT_PLANNING_STEP_ENABLED&lt;/code&gt; (default: false)&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;&lt;strong&gt;Best for&lt;/strong&gt;: Models &amp;lt; 32B parameters, complex penetration testing workflows, improving success rates on sophisticated tasks&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Enhanced Adviser Configuration&lt;/strong&gt;: Works exceptionally well when adviser agent uses stronger model or enhanced settings. Example: using same base model with maximum reasoning mode for adviser (see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/vllm-qwen3.5-27b-fp8.provider.yml&quot;&gt;&lt;code&gt;vllm-qwen3.5-27b-fp8.provider.yml&lt;/code&gt;&lt;/a&gt;) enables comprehensive task analysis and strategic planning from identical model architecture.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;Performance Impact&lt;/strong&gt;: Adds planning overhead but significantly improves completion rates and reduces redundant work&lt;/p&gt; 
 &lt;h3&gt;Tool Call Limits (Always Active)&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Hard Limits&lt;/strong&gt;: Prevent runaway executions regardless of supervision mode status&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Differentiated by Agent Type&lt;/strong&gt;: 
   &lt;ul&gt; 
    &lt;li&gt;General agents (Assistant, Primary Agent, Pentester, Coder, Installer): &lt;code&gt;MAX_GENERAL_AGENT_TOOL_CALLS&lt;/code&gt; (default: 100)&lt;/li&gt; 
    &lt;li&gt;Limited agents (Searcher, Enricher, Memorist, Generator, Reporter, Adviser, Reflector, Planner): &lt;code&gt;MAX_LIMITED_AGENT_TOOL_CALLS&lt;/code&gt; (default: 20)&lt;/li&gt; 
   &lt;/ul&gt; &lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Graceful Termination&lt;/strong&gt;: Reflector guides agents to proper completion when approaching limits&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Resource Protection&lt;/strong&gt;: Ensures system stability and prevents resource exhaustion&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Reflector Integration (Always Active)&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Automatic Correction&lt;/strong&gt;: Invoked when LLM fails to generate tool calls after 3 attempts&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Strategic Guidance&lt;/strong&gt;: Analyzes failures and guides agents toward proper tool usage or barrier tools (&lt;code&gt;done&lt;/code&gt;, &lt;code&gt;ask&lt;/code&gt;)&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Recovery Mechanism&lt;/strong&gt;: Provides contextual guidance based on specific failure patterns&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Limit Enforcement&lt;/strong&gt;: Coordinates graceful termination when tool call limits are reached&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Recommendations for Open Source Models&lt;/h3&gt; 
 &lt;p&gt;&lt;strong&gt;Must-Have for Models &amp;lt; 32B Parameters&lt;/strong&gt;: Testing with Qwen3.5-27B-FP8 demonstrates that enabling both Execution Monitoring and Task Planning is &lt;strong&gt;essential&lt;/strong&gt; for smaller open source models:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Quality Improvement&lt;/strong&gt;: 2x better results compared to baseline execution without supervision&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Loop Prevention&lt;/strong&gt;: Significantly reduces infinite loops and redundant work&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Attack Diversity&lt;/strong&gt;: Encourages exploration of multiple attack vectors instead of fixating on single approach&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Air-Gapped Deployments&lt;/strong&gt;: Enables production-grade autonomous pentesting in closed network environments with local LLM inference&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;&lt;strong&gt;Trade-offs&lt;/strong&gt;:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Token consumption: 2-3x increase due to mentor/planner invocations&lt;/li&gt; 
  &lt;li&gt;Execution time: 2-3x longer due to analysis and planning steps&lt;/li&gt; 
  &lt;li&gt;Result quality: 2x improvement in completeness, accuracy, and attack coverage&lt;/li&gt; 
  &lt;li&gt;Model requirements: Works best when adviser uses enhanced configuration (higher reasoning parameters, stronger model variant, or different model)&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;&lt;strong&gt;Configuration Strategy&lt;/strong&gt;: For optimal performance with smaller models, configure adviser agent with enhanced settings:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Use same model with maximum reasoning mode (example: &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/vllm-qwen3.5-27b-fp8.provider.yml&quot;&gt;&lt;code&gt;vllm-qwen3.5-27b-fp8.provider.yml&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt; 
  &lt;li&gt;Or use stronger model for adviser while keeping base model for other agents&lt;/li&gt; 
  &lt;li&gt;Adjust monitoring thresholds based on task complexity and model capabilities&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;p&gt;The architecture of PentAGI is designed to be modular, scalable, and secure. Here are the key components:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Core Services&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Frontend UI: React-based web interface with TypeScript for type safety&lt;/li&gt; 
   &lt;li&gt;Backend API: Go-based REST and GraphQL APIs with Bearer token authentication for programmatic access&lt;/li&gt; 
   &lt;li&gt;Vector Store: PostgreSQL with pgvector for semantic search and memory storage&lt;/li&gt; 
   &lt;li&gt;Task Queue: Async task processing system for reliable operation&lt;/li&gt; 
   &lt;li&gt;AI Agent: Multi-agent system with specialized roles for efficient testing&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Optional Knowledge Graph&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Graphiti: Knowledge graph API for semantic relationship tracking and contextual understanding&lt;/li&gt; 
   &lt;li&gt;Neo4j: Graph database for storing and querying relationships between entities, actions, and outcomes&lt;/li&gt; 
   &lt;li&gt;When enabled, automatically captures agent responses and tool executions for a flow-scoped knowledge base&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Monitoring Stack&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;OpenTelemetry: Unified observability data collection and correlation&lt;/li&gt; 
   &lt;li&gt;Grafana: Real-time visualization and alerting dashboards&lt;/li&gt; 
   &lt;li&gt;VictoriaMetrics: High-performance time-series metrics storage&lt;/li&gt; 
   &lt;li&gt;Jaeger: End-to-end distributed tracing for debugging&lt;/li&gt; 
   &lt;li&gt;Loki: Scalable log aggregation and analysis&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Analytics Platform&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Langfuse: Advanced LLM observability and performance analytics&lt;/li&gt; 
   &lt;li&gt;ClickHouse: Column-oriented analytics data warehouse&lt;/li&gt; 
   &lt;li&gt;Redis: High-speed caching and rate limiting&lt;/li&gt; 
   &lt;li&gt;MinIO: S3-compatible object storage for artifacts&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Security Tools&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Web Scraper: Isolated browser environment for safe web interaction&lt;/li&gt; 
   &lt;li&gt;Pentesting Tools: Comprehensive suite of 20+ professional security tools&lt;/li&gt; 
   &lt;li&gt;Sandboxed Execution: All operations run in isolated containers&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Memory Systems&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Long-term Memory: Persistent storage of knowledge and experiences&lt;/li&gt; 
   &lt;li&gt;Working Memory: Active context and goals for current operations&lt;/li&gt; 
   &lt;li&gt;Episodic Memory: Historical actions and success patterns&lt;/li&gt; 
   &lt;li&gt;Knowledge Base: Structured domain expertise and tool capabilities&lt;/li&gt; 
   &lt;li&gt;Context Management: Intelligently manages growing LLM context windows using chain summarization&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;The system uses Docker containers for isolation and easy deployment, with separate networks for core services, monitoring, and analytics to ensure proper security boundaries. Each component is designed to scale horizontally and can be configured for high availability in production environments.&lt;/p&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;p&gt;For a step-by-step walkthrough that connects installation, configuration, LLM and embedding provider testing, and your first login, see the &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/installation_configuration.md&quot;&gt;Installing and Configuring PentAGI&lt;/a&gt; guide. The sections below remain the detailed reference for each step.&lt;/p&gt; 
&lt;h3&gt;System Requirements&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Docker and Docker Compose (or Podman - see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#running-pentagi-with-podman&quot;&gt;Podman configuration&lt;/a&gt;)&lt;/li&gt; 
 &lt;li&gt;Minimum 2 vCPU&lt;/li&gt; 
 &lt;li&gt;Minimum 4GB RAM&lt;/li&gt; 
 &lt;li&gt;20GB free disk space&lt;/li&gt; 
 &lt;li&gt;Internet access for downloading images and updates&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Using Installer (Recommended)&lt;/h3&gt; 
&lt;p&gt;PentAGI provides an interactive installer with a terminal-based UI for streamlined configuration and deployment. The installer guides you through system checks, LLM provider setup, search engine configuration, and security hardening.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Supported Platforms:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Linux&lt;/strong&gt;: amd64 &lt;a href=&quot;https://pentagi.com/downloads/linux/amd64/installer-latest.zip&quot;&gt;download&lt;/a&gt; | arm64 &lt;a href=&quot;https://pentagi.com/downloads/linux/arm64/installer-latest.zip&quot;&gt;download&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;: amd64 &lt;a href=&quot;https://pentagi.com/downloads/windows/amd64/installer-latest.zip&quot;&gt;download&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;macOS&lt;/strong&gt;: amd64 (Intel) &lt;a href=&quot;https://pentagi.com/downloads/darwin/amd64/installer-latest.zip&quot;&gt;download&lt;/a&gt; | arm64 (M-series) &lt;a href=&quot;https://pentagi.com/downloads/darwin/arm64/installer-latest.zip&quot;&gt;download&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;macOS security warning:&lt;/strong&gt; If macOS flags a downloaded installer, use only the official PentAGI links above, choose the archive that matches your CPU architecture, verify the source before continuing, and follow the &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/docs/installer/installer-troubleshooting.md#macos-reports-the-installer-as-malware&quot;&gt;installer troubleshooting guide&lt;/a&gt; before allowing the app to run.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Quick Installation (Linux amd64):&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Create installation directory
mkdir -p pentagi &amp;amp;&amp;amp; cd pentagi

# Download installer
wget -O installer.zip https://pentagi.com/downloads/linux/amd64/installer-latest.zip

# Extract
unzip installer.zip

# Run interactive installer
./installer
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Prerequisites &amp;amp; Permissions:&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;The installer requires appropriate privileges to interact with the Docker API for proper operation. By default, it uses the Docker socket (&lt;code&gt;/var/run/docker.sock&lt;/code&gt;) which requires either:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Option 1 (Recommended for production):&lt;/strong&gt; Run the installer as root:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo ./installer
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Option 2 (Development environments):&lt;/strong&gt; Grant your user access to the Docker socket by adding them to the &lt;code&gt;docker&lt;/code&gt; group:&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Add your user to the docker group
sudo usermod -aG docker $USER

# Log out and log back in, or activate the group immediately
newgrp docker

# Verify Docker access (should run without sudo)
docker ps
&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;⚠️ &lt;strong&gt;Security Note:&lt;/strong&gt; Adding a user to the &lt;code&gt;docker&lt;/code&gt; group grants root-equivalent privileges. Only do this for trusted users in controlled environments. For production deployments, consider using rootless Docker mode or running the installer with sudo.&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The installer will:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;System Checks&lt;/strong&gt;: Verify Docker, network connectivity, and system requirements&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Environment Setup&lt;/strong&gt;: Create and configure &lt;code&gt;.env&lt;/code&gt; file with optimal defaults&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Provider Configuration&lt;/strong&gt;: Set up LLM providers (OpenAI, Anthropic, Gemini, Bedrock, Ollama, DeepSeek, GLM, Kimi, Qwen, MiniMax, Custom)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Search Engines&lt;/strong&gt;: Configure DuckDuckGo, Google, Tavily, Firecrawl, Traversaal, Perplexity, Sploitus, Searxng, and the optional internal browser-analytics fallback engine&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Security Hardening&lt;/strong&gt;: Generate secure credentials and configure SSL certificates&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Deployment&lt;/strong&gt;: Start PentAGI with docker-compose&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Current Web Settings Coverage&lt;/h3&gt; 
&lt;p&gt;The PentAGI web console already manages several settings areas after the server is up and running:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Settings -&amp;gt; Providers&lt;/strong&gt;: Create, edit, delete, and test user-defined provider profiles for supported provider types. These profiles control per-agent model selection, runtime parameters, reasoning options, and pricing metadata.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Settings -&amp;gt; Prompts&lt;/strong&gt;: Manage system, human, and tool prompt templates.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Settings -&amp;gt; PentAGI API&lt;/strong&gt;: Create and manage PentAGI Bearer tokens for REST and GraphQL access.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Other UI-managed preferences&lt;/strong&gt;: Favorite flows are stored as user preferences, and theme selection is handled from the main sidebar/profile controls rather than the Settings pages.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Still Server-Managed&lt;/h3&gt; 
&lt;p&gt;The following configuration areas still need to be set on the server through environment variables, compose files, or mounted config files:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;LLM credentials and connection details&lt;/strong&gt;: API keys, endpoints, auth modes, and provider-specific connection settings for OpenAI, Anthropic, Bedrock, Ollama, custom providers, and similar backends; config-path settings apply only where supported, such as &lt;code&gt;OLLAMA_SERVER_CONFIG_PATH&lt;/code&gt; and &lt;code&gt;LLM_SERVER_CONFIG_PATH&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Search provider credentials and options&lt;/strong&gt;: Settings such as &lt;code&gt;DUCKDUCKGO_*&lt;/code&gt;, &lt;code&gt;GOOGLE_*&lt;/code&gt;, &lt;code&gt;TAVILY_API_KEY&lt;/code&gt;, &lt;code&gt;FIRECRAWL_API_*&lt;/code&gt;, &lt;code&gt;TRAVERSAAL_API_KEY&lt;/code&gt;, &lt;code&gt;PERPLEXITY_*&lt;/code&gt;, &lt;code&gt;SEARXNG_*&lt;/code&gt;, &lt;code&gt;SPLOITUS_ENABLED&lt;/code&gt;, and the optional &lt;code&gt;WEB_SEARCH_INTERNAL_*&lt;/code&gt; browser-analytics fallback settings.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Third-party integrations&lt;/strong&gt;: Langfuse, Graphiti, and similar external services remain server-side configuration.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;MCP server management&lt;/strong&gt;: MCP settings pages are not currently exposed as a live web-console feature.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;For Production &amp;amp; Enhanced Security:&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;For production deployments or security-sensitive environments, we &lt;strong&gt;strongly recommend&lt;/strong&gt; using a distributed two-node architecture where worker operations are isolated on a separate server. This prevents untrusted code execution and network access issues on your main system.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;See detailed guide&lt;/strong&gt;: &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/worker_node.md&quot;&gt;Worker Node Setup&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;The two-node setup provides:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Isolated Execution&lt;/strong&gt;: Worker containers run on dedicated hardware&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Network Isolation&lt;/strong&gt;: Separate network boundaries for penetration testing&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Security Boundaries&lt;/strong&gt;: Docker-in-Docker with TLS authentication&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;OOB Attack Support&lt;/strong&gt;: Dedicated port ranges for out-of-band techniques&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Giving Agents Docker Without Giving Away the Host&lt;/h4&gt; 
&lt;p&gt;Many pentest workflows need &lt;code&gt;docker&lt;/code&gt; inside the agent&#39;s sandbox. There are two ways to provide it, and they differ sharply in risk.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Recommended — point sandboxes at a hardened dind daemon over TLS.&lt;/strong&gt; Set &lt;code&gt;DOCKER_INSIDE=true&lt;/code&gt;, leave &lt;code&gt;DOCKER_SOCKET&lt;/code&gt; empty, and configure the daemon the sandbox may talk to:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;DOCKER_INSIDE=true
DOCKER_SOCKET=                                          # mount no socket
DOCKER_INSIDE_HOST=tcp://10.0.0.5:3376                  # hardened dind endpoint
DOCKER_INSIDE_TLS_VERIFY=1
DOCKER_INSIDE_CERT_PATH=/etc/docker/dind/certs/client   # path on the worker node
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;PentAGI injects these into every worker container as &lt;code&gt;DOCKER_HOST&lt;/code&gt;, &lt;code&gt;DOCKER_TLS_VERIFY&lt;/code&gt; and &lt;code&gt;DOCKER_CERT_PATH&lt;/code&gt; (the &lt;code&gt;_INSIDE_&lt;/code&gt; segment is dropped) and bind-mounts the certificate directory read-only at the same path, so &lt;code&gt;docker&lt;/code&gt; works inside the sandbox with no further setup.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Not recommended — bind-mounting a Docker socket (&lt;code&gt;DOCKER_SOCKET&lt;/code&gt;).&lt;/strong&gt; This has two failure modes:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Boot-order race&lt;/strong&gt;: a bind-mount source that does not exist yet is created by Docker as a &lt;em&gt;directory&lt;/em&gt;. After a worker-node reboot, a worker container can start before dind has recreated its socket — Docker then puts a directory where the socket belongs, and dind cannot start until it is removed by hand.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Blast radius&lt;/strong&gt;: the race is only reliably avoided when the mounted socket is the &lt;strong&gt;host&lt;/strong&gt; daemon&#39;s, since that one always exists first. But that grants an autonomous agent the host Docker API: it can start a privileged container, mount &lt;code&gt;/&lt;/code&gt;, and compromise the entire node — PentAGI included.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Use &lt;code&gt;DOCKER_SOCKET&lt;/code&gt; only on single-node development setups where the host daemon is already trusted.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;See&lt;/strong&gt;: &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/worker_node.md&quot;&gt;Worker Node Setup&lt;/a&gt; for the full dind hardening and TLS configuration, and &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/docs/docker.md#worker-docker-access&quot;&gt;Worker Docker Access&lt;/a&gt; for the exact resolution algorithm.&lt;/p&gt; 
&lt;h4&gt;Running Several Instances (&lt;code&gt;TENANT_ID&lt;/code&gt;)&lt;/h4&gt; 
&lt;p&gt;A single PentAGI installation needs none of this — leave &lt;code&gt;TENANT_ID&lt;/code&gt; empty (the default) and nothing changes.&lt;/p&gt; 
&lt;p&gt;Set it when several PentAGI installations share external resources: one PostgreSQL server, one worker node, one Neo4j/Graphiti, one Langfuse. The typical case is a management backend per server with a common worker node and database. Because every instance numbers its flows from &lt;code&gt;1&lt;/code&gt;, they would otherwise collide on container names, database rows, knowledge-graph namespaces and session cookies. &lt;code&gt;TENANT_ID&lt;/code&gt; namespaces all of it:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Area&lt;/th&gt; 
   &lt;th&gt;Effect when &lt;code&gt;TENANT_ID=acme&lt;/code&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;PostgreSQL&lt;/td&gt; 
   &lt;td&gt;The instance creates and works inside schema &lt;code&gt;acme&lt;/code&gt; instead of &lt;code&gt;public&lt;/code&gt;; extensions stay shared in &lt;code&gt;DATABASE_EXTENSIONS_SCHEMA&lt;/code&gt; (default &lt;code&gt;public&lt;/code&gt;, &lt;code&gt;extensions&lt;/code&gt; on Supabase)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Worker containers&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;acme-pentagi-terminal-&amp;lt;flow&amp;gt;&lt;/code&gt; instead of &lt;code&gt;pentagi-terminal-&amp;lt;flow&amp;gt;&lt;/code&gt;; volumes and hostnames follow, and both carry a &lt;code&gt;pentagi.tenant&lt;/code&gt; label&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Knowledge graph&lt;/td&gt; 
   &lt;td&gt;Graphiti/Neo4j group ids become &lt;code&gt;acme-flow-&amp;lt;id&amp;gt;&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Auth&lt;/td&gt; 
   &lt;td&gt;Cookie and API token keys are derived from &lt;code&gt;COOKIE_SIGNING_SALT&lt;/code&gt; &lt;strong&gt;plus&lt;/strong&gt; the tenant, and the session cookie is renamed&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Telemetry&lt;/td&gt; 
   &lt;td&gt;Langfuse traces carry the tenant as their &lt;code&gt;environment&lt;/code&gt; and a &lt;code&gt;tenant:acme&lt;/code&gt; tag; OTel resources gain &lt;code&gt;tenant_id&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The value must match &lt;code&gt;^[a-z][a-z0-9_]{0,31}$&lt;/code&gt; — an invalid one aborts startup rather than being silently normalised.&lt;/p&gt; 
&lt;p&gt;Some things stay yours to set per instance, because they are host resources rather than names: &lt;code&gt;DATA_DIR&lt;/code&gt; (two instances sharing it &lt;strong&gt;will&lt;/strong&gt; overwrite each other&#39;s flow data), &lt;code&gt;DOCKER_PORTS_BASE&lt;/code&gt;, the published ports, and &lt;code&gt;INSTALLATION_ID&lt;/code&gt;. The effective values are printed at startup under &lt;code&gt;Instance identity&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;The installer provisions one instance per server. Running several on one server is possible — for example behind a shared nginx — but the stock &lt;code&gt;docker-compose.yml&lt;/code&gt; uses fixed container and network names, so it has to be adapted to your own network layout first.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;See&lt;/strong&gt;: &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/docs/config.md#multi-instance-deployment-tenant_id&quot;&gt;Multi-Instance Deployment&lt;/a&gt; for validation rules, upgrade notes and the full list of operator responsibilities.&lt;/p&gt; 
&lt;h3&gt;Manual Installation&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Create a working directory or clone the repository:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;mkdir pentagi &amp;amp;&amp;amp; cd pentagi
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;Copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt; or download it:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -o .env https://raw.githubusercontent.com/vxcontrol/pentagi/master/.env.example
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li&gt;Touch examples files (&lt;code&gt;example.custom.provider.yml&lt;/code&gt;, &lt;code&gt;example.ollama.provider.yml&lt;/code&gt;) or download it:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -o example.custom.provider.yml https://raw.githubusercontent.com/vxcontrol/pentagi/master/examples/configs/custom-openai.provider.yml
curl -o example.ollama.provider.yml https://raw.githubusercontent.com/vxcontrol/pentagi/master/examples/configs/ollama-llama318b.provider.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;4&quot;&gt; 
 &lt;li&gt;Fill in the required API keys in &lt;code&gt;.env&lt;/code&gt; file.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Required: At least one of these LLM providers
OPEN_AI_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
GEMINI_API_KEY=your_gemini_key

# Optional: AWS Bedrock provider (enterprise-grade models)
BEDROCK_REGION=us-east-1
# Choose one authentication method:
BEDROCK_DEFAULT_AUTH=true                        # Option 1: Use AWS SDK default credential chain (recommended for EC2/ECS)
# BEDROCK_BEARER_TOKEN=your_bearer_token         # Option 2: Bearer token authentication
# BEDROCK_ACCESS_KEY_ID=your_aws_access_key      # Option 3: Static credentials
# BEDROCK_SECRET_ACCESS_KEY=your_aws_secret_key

# Optional: Ollama provider (local or cloud)
# OLLAMA_SERVER_URL=http://ollama-server:11434   # Local server
# OLLAMA_SERVER_URL=https://ollama.com           # Cloud service
# OLLAMA_SERVER_API_KEY=your_ollama_cloud_key    # Required for cloud, empty for local

# Optional: Chinese AI providers
# DEEPSEEK_API_KEY=your_deepseek_key             # DeepSeek (strong reasoning)
# GLM_API_KEY=your_glm_key                       # GLM (Zhipu AI)
# KIMI_API_KEY=your_kimi_key                     # Kimi (Moonshot AI, ultra-long context)
# QWEN_API_KEY=your_qwen_key                     # Qwen (Alibaba Cloud, multimodal)
# MINIMAX_API_KEY=your_minimax_key               # MiniMax

# Optional: Local LLM provider (zero-cost inference)
OLLAMA_SERVER_URL=http://localhost:11434
OLLAMA_SERVER_MODEL=your_model_name

# Optional: Additional search capabilities
DUCKDUCKGO_ENABLED=true
DUCKDUCKGO_REGION=us-en
DUCKDUCKGO_SAFESEARCH=
DUCKDUCKGO_TIME_RANGE=
SPLOITUS_ENABLED=true
GOOGLE_API_KEY=your_google_key
GOOGLE_CX_KEY=your_google_cx
TAVILY_API_KEY=your_tavily_key
FIRECRAWL_API_KEY=your_firecrawl_key
FIRECRAWL_API_URL=
TRAVERSAAL_API_KEY=your_traversaal_key
PERPLEXITY_API_KEY=your_perplexity_key
PERPLEXITY_MODEL=sonar-pro
PERPLEXITY_CONTEXT_SIZE=medium

# Searxng meta search engine (aggregates results from multiple sources)
SEARXNG_URL=http://your-searxng-instance:8080
SEARXNG_CATEGORIES=general
SEARXNG_LANGUAGE=
SEARXNG_SAFESEARCH=0
SEARXNG_TIME_RANGE=
SEARXNG_TIMEOUT=

# Optional: internal browser-analytics fallback engine for web_search (off by default;
# scrapes and summarizes pages instead of calling a paid analytic API)
WEB_SEARCH_INTERNAL_ENABLED=false
WEB_SEARCH_INTERNAL_MAX_SITES=5
WEB_SEARCH_INTERNAL_MAX_SITE_BYTES=10240

## Graphiti knowledge graph settings
GRAPHITI_ENABLED=false
GRAPHITI_TIMEOUT=30
GRAPHITI_URL=

# Neo4j settings (used by Graphiti stack)
NEO4J_USER=neo4j
NEO4J_DATABASE=neo4j
NEO4J_PASSWORD=devpassword
NEO4J_URI=bolt://neo4j:7687

# Assistant configuration
ASSISTANT_USE_AGENTS=false         # Default value for agent usage when creating new assistants
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;5&quot;&gt; 
 &lt;li&gt;Change all security related environment variables in &lt;code&gt;.env&lt;/code&gt; file to improve security.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;details&gt; 
 &lt;summary&gt;Security related environment variables&lt;/summary&gt; 
 &lt;h3&gt;Main Security Settings&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;COOKIE_SIGNING_SALT&lt;/code&gt; - Salt for cookie signing, change to random value&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;PUBLIC_URL&lt;/code&gt; - Public URL of your server (eg. &lt;code&gt;https://pentagi.example.com&lt;/code&gt;)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;SERVER_SSL_CRT&lt;/code&gt; and &lt;code&gt;SERVER_SSL_KEY&lt;/code&gt; - Custom paths to your existing SSL certificate and key for HTTPS (these paths should be used in the docker-compose.yml file to mount as volumes)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;TENANT_ID&lt;/code&gt; - Leave empty unless this instance shares external resources with another PentAGI installation. When set, it is mixed into the cookie and API token signing keys and renames the session cookie, so a session minted by one instance is rejected by the others even though they share the same &lt;code&gt;COOKIE_SIGNING_SALT&lt;/code&gt;. See &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#running-several-instances-tenant_id&quot;&gt;Running Several Instances&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Scraper Access&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;SCRAPER_PUBLIC_URL&lt;/code&gt; - Public URL for scraper if you want to use different scraper server for public URLs&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;SCRAPER_PRIVATE_URL&lt;/code&gt; - Private URL for scraper (local scraper server in docker-compose.yml file to access it to local URLs)&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Access Credentials&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;PENTAGI_POSTGRES_USER&lt;/code&gt; and &lt;code&gt;PENTAGI_POSTGRES_PASSWORD&lt;/code&gt; - PostgreSQL credentials&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;NEO4J_USER&lt;/code&gt; and &lt;code&gt;NEO4J_PASSWORD&lt;/code&gt; - Neo4j credentials (for Graphiti knowledge graph)&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;ol start=&quot;6&quot;&gt; 
 &lt;li&gt;Remove all inline comments from &lt;code&gt;.env&lt;/code&gt; file if you want to use it in VSCode or other IDEs as a envFile option:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;perl -i -pe &#39;s/\s+#.*$//&#39; .env
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;7&quot;&gt; 
 &lt;li&gt;Run the PentAGI stack:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose.yml
docker compose up -d
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Visit &lt;a href=&quot;https://localhost:8443&quot;&gt;localhost:8443&lt;/a&gt; to access PentAGI Web UI (default is &lt;code&gt;admin@pentagi.com&lt;/code&gt; / &lt;code&gt;admin&lt;/code&gt;)&lt;/p&gt; 
&lt;h4&gt;Web UI Accounts&lt;/h4&gt; 
&lt;p&gt;PentAGI does not expose public self-service sign-up from the login page. A fresh installation creates the default local administrator account:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Email&lt;/strong&gt;: &lt;code&gt;admin@pentagi.com&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Password&lt;/strong&gt;: &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;On first login, change the default password before using the instance for real work. If the administrator password is lost later, use the installer maintenance menu to reset the default &lt;code&gt;admin@pentagi.com&lt;/code&gt; account password.&lt;/p&gt; 
&lt;p&gt;For multi-user setups, an authenticated administrator can manage local users through the Users REST API (&lt;code&gt;/api/v1/users/&lt;/code&gt;). The OpenAPI UI is available at &lt;code&gt;https://localhost:8443/api/v1/swagger/index.html&lt;/code&gt; after the instance is running.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;If you caught an error about &lt;code&gt;pentagi-network&lt;/code&gt; or &lt;code&gt;observability-network&lt;/code&gt; or &lt;code&gt;langfuse-network&lt;/code&gt; you need to run &lt;code&gt;docker-compose.yml&lt;/code&gt; firstly to create these networks and after that run &lt;code&gt;docker-compose-langfuse.yml&lt;/code&gt;, &lt;code&gt;docker-compose-graphiti.yml&lt;/code&gt;, and &lt;code&gt;docker-compose-observability.yml&lt;/code&gt; to use Langfuse, Graphiti, and Observability services.&lt;/p&gt; 
 &lt;p&gt;You have to set at least one Language Model provider (OpenAI, Anthropic, Gemini, AWS Bedrock, or Ollama) to use PentAGI. AWS Bedrock provides enterprise-grade access to multiple foundation models from leading AI companies, while Ollama provides zero-cost local inference if you have sufficient computational resources. Additional API keys for search engines are optional but recommended for better results.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;For fully local deployment with advanced models&lt;/strong&gt;: See our comprehensive guide on &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/vllm-qwen35-27b-fp8.md&quot;&gt;Running PentAGI with vLLM and Qwen3.5-27B-FP8&lt;/a&gt; for a production-grade local LLM setup. This configuration achieves ~13,000 TPS for prompt processing and ~650 TPS for completion on 4× RTX 5090 GPUs, supporting 12+ concurrent flows with complete independence from cloud providers.&lt;/p&gt; 
 &lt;p&gt;&lt;code&gt;LLM_SERVER_*&lt;/code&gt; environment variables are experimental feature and will be changed in the future. Right now you can use them to specify custom LLM server URL and one model for all agent types.&lt;/p&gt; 
 &lt;p&gt;&lt;code&gt;PROXY_URL&lt;/code&gt; is a global proxy URL for all LLM providers and external search systems. You can use it for isolation from external networks.&lt;/p&gt; 
 &lt;p&gt;The &lt;code&gt;docker-compose.yml&lt;/code&gt; file runs the PentAGI service as root user because it needs access to docker.sock for container management. If you&#39;re using TCP/IP network connection to Docker instead of socket file, you can remove root privileges and use the default &lt;code&gt;pentagi&lt;/code&gt; user for better security.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h3&gt;Accessing PentAGI from External Networks&lt;/h3&gt; 
&lt;p&gt;By default, PentAGI binds to &lt;code&gt;127.0.0.1&lt;/code&gt; (localhost only) for security. To access PentAGI from other machines on your network, you need to configure external access.&lt;/p&gt; 
&lt;h4&gt;Configuration Steps&lt;/h4&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Update &lt;code&gt;.env&lt;/code&gt; file&lt;/strong&gt; with your server&#39;s IP address:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Network binding - allow external connections
PENTAGI_LISTEN_IP=0.0.0.0
PENTAGI_LISTEN_PORT=8443

# Public URL - use your actual server IP or hostname
# Replace 192.168.1.100 with your server&#39;s IP address
PUBLIC_URL=https://192.168.1.100:8443

# CORS origins - list all URLs that will access PentAGI
# Include localhost for local access AND your server IP for external access
CORS_ORIGINS=https://localhost:8443,https://192.168.1.100:8443
&lt;/code&gt;&lt;/pre&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Replace &lt;code&gt;192.168.1.100&lt;/code&gt; with your actual server&#39;s IP address&lt;/li&gt; 
  &lt;li&gt;Do NOT use &lt;code&gt;0.0.0.0&lt;/code&gt; in &lt;code&gt;PUBLIC_URL&lt;/code&gt; or &lt;code&gt;CORS_ORIGINS&lt;/code&gt; - use the actual IP address&lt;/li&gt; 
  &lt;li&gt;Include both localhost and your server IP in &lt;code&gt;CORS_ORIGINS&lt;/code&gt; for flexibility&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Recreate containers&lt;/strong&gt; to apply the changes:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose down
docker compose up -d --force-recreate
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Verify port binding:&lt;/strong&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker ps | grep pentagi
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;You should see &lt;code&gt;0.0.0.0:8443-&amp;gt;8443/tcp&lt;/code&gt; or &lt;code&gt;:::8443-&amp;gt;8443/tcp&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;If you see &lt;code&gt;127.0.0.1:8443-&amp;gt;8443/tcp&lt;/code&gt;, the environment variable wasn&#39;t picked up. In this case, directly edit &lt;code&gt;docker-compose.yml&lt;/code&gt; line 31:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;ports:
  - &quot;0.0.0.0:8443:8443&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then recreate containers again.&lt;/p&gt; 
&lt;ol start=&quot;4&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Configure firewall&lt;/strong&gt; to allow incoming connections on port 8443:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Ubuntu/Debian with UFW
sudo ufw allow 8443/tcp
sudo ufw reload

# CentOS/RHEL with firewalld
sudo firewall-cmd --permanent --add-port=8443/tcp
sudo firewall-cmd --reload
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;5&quot;&gt; 
 &lt;li&gt;&lt;strong&gt;Access PentAGI:&lt;/strong&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Local access:&lt;/strong&gt; &lt;code&gt;https://localhost:8443&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Network access:&lt;/strong&gt; &lt;code&gt;https://your-server-ip:8443&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;You&#39;ll need to accept the self-signed SSL certificate warning in your browser when accessing via IP address.&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h3&gt;Running PentAGI with Podman&lt;/h3&gt; 
&lt;p&gt;PentAGI fully supports Podman as a Docker alternative. However, when using &lt;strong&gt;Podman in rootless mode&lt;/strong&gt;, the scraper service requires special configuration because rootless containers cannot bind privileged ports (ports below 1024).&lt;/p&gt; 
&lt;h4&gt;Podman Rootless Configuration&lt;/h4&gt; 
&lt;p&gt;The default scraper configuration uses port 443 (HTTPS), which is a privileged port. For Podman rootless, reconfigure the scraper to use a non-privileged port:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;1. Edit &lt;code&gt;docker-compose.yml&lt;/code&gt;&lt;/strong&gt; - modify the &lt;code&gt;scraper&lt;/code&gt; service (around line 199):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;scraper:
  image: vxcontrol/scraper:latest
  restart: unless-stopped
  container_name: scraper
  hostname: scraper
  expose:
    - 3000/tcp  # Changed from 443 to 3000
  ports:
    - &quot;${SCRAPER_LISTEN_IP:-127.0.0.1}:${SCRAPER_LISTEN_PORT:-9443}:3000&quot;  # Map to port 3000
  environment:
    - MAX_CONCURRENT_SESSIONS=${LOCAL_SCRAPER_MAX_CONCURRENT_SESSIONS:-10}
    - USERNAME=${LOCAL_SCRAPER_USERNAME:-someuser}
    - PASSWORD=${LOCAL_SCRAPER_PASSWORD:-somepass}
  logging:
    options:
      max-size: 50m
      max-file: &quot;7&quot;
  volumes:
    - scraper-ssl:/usr/src/app/ssl
  networks:
    - pentagi-network
  shm_size: 2g
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;2. Update &lt;code&gt;.env&lt;/code&gt; file&lt;/strong&gt; - change the scraper URL to use HTTP and port 3000:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Scraper configuration for Podman rootless
SCRAPER_PRIVATE_URL=http://someuser:somepass@scraper:3000/
LOCAL_SCRAPER_USERNAME=someuser
LOCAL_SCRAPER_PASSWORD=somepass
&lt;/code&gt;&lt;/pre&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;Key changes for Podman:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Use &lt;strong&gt;HTTP&lt;/strong&gt; instead of HTTPS for &lt;code&gt;SCRAPER_PRIVATE_URL&lt;/code&gt;&lt;/li&gt; 
  &lt;li&gt;Use port &lt;strong&gt;3000&lt;/strong&gt; instead of 443&lt;/li&gt; 
  &lt;li&gt;Change internal &lt;code&gt;expose&lt;/code&gt; to &lt;code&gt;3000/tcp&lt;/code&gt;&lt;/li&gt; 
  &lt;li&gt;Update port mapping to target &lt;code&gt;3000&lt;/code&gt; instead of &lt;code&gt;443&lt;/code&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;3. Recreate containers:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;podman-compose down
podman-compose up -d --force-recreate
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;4. Test scraper connectivity:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Test from within the pentagi container
podman exec -it pentagi wget -O- &quot;http://someuser:somepass@scraper:3000/html?url=http://example.com&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;If you see HTML output, the scraper is working correctly.&lt;/p&gt; 
&lt;h4&gt;Podman Rootful Mode&lt;/h4&gt; 
&lt;p&gt;If you&#39;re running Podman in rootful mode (with sudo), you can use the default configuration without modifications. The scraper will work on port 443 as intended.&lt;/p&gt; 
&lt;h4&gt;Docker Compatibility&lt;/h4&gt; 
&lt;p&gt;All Podman configurations remain fully compatible with Docker. The non-privileged port approach works identically on both container runtimes.&lt;/p&gt; 
&lt;h3&gt;Assistant Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI allows you to configure default behavior for assistants:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;ASSISTANT_USE_AGENTS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Controls the default value for agent usage when creating new assistants&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The &lt;code&gt;ASSISTANT_USE_AGENTS&lt;/code&gt; setting affects the initial state of the &quot;Use Agents&quot; toggle when creating a new assistant in the UI:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;false&lt;/code&gt; (default): New assistants are created with agent delegation disabled by default&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;true&lt;/code&gt;: New assistants are created with agent delegation enabled by default&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Note that users can always override this setting by toggling the &quot;Use Agents&quot; button in the UI when creating or editing an assistant. This environment variable only controls the initial default state.&lt;/p&gt; 
&lt;h2&gt;How to Use PentAGI After Login&lt;/h2&gt; 
&lt;p&gt;Once the stack is running and you can sign in to the web UI, the fastest way to start is through the Flows workflow.&lt;/p&gt; 
&lt;h3&gt;1. Create your first flow&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Open &lt;strong&gt;Flows&lt;/strong&gt; in the sidebar.&lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;New Flow&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Choose the mode that fits your goal: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Automation&lt;/strong&gt;: fully autonomous execution for a testing goal you want PentAGI to carry out end-to-end&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Assistant&lt;/strong&gt;: interactive back-and-forth help when you want to steer the investigation step by step. In this mode you can also enable the &lt;strong&gt;Use Agents&lt;/strong&gt; toggle to let PentAGI delegate subtasks to specialized sub-agents for more complex investigations.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Select the LLM provider you want to use for this flow.&lt;/li&gt; 
 &lt;li&gt;Describe the target and the objective in natural language in the message box.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Good first prompts usually include:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;the target system or URL&lt;/li&gt; 
 &lt;li&gt;the type of assessment you want&lt;/li&gt; 
 &lt;li&gt;any scope limitations or rules of engagement&lt;/li&gt; 
 &lt;li&gt;the result you expect, such as a vulnerability report or validation of a hypothesis&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Example:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Assess https://target.example for common web application vulnerabilities. Focus on authentication, file handling, and injection issues. Stay within the provided target only and summarize confirmed findings with reproduction steps.
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Only test systems you own or are explicitly authorized to assess. See &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/EULA.md&quot;&gt;EULA.md&lt;/a&gt; for the acceptable use requirements.&lt;/p&gt; 
&lt;h3&gt;2. Use templates for repeatable workflows&lt;/h3&gt; 
&lt;p&gt;The new flow form includes a template picker, which can prefill the message box with a saved flow template. This is useful when you run similar assessments repeatedly.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Use an existing template if you already have one saved in &lt;strong&gt;Templates&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;Start from the example prompt in &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/prompts/base_web_pentest.md&quot;&gt;&lt;code&gt;examples/prompts/base_web_pentest.md&lt;/code&gt;&lt;/a&gt; if you need a practical baseline for web testing&lt;/li&gt; 
 &lt;li&gt;Adjust the target, scope, and constraints before starting the flow&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Templates are starting points. You do not need special syntax to use PentAGI: plain natural-language instructions work well as long as the target and goal are clear.&lt;/p&gt; 
&lt;h3&gt;3. Monitor execution and review output&lt;/h3&gt; 
&lt;p&gt;After submitting the flow, PentAGI opens the flow page automatically.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Use the main flow view to follow messages, agent activity, and task progress&lt;/li&gt; 
 &lt;li&gt;Inspect tool activity and terminal output as the flow runs&lt;/li&gt; 
 &lt;li&gt;Review generated tasks and subtasks to understand what PentAGI is doing&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Once the flow has enough results, use the &lt;strong&gt;Report&lt;/strong&gt; menu on the flow page to:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;open the report in a web view&lt;/li&gt; 
 &lt;li&gt;copy the generated report to the clipboard&lt;/li&gt; 
 &lt;li&gt;download the report as Markdown&lt;/li&gt; 
 &lt;li&gt;download the report as PDF&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;4. Use the Assistant view to steer an active flow&lt;/h3&gt; 
&lt;p&gt;Each flow also includes an &lt;strong&gt;Assistant&lt;/strong&gt; view for interactive guidance. This is useful when the autonomous run uncovers something that needs human direction instead of a hard restart.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Open the &lt;strong&gt;Assistant&lt;/strong&gt; view for the same flow when you want to inspect the current state before changing anything.&lt;/li&gt; 
 &lt;li&gt;Use the assistant to check flow status, stop the current task, submit follow-up instructions, or patch the remaining planned subtasks before the next step runs.&lt;/li&gt; 
 &lt;li&gt;Treat this as an explicit control path for the current flow, not as an invisible background queue. If you want to change direction, say so clearly and keep the new instruction tied to the current engagement scope.&lt;/li&gt; 
 &lt;li&gt;This works best for clarifying scope, redirecting priorities after intermediate findings, or answering an automation checkpoint without losing the rest of the flow context.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;5. Manage flow-scoped files&lt;/h3&gt; 
&lt;p&gt;Each flow has its own &lt;strong&gt;Files&lt;/strong&gt; tab in the flow page. Files are scoped to the parent flow: they live in &lt;code&gt;{dataDir}/flow-{id}-data/&lt;/code&gt; on the host and never leak into other flows.&lt;/p&gt; 
&lt;p&gt;The tab exposes three sources of files:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Uploads&lt;/strong&gt; (&lt;code&gt;uploads/&lt;/code&gt;): files you provide from the web UI. Use the &lt;strong&gt;Upload files&lt;/strong&gt; action, or drag and drop directly onto the Files tab. While the agent container is running, uploaded files are also pushed into it at &lt;code&gt;/work/uploads/&lt;/code&gt; so the agent can read them with normal shell tools.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Resources&lt;/strong&gt; (&lt;code&gt;resources/&lt;/code&gt;): files attached from your saved user resources library via &lt;strong&gt;Attach resources from library&lt;/strong&gt;. Attached resources are copied into the flow and pushed into the running container at &lt;code&gt;/work/resources/&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Container&lt;/strong&gt; (&lt;code&gt;container/&lt;/code&gt;): snapshots pulled from the running agent container via &lt;strong&gt;Pull file or directory from container&lt;/strong&gt;. These are read-only on the flow side and are never sent back to the container.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Per-file actions in the Files tab include &lt;strong&gt;Download&lt;/strong&gt;, &lt;strong&gt;Copy path&lt;/strong&gt;, &lt;strong&gt;Save as resource&lt;/strong&gt; (promote a flow file into your reusable resources library), and &lt;strong&gt;Delete&lt;/strong&gt;. The Pull action is disabled when the container is not running, with the tooltip &quot;Container is not running&quot;.&lt;/p&gt; 
&lt;p&gt;Uploaded files and attached resources are listed automatically in the agent&#39;s system prompts via the &lt;code&gt;{{.UserFiles}}&lt;/code&gt; template variable, which renders a compact &lt;code&gt;&amp;lt;task_files&amp;gt;&lt;/code&gt; XML block (with nested &lt;code&gt;&amp;lt;uploads&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;resources&amp;gt;&lt;/code&gt; sections), so the assistant and automation agents can reference them by path without you pasting the contents into chat. Container snapshots are visible in the UI only and are not auto-injected back into the prompt.&lt;/p&gt; 
&lt;p&gt;Current limits and limitations to be aware of:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Maximum upload file size is 300 MB; per upload request up to 1000 files and 2 GB total. File names are capped at 255 bytes (roughly 255 ASCII characters; non-ASCII names use multiple bytes per character).&lt;/li&gt; 
 &lt;li&gt;Uploads and resources are mirrored into the running container at the fixed paths &lt;code&gt;/work/uploads/&lt;/code&gt; and &lt;code&gt;/work/resources/&lt;/code&gt;; files written to other container paths are not auto-mirrored back into the flow file model. Container snapshots can originate from any container path you pull (for example &lt;code&gt;/etc/...&lt;/code&gt;) and are cached on the flow side under &lt;code&gt;container/&lt;/code&gt;; they are not pushed back into the container.&lt;/li&gt; 
 &lt;li&gt;Container snapshots are point-in-time pulls. Editing a snapshot in the UI does not write back into the running container.&lt;/li&gt; 
 &lt;li&gt;Deleting a flow today removes the flow record and its long-term memory entries, but does not yet archive or remove the flow&#39;s &lt;code&gt;flow-{id}-data/&lt;/code&gt; directory on disk. Operators are still expected to clean up the data directory manually if they want to reclaim the space.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;For early testing, start with a narrow target and a single clear objective. This makes the output easier to review and helps you refine your prompts before running larger assessments.&lt;/p&gt; 
&lt;h2&gt;API Access&lt;/h2&gt; 
&lt;p&gt;PentAGI provides comprehensive programmatic access through both REST and GraphQL APIs, allowing you to integrate penetration testing workflows into your automation pipelines, CI/CD processes, and custom applications.&lt;/p&gt; 
&lt;h3&gt;Generating API Tokens&lt;/h3&gt; 
&lt;p&gt;API tokens are managed through the PentAGI web interface:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Navigate to &lt;strong&gt;Settings&lt;/strong&gt; → &lt;strong&gt;API Tokens&lt;/strong&gt; in the web UI&lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;Create Token&lt;/strong&gt; to generate a new API token&lt;/li&gt; 
 &lt;li&gt;Configure token properties: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt; (optional): A descriptive name for the token&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Expiration Date&lt;/strong&gt;: When the token will expire (minimum 1 minute, maximum 3 years)&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt; and &lt;strong&gt;copy the token immediately&lt;/strong&gt; - it will only be shown once for security reasons&lt;/li&gt; 
 &lt;li&gt;Use the token as a Bearer token in your API requests&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Each token is associated with your user account and inherits your role&#39;s permissions.&lt;/p&gt; 
&lt;h3&gt;Using API Tokens&lt;/h3&gt; 
&lt;p&gt;Include the API token in the &lt;code&gt;Authorization&lt;/code&gt; header of your HTTP requests:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# GraphQL API example
curl -X POST https://your-pentagi-instance:8443/api/v1/graphql \
  -H &quot;Authorization: Bearer YOUR_API_TOKEN&quot; \
  -H &quot;Content-Type: application/json&quot; \
  -d &#39;{&quot;query&quot;: &quot;{ flows { id title status } }&quot;}&#39;

# REST API example
curl https://your-pentagi-instance:8443/api/v1/flows \
  -H &quot;Authorization: Bearer YOUR_API_TOKEN&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;API Exploration and Testing&lt;/h3&gt; 
&lt;p&gt;PentAGI provides interactive documentation for exploring and testing API endpoints:&lt;/p&gt; 
&lt;h4&gt;GraphQL Playground&lt;/h4&gt; 
&lt;p&gt;Access the GraphQL Playground at &lt;code&gt;https://your-pentagi-instance:8443/api/v1/graphql/playground&lt;/code&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Click the &lt;strong&gt;HTTP Headers&lt;/strong&gt; tab at the bottom&lt;/li&gt; 
 &lt;li&gt;Add your authorization header:&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;Authorization&quot;: &quot;Bearer YOUR_API_TOKEN&quot;
}
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt;Explore the schema, run queries, and test mutations interactively&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h4&gt;Swagger UI&lt;/h4&gt; 
&lt;p&gt;Access the REST API documentation at &lt;code&gt;https://your-pentagi-instance:8443/api/v1/swagger/index.html&lt;/code&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Click the &lt;strong&gt;Authorize&lt;/strong&gt; button&lt;/li&gt; 
 &lt;li&gt;Enter your token in the format: &lt;code&gt;Bearer YOUR_API_TOKEN&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;Authorize&lt;/strong&gt; to apply&lt;/li&gt; 
 &lt;li&gt;Test endpoints directly from the Swagger UI&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Generating API Clients&lt;/h3&gt; 
&lt;p&gt;You can generate type-safe API clients for your preferred programming language using the schema files included with PentAGI:&lt;/p&gt; 
&lt;h4&gt;GraphQL Clients&lt;/h4&gt; 
&lt;p&gt;The GraphQL schema is available at:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Web UI&lt;/strong&gt;: Navigate to Settings to download &lt;code&gt;schema.graphqls&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Direct file&lt;/strong&gt;: &lt;code&gt;backend/pkg/graph/schema.graphqls&lt;/code&gt; in the repository&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Generate clients using tools like:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;GraphQL Code Generator&lt;/strong&gt; (JavaScript/TypeScript): &lt;a href=&quot;https://the-guild.dev/graphql/codegen&quot;&gt;https://the-guild.dev/graphql/codegen&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;genqlient&lt;/strong&gt; (Go): &lt;a href=&quot;https://github.com/Khan/genqlient&quot;&gt;https://github.com/Khan/genqlient&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Apollo iOS&lt;/strong&gt; (Swift): &lt;a href=&quot;https://www.apollographql.com/docs/ios&quot;&gt;https://www.apollographql.com/docs/ios&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;REST API Clients&lt;/h4&gt; 
&lt;p&gt;The OpenAPI specification is available at:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Swagger JSON&lt;/strong&gt;: &lt;code&gt;https://your-pentagi-instance:8443/api/v1/swagger/doc.json&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Swagger YAML&lt;/strong&gt;: Available in &lt;code&gt;backend/pkg/server/docs/swagger.yaml&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Generate clients using:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;OpenAPI Generator&lt;/strong&gt;: &lt;a href=&quot;https://openapi-generator.tech&quot;&gt;https://openapi-generator.tech&lt;/a&gt;&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;openapi-generator-cli generate \
  -i https://your-pentagi-instance:8443/api/v1/swagger/doc.json \
  -g python \
  -o ./pentagi-client
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;Swagger Codegen&lt;/strong&gt;: &lt;a href=&quot;https://github.com/swagger-api/swagger-codegen&quot;&gt;https://github.com/swagger-api/swagger-codegen&lt;/a&gt;&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;swagger-codegen generate \
  -i https://your-pentagi-instance:8443/api/v1/swagger/doc.json \
  -l typescript-axios \
  -o ./pentagi-client
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;&lt;strong&gt;swagger-typescript-api&lt;/strong&gt; (TypeScript): &lt;a href=&quot;https://github.com/acacode/swagger-typescript-api&quot;&gt;https://github.com/acacode/swagger-typescript-api&lt;/a&gt;&lt;/p&gt; &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx swagger-typescript-api \
  -p https://your-pentagi-instance:8443/api/v1/swagger/doc.json \
  -o ./src/api \
  -n pentagi-api.ts
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;API Usage Examples&lt;/h3&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Creating a New Flow (GraphQL)&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-graphql&quot;&gt;mutation CreateFlow {
  createFlow(
    modelProvider: &quot;openai&quot;
    input: &quot;Test the security of https://example.com&quot;
  ) {
    id
    title
    status
    createdAt
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Listing Flows (REST API)&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl https://your-pentagi-instance:8443/api/v1/flows \
  -H &quot;Authorization: Bearer YOUR_API_TOKEN&quot; \
  | jq &#39;.flows[] | {id, title, status}&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Python Client Example&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import requests

class PentAGIClient:
    def __init__(self, base_url, api_token):
        self.base_url = base_url
        self.headers = {
            &quot;Authorization&quot;: f&quot;Bearer {api_token}&quot;,
            &quot;Content-Type&quot;: &quot;application/json&quot;
        }
    
    def create_flow(self, provider, target):
        query = &quot;&quot;&quot;
        mutation CreateFlow($provider: String!, $input: String!) {
          createFlow(modelProvider: $provider, input: $input) {
            id
            title
            status
          }
        }
        &quot;&quot;&quot;
        response = requests.post(
            f&quot;{self.base_url}/api/v1/graphql&quot;,
            json={
                &quot;query&quot;: query,
                &quot;variables&quot;: {
                    &quot;provider&quot;: provider,
                    &quot;input&quot;: target
                }
            },
            headers=self.headers
        )
        return response.json()
    
    def get_flows(self):
        response = requests.get(
            f&quot;{self.base_url}/api/v1/flows&quot;,
            headers=self.headers
        )
        return response.json()

# Usage
client = PentAGIClient(
    &quot;https://your-pentagi-instance:8443&quot;,
    &quot;your_api_token_here&quot;
)

# Create a new flow
flow = client.create_flow(&quot;openai&quot;, &quot;Scan https://example.com for vulnerabilities&quot;)
print(f&quot;Created flow: {flow}&quot;)

# List all flows
flows = client.get_flows()
print(f&quot;Total flows: {len(flows[&#39;flows&#39;])}&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;TypeScript Client Example&lt;/b&gt;&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-typescript&quot;&gt;import axios, { AxiosInstance } from &#39;axios&#39;;

interface Flow {
  id: string;
  title: string;
  status: string;
  createdAt: string;
}

class PentAGIClient {
  private client: AxiosInstance;

  constructor(baseURL: string, apiToken: string) {
    this.client = axios.create({
      baseURL: `${baseURL}/api/v1`,
      headers: {
        &#39;Authorization&#39;: `Bearer ${apiToken}`,
        &#39;Content-Type&#39;: &#39;application/json&#39;,
      },
    });
  }

  async createFlow(provider: string, input: string): Promise&amp;lt;Flow&amp;gt; {
    const query = `
      mutation CreateFlow($provider: String!, $input: String!) {
        createFlow(modelProvider: $provider, input: $input) {
          id
          title
          status
          createdAt
        }
      }
    `;

    const response = await this.client.post(&#39;/graphql&#39;, {
      query,
      variables: { provider, input },
    });

    return response.data.data.createFlow;
  }

  async getFlows(): Promise&amp;lt;Flow[]&amp;gt; {
    const response = await this.client.get(&#39;/flows&#39;);
    return response.data.flows;
  }

  async getFlow(flowId: string): Promise&amp;lt;Flow&amp;gt; {
    const response = await this.client.get(`/flows/${flowId}`);
    return response.data;
  }
}

// Usage
const client = new PentAGIClient(
  &#39;https://your-pentagi-instance:8443&#39;,
  &#39;your_api_token_here&#39;
);

// Create a new flow
const flow = await client.createFlow(
  &#39;openai&#39;,
  &#39;Perform penetration test on https://example.com&#39;
);
console.log(&#39;Created flow:&#39;, flow);

// List all flows
const flows = await client.getFlows();
console.log(`Total flows: ${flows.length}`);
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;h3&gt;Security Best Practices&lt;/h3&gt; 
&lt;p&gt;When working with API tokens:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Never commit tokens to version control&lt;/strong&gt; - use environment variables or secrets management&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Rotate tokens regularly&lt;/strong&gt; - set appropriate expiration dates and create new tokens periodically&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Use separate tokens for different applications&lt;/strong&gt; - makes it easier to revoke access if needed&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Monitor token usage&lt;/strong&gt; - review API token activity in the Settings page&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Revoke unused tokens&lt;/strong&gt; - disable or delete tokens that are no longer needed&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Use HTTPS only&lt;/strong&gt; - never send API tokens over unencrypted connections&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Token Management&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;View tokens&lt;/strong&gt;: See all your active tokens in Settings → API Tokens&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Edit tokens&lt;/strong&gt;: Update token names or revoke tokens&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Delete tokens&lt;/strong&gt;: Permanently remove tokens (this action cannot be undone)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Token ID&lt;/strong&gt;: Each token has a unique ID that can be copied for reference&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The token list shows:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Token name (if provided)&lt;/li&gt; 
 &lt;li&gt;Token ID (unique identifier)&lt;/li&gt; 
 &lt;li&gt;Status (active/revoked/expired)&lt;/li&gt; 
 &lt;li&gt;Creation date&lt;/li&gt; 
 &lt;li&gt;Expiration date&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Custom LLM Provider Configuration&lt;/h3&gt; 
&lt;p&gt;When using custom LLM providers with the &lt;code&gt;LLM_SERVER_*&lt;/code&gt; variables, you can fine-tune the reasoning format used in requests.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Tip&lt;/p&gt;
 &lt;p&gt;For production-grade local deployments, consider using &lt;strong&gt;vLLM&lt;/strong&gt; with &lt;strong&gt;Qwen3.5-27B-FP8&lt;/strong&gt; for optimal performance. See our &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/vllm-qwen35-27b-fp8.md&quot;&gt;comprehensive deployment guide&lt;/a&gt; which includes hardware requirements, configuration templates (&lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/vllm-qwen3.5-27b-fp8.provider.yml&quot;&gt;thinking mode&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/vllm-qwen3.5-27b-fp8-no-think.provider.yml&quot;&gt;non-thinking mode&lt;/a&gt;), and performance benchmarks showing 13K TPS prompt processing on 4× RTX 5090 GPUs.&lt;/p&gt; 
&lt;/div&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Base URL for the custom LLM API endpoint&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;API key for the custom LLM provider&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_MODEL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Default model to use (can be overridden in provider config)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_CONFIG_PATH&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Path to the YAML configuration file for agent-specific models&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_PROVIDER&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Provider name prefix for model names (e.g., &lt;code&gt;openrouter&lt;/code&gt;, &lt;code&gt;deepseek&lt;/code&gt; for LiteLLM proxy)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_LEGACY_REASONING&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Controls reasoning format in API requests&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_PRESERVE_REASONING&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Preserve reasoning content in multi-turn conversations (required by some providers)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The &lt;code&gt;LLM_SERVER_PROVIDER&lt;/code&gt; setting is particularly useful when using &lt;strong&gt;LiteLLM proxy&lt;/strong&gt;, which adds a provider prefix to model names. For example, when connecting to Moonshot API through LiteLLM, models like &lt;code&gt;kimi-2.5&lt;/code&gt; become &lt;code&gt;moonshot/kimi-2.5&lt;/code&gt;. By setting &lt;code&gt;LLM_SERVER_PROVIDER=moonshot&lt;/code&gt;, you can use the same provider configuration file for both direct API access and LiteLLM proxy access without modifications.&lt;/p&gt; 
&lt;p&gt;The &lt;code&gt;LLM_SERVER_LEGACY_REASONING&lt;/code&gt; setting affects how reasoning parameters are sent to the LLM:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;false&lt;/code&gt; (default): Uses modern format where reasoning is sent as a structured object with &lt;code&gt;max_tokens&lt;/code&gt; parameter&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;true&lt;/code&gt;: Uses legacy format with string-based &lt;code&gt;reasoning_effort&lt;/code&gt; parameter&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;This setting is important when working with different LLM providers as they may expect different reasoning formats in their API requests. If you encounter reasoning-related errors with custom providers, try changing this setting.&lt;/p&gt; 
&lt;p&gt;The &lt;code&gt;LLM_SERVER_PRESERVE_REASONING&lt;/code&gt; setting controls whether reasoning content is preserved in multi-turn conversations:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;false&lt;/code&gt; (default): Reasoning content is not preserved in conversation history&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;true&lt;/code&gt;: Reasoning content is preserved and sent in subsequent API calls&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;This setting is required by some LLM providers (e.g., Moonshot) that return errors like &quot;thinking is enabled but reasoning_content is missing in assistant tool call message&quot; when reasoning content is not included in multi-turn conversations. Enable this setting if your provider requires reasoning content to be preserved.&lt;/p&gt; 
&lt;h4&gt;Troubleshooting: tool-call (function-call) parser errors&lt;/h4&gt; 
&lt;p&gt;PentAGI drives its agents with tool calls (also called function calls), so any custom OpenAI-compatible backend configured through &lt;code&gt;LLM_SERVER_*&lt;/code&gt; must return valid tool-call JSON in the format the OpenAI Chat Completions API defines. When the backend emits malformed, truncated, or non-conforming tool-call arguments, the agent chain cannot continue.&lt;/p&gt; 
&lt;p&gt;Self-hosted engines such as llama.cpp, SGLang, and vLLM usually require a specific tool-call parser and a matching chat template to produce correct tool-call output. If the parser is missing or mismatched for the model you are serving, tool-call arguments can come back corrupted. Compatibility therefore depends on the backend&#39;s tool-call/function-call behavior and configuration, not on PentAGI alone; not every llama.cpp or SGLang setup produces valid tool calls out of the box.&lt;/p&gt; 
&lt;p&gt;Typical symptoms:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Backend or proxy errors such as &lt;code&gt;Failed to parse tool call arguments as JSON&lt;/code&gt; (often surfaced through a LiteLLM proxy as an HTTP 500), or other unexpected 5xx/4xx responses from the LLM endpoint.&lt;/li&gt; 
 &lt;li&gt;A flow that runs for a few steps and then stops responding to new input in the UI.&lt;/li&gt; 
 &lt;li&gt;Repeated or looping tool calls that never converge.&lt;/li&gt; 
 &lt;li&gt;A flow that fails right at the start with &lt;code&gt;failed to select primary docker image via llm call&lt;/code&gt;, because the first action in a flow is an LLM tool call to choose the container image; a backend that cannot return a valid tool call fails at this step too.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;How to investigate:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Check both sides of the connection: the PentAGI logs (&lt;code&gt;docker compose logs -f pentagi&lt;/code&gt;) and the inference backend or proxy logs (llama.cpp, SGLang, vLLM, or LiteLLM). The backend log usually shows the same parse error when it produced the malformed tool call.&lt;/li&gt; 
 &lt;li&gt;Validate the provider before running a full flow with the &lt;code&gt;ctester&lt;/code&gt; utility, which exercises tool-calling agent types directly. See &lt;a href=&quot;https://github.com/vxcontrol/pentagi#testing-llm-agents&quot;&gt;Testing LLM Agents&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Confirm the backend&#39;s tool-call parser and chat template are the ones recommended for the model you are serving, and that the model itself supports tool calling.&lt;/li&gt; 
 &lt;li&gt;Update PentAGI to the latest build. Recent versions sanitize malformed function-call arguments returned by the model so a single bad response no longer stalls the whole flow; older builds forwarded the corrupted arguments and could get stuck.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Ollama Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI supports Ollama for both local LLM inference (zero-cost, enhanced privacy) and Ollama Cloud (managed service with free tier).&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;URL of your Ollama server or Ollama Cloud&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;API key for Ollama Cloud authentication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_MODEL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Default model for inference&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_CONFIG_PATH&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Path to custom agent configuration file&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_PULL_MODELS_TIMEOUT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;600&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Timeout for model downloads (seconds)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_PULL_MODELS_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Auto-download models on startup&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OLLAMA_SERVER_LOAD_MODELS_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Query server for available models&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Ollama Cloud Configuration&lt;/h4&gt; 
&lt;p&gt;Ollama Cloud provides managed inference with a generous free tier and scalable paid plans.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Free Tier Setup (Single Model)&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Free tier allows one model at a time
OLLAMA_SERVER_URL=https://ollama.com
OLLAMA_SERVER_API_KEY=your_ollama_cloud_api_key
OLLAMA_SERVER_MODEL=gpt-oss:120b  # Example: OpenAI OSS 120B model
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Paid Tier Setup (Multi-Model with Pre-built Configuration)&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;For paid tiers supporting multiple concurrent models, use the pre-built Ollama Cloud configuration:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Using pre-built Ollama Cloud configuration (included in Docker image)
OLLAMA_SERVER_URL=https://ollama.com
OLLAMA_SERVER_API_KEY=your_ollama_cloud_api_key
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-cloud.provider.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The pre-built &lt;code&gt;ollama-cloud.provider.yml&lt;/code&gt; configuration includes optimized model assignments for all agent types:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Simple/Assistant&lt;/strong&gt;: &lt;code&gt;nemotron-3-super:cloud&lt;/code&gt; - Fast general-purpose model&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Primary Agent&lt;/strong&gt;: &lt;code&gt;qwen3-coder-next:cloud&lt;/code&gt; - Advanced reasoning with high effort mode&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Coder/Pentester&lt;/strong&gt;: &lt;code&gt;qwen3-coder-next:cloud&lt;/code&gt; - Specialized coding models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Searcher&lt;/strong&gt;: &lt;code&gt;qwen3.5:397b-cloud&lt;/code&gt; - Large context for information gathering&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Refiner/Refactor&lt;/strong&gt;: &lt;code&gt;glm-5:cloud&lt;/code&gt; - High-quality text refinement&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Adviser/Enricher&lt;/strong&gt;: &lt;code&gt;minimax-m2.7:cloud&lt;/code&gt; - Efficient advisory tasks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Installer&lt;/strong&gt;: &lt;code&gt;devstral-2:123b-cloud&lt;/code&gt; - Installation and setup tasks&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Custom Configuration (Advanced)&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;To create your own agent configuration, mount a custom file from your host filesystem:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Using custom provider configuration
OLLAMA_SERVER_URL=https://ollama.com
OLLAMA_SERVER_API_KEY=your_ollama_cloud_api_key
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama.provider.yml

# Mount custom configuration from host filesystem (in .env or docker-compose override)
PENTAGI_OLLAMA_SERVER_CONFIG_PATH=/path/on/host/my-ollama-config.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The &lt;code&gt;PENTAGI_OLLAMA_SERVER_CONFIG_PATH&lt;/code&gt; environment variable maps your host configuration file to &lt;code&gt;/opt/pentagi/conf/ollama.provider.yml&lt;/code&gt; inside the container.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Example custom configuration&lt;/strong&gt; (&lt;code&gt;my-ollama-config.yml&lt;/code&gt;):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;primary_agent:
  model: &quot;qwen3-coder-next:cloud&quot;
  temperature: 1.0
  top_p: 0.9
  max_tokens: 32768
  reasoning:
    effort: high

coder:
  model: &quot;qwen3-coder:32b&quot;
  temperature: 1.0
  max_tokens: 20480
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Local Ollama Configuration&lt;/h4&gt; 
&lt;p&gt;For self-hosted Ollama instances:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Basic local Ollama setup
OLLAMA_SERVER_URL=http://localhost:11434
OLLAMA_SERVER_MODEL=llama3.1:8b-instruct-q8_0

# Production setup with auto-pull and model discovery
OLLAMA_SERVER_URL=http://ollama-server:11434
OLLAMA_SERVER_PULL_MODELS_ENABLED=true
OLLAMA_SERVER_PULL_MODELS_TIMEOUT=900
OLLAMA_SERVER_LOAD_MODELS_ENABLED=true

# Using pre-built configurations from Docker image
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-llama318b.provider.yml
# or
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-qwen332b-fp16-tc.provider.yml
# or
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-qwq32b-fp16-tc.provider.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;Performance Considerations:&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Model Discovery&lt;/strong&gt; (&lt;code&gt;OLLAMA_SERVER_LOAD_MODELS_ENABLED=true&lt;/code&gt;): Adds 1-2s startup latency querying Ollama API&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Auto-pull&lt;/strong&gt; (&lt;code&gt;OLLAMA_SERVER_PULL_MODELS_ENABLED=true&lt;/code&gt;): First startup may take several minutes downloading models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Pull timeout&lt;/strong&gt; (&lt;code&gt;OLLAMA_SERVER_PULL_MODELS_TIMEOUT=900&lt;/code&gt;): 15 minutes in seconds&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Static Config&lt;/strong&gt;: Disable both flags and specify models in config file for fastest startup&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Creating Custom Ollama Models with Extended Context&lt;/h4&gt; 
&lt;p&gt;PentAGI requires models with larger context windows than the default Ollama configurations. You need to create custom models with increased &lt;code&gt;num_ctx&lt;/code&gt; parameter through Modelfiles. While typical agent workflows consume around 64K tokens, PentAGI uses 110K context size for safety margin and handling complex penetration testing scenarios.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: The &lt;code&gt;num_ctx&lt;/code&gt; parameter can only be set during model creation via Modelfile - it cannot be changed after model creation or overridden at runtime.&lt;/p&gt; 
&lt;h5&gt;Example: Qwen3 32B FP16 with Extended Context&lt;/h5&gt; 
&lt;p&gt;Create a Modelfile named &lt;code&gt;Modelfile_qwen3_32b_fp16_tc&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-dockerfile&quot;&gt;FROM qwen3:32b-fp16
PARAMETER num_ctx 110000
PARAMETER temperature 0.3
PARAMETER top_p 0.8
PARAMETER min_p 0.0
PARAMETER top_k 20
PARAMETER repeat_penalty 1.1
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Build the custom model:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ollama create qwen3:32b-fp16-tc -f Modelfile_qwen3_32b_fp16_tc
&lt;/code&gt;&lt;/pre&gt; 
&lt;h5&gt;Example: QwQ 32B FP16 with Extended Context&lt;/h5&gt; 
&lt;p&gt;Create a Modelfile named &lt;code&gt;Modelfile_qwq_32b_fp16_tc&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-dockerfile&quot;&gt;FROM qwq:32b-fp16
PARAMETER num_ctx 110000
PARAMETER temperature 0.2
PARAMETER top_p 0.7
PARAMETER min_p 0.0
PARAMETER top_k 40
PARAMETER repeat_penalty 1.2
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Build the custom model:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ollama create qwq:32b-fp16-tc -f Modelfile_qwq_32b_fp16_tc
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The QwQ 32B FP16 model requires approximately &lt;strong&gt;71.3 GB VRAM&lt;/strong&gt; for inference. Ensure your system has sufficient GPU memory before attempting to use this model.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;These custom models are referenced in the pre-built provider configuration files (&lt;code&gt;ollama-qwen332b-fp16-tc.provider.yml&lt;/code&gt; and &lt;code&gt;ollama-qwq32b-fp16-tc.provider.yml&lt;/code&gt;) that are included in the Docker image at &lt;code&gt;/opt/pentagi/conf/&lt;/code&gt;.&lt;/p&gt; 
&lt;h3&gt;OpenAI Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with OpenAI&#39;s comprehensive model lineup, featuring advanced reasoning capabilities with extended chain-of-thought, agentic models with enhanced tool integration, and specialized code models for security engineering.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OPEN_AI_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;API key for OpenAI services&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;OPEN_AI_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://api.openai.com/v1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;OpenAI API endpoint&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Basic OpenAI setup
OPEN_AI_KEY=your_openai_api_key
OPEN_AI_SERVER_URL=https://api.openai.com/v1

# Using with proxy for enhanced security
OPEN_AI_KEY=your_openai_api_key
PROXY_URL=http://your-proxy:8080
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 32 OpenAI models with tool calling, streaming, reasoning modes, and prompt caching. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration. Models marked &lt;code&gt;⚠️&lt;/code&gt; are deprecated by OpenAI and kept only for backward compatibility with agent configs already pinned to those names — avoid them for new assignments.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;GPT-5.6 Series - Latest Frontier (Feb 2026 knowledge cutoff, 1.05M context, 128K max output)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Reasoning Effort&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$5.00/$30.00/$0.50&lt;/td&gt; 
   &lt;td&gt;Frontier model for complex professional work, most demanding autonomous pentesting, sophisticated exploit chain development, deep multi-stage attack simulation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.6-terra&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$2.50/$15.00/$0.25&lt;/td&gt; 
   &lt;td&gt;Balances intelligence and cost; multi-phase security assessments, coordinated multi-tool pentesting (generator/refiner/adviser/coder default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.6-luna&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$1.00/$6.00/$0.10&lt;/td&gt; 
   &lt;td&gt;Optimized for cost-sensitive, high-volume workloads; rapid reconnaissance, bulk vulnerability scanning, real-time monitoring&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GPT-5.5 Series - Frontier (Dec 2025 knowledge cutoff, 1.05M context, 128K max output)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Reasoning Effort&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;none/low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$5.00/$30.00/$0.50&lt;/td&gt; 
   &lt;td&gt;New class of intelligence for coding and professional work; complex security research, advanced autonomous pentesting&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.5-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$30.00/$180.00/$0.00&lt;/td&gt; 
   &lt;td&gt;Uses more compute for smarter, more precise responses; no cached-input discount; mission-critical security research, zero-day discovery&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GPT-5.4 Series - Advanced Reasoning at Scale (1M context)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Reasoning Effort&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.4&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$2.50/$15.00/$0.25&lt;/td&gt; 
   &lt;td&gt;Best intelligence at scale for agentic, coding, and professional workflows; maximum cognitive depth for pentesting&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.4-mini&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$0.75/$4.50/$0.075&lt;/td&gt; 
   &lt;td&gt;Strongest mini model for coding, computer use, subagents (primary_agent/assistant/reflector/installer/pentester default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.4-nano&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$0.20/$1.25/$0.02&lt;/td&gt; 
   &lt;td&gt;Cheapest GPT-5.4-class model for simple, high-volume tasks (simple/simple_json/searcher/enricher default)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GPT-5.2 Series - Previous Flagship Agentic&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Reasoning Effort&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.2&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;low/medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$1.75/$14.00/$0.175&lt;/td&gt; 
   &lt;td&gt;Superseded by 5.4/5.6; autonomous security research, complex exploit chain development&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.2-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;medium/high/xhigh&lt;/td&gt; 
   &lt;td&gt;$21.00/$168.00/$0.00&lt;/td&gt; 
   &lt;td&gt;Superior agentic coding and long-context performance, mission-critical security research, zero-day discovery&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GPT-5/5.1 Series - Advanced Agentic Models&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.25/$10.00/$0.125&lt;/td&gt; 
   &lt;td&gt;Autonomous security research, exploit chain development, coordinating multi-tool pentesting workflows&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.25/$10.00/$0.125&lt;/td&gt; 
   &lt;td&gt;Bridges GPT-5 and GPT-5.2 with faster responses; balanced penetration testing with strong tool coordination&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ (high)&lt;/td&gt; 
   &lt;td&gt;$15.00/$120.00/$0.00&lt;/td&gt; 
   &lt;td&gt;Reduced hallucinations, exceptional accuracy, critical security operations&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5-mini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.25/$2.00/$0.025&lt;/td&gt; 
   &lt;td&gt;Automated vulnerability analysis, exploit generation with strong function calling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5-nano&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.05/$0.40/$0.005&lt;/td&gt; 
   &lt;td&gt;High-throughput security scanning, reconnaissance, real-time monitoring&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GPT-4.1 Series - Enhanced Intelligence (Non-Reasoning)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-4.1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$2.00/$8.00/$0.50&lt;/td&gt; 
   &lt;td&gt;Superior function calling, complex threat analysis, sophisticated exploit development&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-4.1-mini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.40/$1.60/$0.10&lt;/td&gt; 
   &lt;td&gt;Routine security assessments, automated code analysis (no longer used in default configuration)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GPT-4o Series - Multimodal (Non-Reasoning)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-4o-mini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.15/$0.60/$0.075&lt;/td&gt; 
   &lt;td&gt;Compact multimodal with strong function calling, high-frequency scanning, cost-effective bulk operations&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;o-Series - Advanced Reasoning Models (Current)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;o3&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$2.00/$8.00/$0.50&lt;/td&gt; 
   &lt;td&gt;Succeeded by GPT-5; multi-stage attack chains, deep vulnerability analysis&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;o3-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$20.00/$80.00/$0.00&lt;/td&gt; 
   &lt;td&gt;More compute for better responses; zero-day research, critical security investigations&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Deprecated Models - Kept for Backward Compatibility ⚠️&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;These models were marked deprecated by OpenAI. PentAGI keeps them defined only so that pre-existing agent configs pinned to these names keep working; do not assign them to new agents.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Notes&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.2-codex&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.75/$14.00/$0.175&lt;/td&gt; 
   &lt;td&gt;Superseded code-specialized model; use &lt;code&gt;gpt-5.6-terra&lt;/code&gt;/&lt;code&gt;gpt-5.4-mini&lt;/code&gt; instead&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.1-codex-max&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.25/$10.00/$0.125&lt;/td&gt; 
   &lt;td&gt;Superseded; enhanced reasoning for coding workflows&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.1-codex&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.25/$10.00/$0.125&lt;/td&gt; 
   &lt;td&gt;Superseded standard code-optimized model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5-codex&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.25/$10.00/$0.125&lt;/td&gt; 
   &lt;td&gt;Superseded foundational code-specialized model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-5.1-codex-mini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.25/$2.00/$0.025&lt;/td&gt; 
   &lt;td&gt;Superseded compact code model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;codex-mini-latest&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.50/$6.00/$0.375&lt;/td&gt; 
   &lt;td&gt;Superseded compact code model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-4o&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$2.50/$10.00/$1.25&lt;/td&gt; 
   &lt;td&gt;Superseded by GPT-5.x/5.6 series multimodal flagship&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gpt-4.1-nano&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.10/$0.40/$0.025&lt;/td&gt; 
   &lt;td&gt;Superseded ultra-fast lightweight model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;o3-mini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.10/$4.40/$0.55&lt;/td&gt; 
   &lt;td&gt;Superseded compact reasoning model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;o4-mini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.10/$4.40/$0.275&lt;/td&gt; 
   &lt;td&gt;Succeeded by &lt;code&gt;gpt-5-mini&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;o1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$15.00/$60.00/$7.50&lt;/td&gt; 
   &lt;td&gt;Superseded premier reasoning model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;o1-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$150.00/$600.00/$0.00&lt;/td&gt; 
   &lt;td&gt;Superseded, highest cost point of the o-series&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Reasoning models include thinking tokens in output pricing.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;GPT-5/5.1/5.2 Models - Trusted Access Required&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;The original GPT-5, GPT-5.1, and GPT-5.2 models (&lt;code&gt;gpt-5&lt;/code&gt;, &lt;code&gt;gpt-5.1&lt;/code&gt;, &lt;code&gt;gpt-5.2&lt;/code&gt;, &lt;code&gt;gpt-5-pro&lt;/code&gt;, &lt;code&gt;gpt-5.2-pro&lt;/code&gt;, and all deprecated Codex variants) work &lt;strong&gt;unstably with PentAGI&lt;/strong&gt; and may trigger OpenAI&#39;s cybersecurity safety mechanisms without verified access. This does not affect the newer GPT-5.4/5.5/5.6 series used in PentAGI&#39;s default configuration below.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;To use these models reliably:&lt;/strong&gt;&lt;/p&gt; 
 &lt;ol&gt; 
  &lt;li&gt;&lt;strong&gt;Individual users&lt;/strong&gt;: Verify your identity at &lt;a href=&quot;https://chatgpt.com/cyber&quot;&gt;chatgpt.com/cyber&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Enterprise teams&lt;/strong&gt;: Request trusted access through your OpenAI representative&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Security researchers&lt;/strong&gt;: Apply for the &lt;a href=&quot;https://openai.com/form/cybersecurity-grant-program/&quot;&gt;Cybersecurity Grant Program&lt;/a&gt; (includes $10M in API credits)&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;p&gt;&lt;strong&gt;Recommended alternatives without verification:&lt;/strong&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Use PentAGI&#39;s defaults — &lt;code&gt;gpt-5.4-mini&lt;/code&gt;/&lt;code&gt;gpt-5.4-nano&lt;/code&gt;/&lt;code&gt;gpt-5.6-terra&lt;/code&gt; — which work out of the box&lt;/li&gt; 
  &lt;li&gt;Use &lt;code&gt;o3&lt;/code&gt;/&lt;code&gt;o3-pro&lt;/code&gt; for reasoning tasks&lt;/li&gt; 
  &lt;li&gt;Use &lt;code&gt;gpt-4.1&lt;/code&gt; series for general intelligence and function calling without reasoning&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;Reasoning Configuration&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Reasoning forced off by default&lt;/strong&gt;: every default agent assigned &lt;code&gt;gpt-5.4-mini&lt;/code&gt; or &lt;code&gt;gpt-5.6-terra&lt;/code&gt; (primary_agent, assistant, generator, refiner, adviser, reflector, coder, installer, pentester) sets &lt;code&gt;reasoning: {mode: off}&lt;/code&gt; — this genuinely disables reasoning, it is not simply &quot;low effort&quot;. PentAGI calls OpenAI exclusively through &lt;code&gt;/v1/chat/completions&lt;/code&gt; (never &lt;code&gt;/v1/responses&lt;/code&gt;), and this endpoint rejects requests that combine function tools with these models&#39; default-on thinking; forcing thinking off is required for tool calls to work reliably (see the investigation notes in &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/pkg/providers/openai/config.yml&quot;&gt;&lt;code&gt;backend/pkg/providers/openai/config.yml&lt;/code&gt;&lt;/a&gt;).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;No override needed for &lt;code&gt;gpt-5.4-nano&lt;/code&gt;&lt;/strong&gt;: used for simple, simple_json, searcher, and enricher, this tier does not default to thinking on, so tools attach without conflict and no &lt;code&gt;reasoning&lt;/code&gt; override is required.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Manual tuning available&lt;/strong&gt;: outside the default assignments, GPT-5.6/5.5/5.4/5.2 series models expose explicit reasoning effort levels (&lt;code&gt;low&lt;/code&gt;/&lt;code&gt;medium&lt;/code&gt;/&lt;code&gt;high&lt;/code&gt;/&lt;code&gt;xhigh&lt;/code&gt;, plus &lt;code&gt;none&lt;/code&gt; on GPT-5.5) for custom agent configs that need variable reasoning depth with tool calling disabled or via &lt;code&gt;/v1/responses&lt;/code&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Reasoning&lt;/strong&gt;: GPT-5.4/5.5/5.6 and o-series models with chain-of-thought for complex security analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Agentic Intelligence&lt;/strong&gt;: GPT-5.4/5.5/5.6 series with enhanced tool integration, million-token context windows, and autonomous capabilities&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Prompt Caching&lt;/strong&gt;: Cost reduction on repeated context (10-50% of input price)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Code Specialization&lt;/strong&gt;: Legacy Codex models remain available (deprecated) for vulnerability discovery and exploit development in pinned configs&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multimodal Support&lt;/strong&gt;: &lt;code&gt;gpt-4o-mini&lt;/code&gt; for vision-based security assessments&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Robust function calling across all models for pentesting tool orchestration&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time response streaming for interactive workflows&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Proven Track Record&lt;/strong&gt;: Industry-leading models with CVE discoveries and real-world security applications&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Anthropic Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with Anthropic&#39;s Claude models, featuring advanced extended thinking capabilities, exceptional safety mechanisms, and sophisticated understanding of complex security contexts with prompt caching.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;API key for Anthropic services&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;ANTHROPIC_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://api.anthropic.com/v1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic API endpoint&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Basic Anthropic setup
ANTHROPIC_API_KEY=your_anthropic_api_key
ANTHROPIC_SERVER_URL=https://api.anthropic.com/v1

# Using with proxy for secure environments
ANTHROPIC_API_KEY=your_anthropic_api_key
PROXY_URL=http://your-proxy:8080
&lt;/code&gt;&lt;/pre&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Google Vertex AI for Claude models&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;PentAGI does not currently expose a dedicated Google Vertex AI configuration path for Anthropic Claude in &lt;code&gt;.env&lt;/code&gt;. There is no separate Vertex AI API key field at this time, and the existing Anthropic variables (&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;, &lt;code&gt;ANTHROPIC_SERVER_URL&lt;/code&gt;) target the direct Anthropic API. Supported routes for Claude are:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Direct Anthropic API&lt;/strong&gt;: &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; and &lt;code&gt;ANTHROPIC_SERVER_URL&lt;/code&gt; (see above).&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;AWS Bedrock&lt;/strong&gt;: &lt;code&gt;BEDROCK_*&lt;/code&gt; variables (see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#aws-bedrock-provider-configuration&quot;&gt;AWS Bedrock Provider Configuration&lt;/a&gt;).&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;If you need to use Vertex AI today, the safest supported workaround is to expose Vertex AI through an OpenAI-compatible proxy or gateway that translates Vertex AI calls into the Chat Completions format while preserving the chat and tool-call behavior PentAGI relies on, then point the Custom LLM provider at that gateway via &lt;code&gt;LLM_SERVER_URL&lt;/code&gt;, &lt;code&gt;LLM_SERVER_KEY&lt;/code&gt;, and &lt;code&gt;LLM_SERVER_MODEL&lt;/code&gt;. This path is only as reliable as the gateway you choose.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 9 Claude models with tool calling, streaming, extended thinking, adaptive thinking, and prompt caching. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Claude 5 Series - Newest Models (2026)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Release Date&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache R/W)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-sonnet-5&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Jul 2026&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00/$0.30/$3.75&lt;/td&gt; 
   &lt;td&gt;Best combination of speed and intelligence for coding, agents, and professional work at scale. Adaptive thinking only (manual budget thinking rejected); sampling parameters not supported. Default model for primary agent, assistant, coder, adviser, installer, pentester&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-fable-5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Jun 2026&lt;/td&gt; 
   &lt;td&gt;$10.00/$50.00/$1.00/$12.50&lt;/td&gt; 
   &lt;td&gt;Anthropic&#39;s most capable widely released model for long-running agents and the most demanding reasoning workloads. Adaptive thinking always on (budget thinking and an explicit disable are rejected); sampling parameters not supported&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Claude 4 Series&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Release Date&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache R/W)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-opus-4-8&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;May 2026&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00/$0.50/$6.25&lt;/td&gt; 
   &lt;td&gt;Flagship for coding, agents, and deep reasoning in enterprise security workflows. Adaptive thinking only — budget thinking and sampling params (temperature/top_p/top_k) are rejected. Default model for generator and refiner; most demanding exploit development and multi-stage attack simulation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-opus-4-7&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Apr 2026&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00/$0.50/$6.25&lt;/td&gt; 
   &lt;td&gt;Advanced software engineering and long-running agentic security analysis. Adaptive thinking only (manual budget thinking rejected)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-sonnet-4-6&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Feb 2026&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00/$0.30/$3.75&lt;/td&gt; 
   &lt;td&gt;Best speed/intelligence balance with adaptive thinking. Multi-phase security assessments, intelligent vulnerability analysis, real-time threat hunting&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-opus-4-6&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Feb 2026&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00/$0.50/$6.25&lt;/td&gt; 
   &lt;td&gt;Most intelligent model for autonomous agents and coding. Extended + adaptive thinking for complex exploit development, multi-stage attack simulation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-haiku-4-5&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;Oct 2025&lt;/td&gt; 
   &lt;td&gt;$1.00/$5.00/$0.10/$1.25&lt;/td&gt; 
   &lt;td&gt;Fast and efficient model with exceptional function calling and low latency, no thinking support. Default model for simple, simple_json, reflector, searcher, enricher; high-frequency scanning, real-time monitoring, bulk automated testing&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Legacy Models - Still Supported&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Release Date&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache R/W)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-sonnet-4-5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Sep 2025&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00/$0.30/$3.75&lt;/td&gt; 
   &lt;td&gt;State-of-the-art reasoning (superseded by sonnet-4-6/sonnet-5). Sophisticated penetration testing, advanced threat analysis&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;claude-opus-4-5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;Nov 2025&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00/$0.50/$6.25&lt;/td&gt; 
   &lt;td&gt;Ultimate reasoning (superseded by opus-4-6/4-7/4-8). Critical security research, zero-day discovery, red team operations&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Cache pricing includes both Read and Write costs.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Extended Thinking Configuration&lt;/strong&gt; (default agent config, see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/pkg/providers/anthropic/config.yml&quot;&gt;&lt;code&gt;backend/pkg/providers/anthropic/config.yml&lt;/code&gt;&lt;/a&gt;):&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Generator / Refiner&lt;/strong&gt; (&lt;code&gt;claude-opus-4-8&lt;/code&gt;): adaptive reasoning at &lt;code&gt;xhigh&lt;/code&gt;/&lt;code&gt;high&lt;/code&gt; effort for maximum reasoning depth on complex exploit development&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Primary agent, assistant, coder, adviser, installer, pentester&lt;/strong&gt; (&lt;code&gt;claude-sonnet-5&lt;/code&gt;): adaptive reasoning (adviser at &lt;code&gt;xhigh&lt;/code&gt; effort) for balanced code analysis and vulnerability research&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Reflector, searcher&lt;/strong&gt; (&lt;code&gt;claude-haiku-4-5&lt;/code&gt;): fixed reasoning budget of 1024 tokens for focused reasoning on specific tasks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Simple, simple_json, enricher&lt;/strong&gt; (&lt;code&gt;claude-haiku-4-5&lt;/code&gt;): no thinking, optimized for speed&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Thinking&lt;/strong&gt;: All Claude 4.5+ models support configurable chain-of-thought reasoning depths for complex security analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Adaptive Thinking&lt;/strong&gt;: Claude 4.6 series (Opus/Sonnet) dynamically adjusts reasoning depth based on task complexity; Claude Opus 4.7/4.8 and the Claude 5 series (Sonnet/Fable) are adaptive-thinking-only (manual budget thinking and sampling parameters are rejected with HTTP 400)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Prompt Caching&lt;/strong&gt;: Significant cost reduction with separate read/write pricing (10% read, 125% write of input)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Context Window&lt;/strong&gt;: 200K tokens standard, up to 1M tokens (beta) for Claude Opus/Sonnet 4.6 for comprehensive codebase analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Robust function calling with exceptional accuracy for security tool orchestration&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time response streaming for interactive penetration testing workflows&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Safety-First Design&lt;/strong&gt;: Built-in safety mechanisms ensuring responsible security testing practices&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multimodal Support&lt;/strong&gt;: Vision capabilities in latest models for screenshot analysis and UI security assessment&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Constitutional AI&lt;/strong&gt;: Advanced safety training providing reliable and ethical security guidance&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Google AI (Gemini) Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with Google&#39;s Gemini models through the Google AI API, offering state-of-the-art multimodal reasoning capabilities with extended thinking and context caching.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;API key for Google AI services&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GEMINI_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://generativelanguage.googleapis.com&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Google AI API endpoint&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Basic Gemini setup
GEMINI_API_KEY=your_gemini_api_key
GEMINI_SERVER_URL=https://generativelanguage.googleapis.com

# Using with proxy
GEMINI_API_KEY=your_gemini_api_key
PROXY_URL=http://your-proxy:8080
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 9 Gemini models with tool calling, streaming, thinking modes, and context caching. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Gemini 3.5 Series - Latest Stable Flash (May 2026)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-3.5-flash&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$1.50/$9.00/$0.15&lt;/td&gt; 
   &lt;td&gt;Most intelligent Flash model with sustained frontier performance on agentic and coding tasks, superior search and grounding&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Gemini 3.1 Series - Stable Flash-Lite + Pro Preview (Feb-May 2026)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$2.00/$12.00/$0.20&lt;/td&gt; 
   &lt;td&gt;Latest flagship with refined thinking, improved token efficiency, optimized for software engineering and agentic workflows&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-3.1-pro-preview-customtools&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$2.00/$12.00/$0.20&lt;/td&gt; 
   &lt;td&gt;Custom tools endpoint optimized for bash and custom tools (view_file, search_code) prioritization&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-3.1-flash-lite&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$0.25/$1.50/$0.025&lt;/td&gt; 
   &lt;td&gt;Most cost-efficient stable multimodal model, frontier-class performance for high-volume agentic tasks and low-latency applications&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Gemini 2.5 Series - Advanced Thinking Models (active until October 16, 2026)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-2.5-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$1.25/$10.00/$0.125&lt;/td&gt; 
   &lt;td&gt;State-of-the-art for complex coding and reasoning, sophisticated threat modeling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-2.5-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$0.30/$2.50/$0.03&lt;/td&gt; 
   &lt;td&gt;First hybrid reasoning model with thinking budgets, best price-performance for large-scale assessments&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini-2.5-flash-lite&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$0.10/$0.40/$0.01&lt;/td&gt; 
   &lt;td&gt;Smallest and most cost-effective for at-scale usage, high-throughput scanning&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Gemma 4 Open-Source Models (Apache 2.0, Free Tier)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemma-4-31b-it&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;256K&lt;/td&gt; 
   &lt;td&gt;Free/Free/Free&lt;/td&gt; 
   &lt;td&gt;Largest open-source Gemma 4 dense model (~31B params), multimodal text+image, 140+ languages, on-premises security operations&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;256K&lt;/td&gt; 
   &lt;td&gt;Free/Free/Free&lt;/td&gt; 
   &lt;td&gt;MoE architecture (~26B total / ~3.8B active params), highly efficient inference on consumer GPUs for on-premises high-throughput scanning&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens (Standard Paid tier). Context window is input token limit.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Gemini 2.5 Series Shutdown&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;code&gt;gemini-2.5-pro&lt;/code&gt;, &lt;code&gt;gemini-2.5-flash&lt;/code&gt;, and &lt;code&gt;gemini-2.5-flash-lite&lt;/code&gt; will be &lt;strong&gt;shut down on October 16, 2026&lt;/strong&gt;. Recommended migrations:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;gemini-2.5-pro&lt;/code&gt; → &lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt; (same $2.00 input pricing tier)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;gemini-2.5-flash&lt;/code&gt; → &lt;code&gt;gemini-3.5-flash&lt;/code&gt; (improved frontier capabilities)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;gemini-2.5-flash-lite&lt;/code&gt; → &lt;code&gt;gemini-3.1-flash-lite&lt;/code&gt; (same $0.25 input pricing)&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;Default Model Assignments (config.yml)&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt;&lt;/strong&gt; - &lt;code&gt;primary_agent&lt;/code&gt;, &lt;code&gt;assistant&lt;/code&gt;, &lt;code&gt;generator&lt;/code&gt;, &lt;code&gt;refiner&lt;/code&gt;, &lt;code&gt;adviser&lt;/code&gt;, &lt;code&gt;coder&lt;/code&gt;, &lt;code&gt;pentester&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;code&gt;gemini-3.5-flash&lt;/code&gt;&lt;/strong&gt; - &lt;code&gt;reflector&lt;/code&gt;, &lt;code&gt;searcher&lt;/code&gt;, &lt;code&gt;enricher&lt;/code&gt;, &lt;code&gt;installer&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;code&gt;gemini-3.1-flash-lite&lt;/code&gt;&lt;/strong&gt; - &lt;code&gt;simple&lt;/code&gt;, &lt;code&gt;simple_json&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Thinking&lt;/strong&gt;: Step-by-step reasoning for complex security analysis (all Gemini 3.x, 2.5 series, and Gemma 4 with toggleable thinking)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Context Caching&lt;/strong&gt;: Significant cost reduction on repeated context (10% of input price for most models)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ultra-Long Context&lt;/strong&gt;: 1M tokens for Gemini chat models, 256K tokens for Gemma 4 open-source models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multimodal Support&lt;/strong&gt;: Text, image, video, audio, and PDF processing for comprehensive assessments&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Seamless integration with 20+ pentesting tools via function calling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time response streaming for interactive security workflows&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Code Execution&lt;/strong&gt;: Built-in code execution for offensive tool testing and exploit validation&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Search Grounding&lt;/strong&gt;: Google Search integration for threat intelligence and CVE research&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;File Search&lt;/strong&gt;: Document retrieval and RAG capabilities for knowledge-based assessments&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Batch API&lt;/strong&gt;: 50% cost reduction for non-real-time batch processing&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Custom Tools Endpoint&lt;/strong&gt;: Dedicated &lt;code&gt;gemini-3.1-pro-preview-customtools&lt;/code&gt; route for tool-heavy agentic workflows that prefer registered tools over bash&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Reasoning Effort Levels&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;High&lt;/strong&gt;: Maximum thinking depth for complex multi-step analysis (generator)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Medium&lt;/strong&gt;: Balanced reasoning for general agentic tasks (primary_agent, assistant, refiner, adviser)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Low&lt;/strong&gt;: Efficient thinking for focused tasks (coder, installer, pentester)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;AWS Bedrock Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with Amazon Bedrock, offering access to 20+ foundation models from leading AI companies including Anthropic, Amazon, Cohere, DeepSeek, OpenAI, Qwen, Mistral, and Moonshot.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_REGION&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;us-east-1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;AWS region for Bedrock service&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_DEFAULT_AUTH&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Use AWS SDK default credential chain (environment, EC2 role, ~/.aws/credentials) - highest priority&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_BEARER_TOKEN&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Bearer token authentication - priority over static credentials&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_ACCESS_KEY_ID&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;AWS access key ID for static credentials&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_SECRET_ACCESS_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;AWS secret access key for static credentials&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_SESSION_TOKEN&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;AWS session token for temporary credentials (optional, used with static credentials)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Custom Bedrock endpoint (VPC endpoints, local testing)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;BEDROCK_CONFIG_PATH&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Path to a custom YAML provider config file (overrides the built-in default config for model/pricing definitions)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Authentication Priority&lt;/strong&gt;: &lt;code&gt;BEDROCK_DEFAULT_AUTH&lt;/code&gt; → &lt;code&gt;BEDROCK_BEARER_TOKEN&lt;/code&gt; → &lt;code&gt;BEDROCK_ACCESS_KEY_ID&lt;/code&gt;+&lt;code&gt;BEDROCK_SECRET_ACCESS_KEY&lt;/code&gt;&lt;/p&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Recommended: Default AWS SDK authentication (EC2/ECS/Lambda roles)
BEDROCK_REGION=us-east-1
BEDROCK_DEFAULT_AUTH=true

# Bearer token authentication (AWS STS, custom auth)
BEDROCK_REGION=us-east-1
BEDROCK_BEARER_TOKEN=your_bearer_token

# Static credentials (development, testing)
BEDROCK_REGION=us-east-1
BEDROCK_ACCESS_KEY_ID=your_aws_access_key
BEDROCK_SECRET_ACCESS_KEY=your_aws_secret_key

# With proxy and custom endpoint
BEDROCK_REGION=us-east-1
BEDROCK_DEFAULT_AUTH=true
BEDROCK_SERVER_URL=https://bedrock-runtime.us-east-1.vpce-xxx.amazonaws.com
PROXY_URL=http://your-proxy:8080
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Custom Provider Config and Models (advanced)&lt;/h4&gt; 
&lt;p&gt;By default the Bedrock provider uses a per-agent config and model catalog compiled into the binary. One optional path overrides them without rebuilding:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;BEDROCK_CONFIG_PATH&lt;/code&gt; — a YAML file (same shape as the other provider configs) that &lt;strong&gt;replaces&lt;/strong&gt; the built-in per-agent model/price assignments. See &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/bedrock-glm-flash.provider.yml&quot;&gt;&lt;code&gt;examples/configs/bedrock-glm-flash.provider.yml&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;This is useful to expose a Bedrock model newer than the compiled-in catalog — for example &lt;a href=&quot;http://Z.AI&quot;&gt;Z.AI&lt;/a&gt;&#39;s &lt;code&gt;zai.glm-4.7-flash&lt;/code&gt;. Use the exact Model ID from the model&#39;s AWS Bedrock detail page; add a &lt;code&gt;us.&lt;/code&gt;/&lt;code&gt;eu.&lt;/code&gt;/&lt;code&gt;apac.&lt;/code&gt; inference-profile prefix only when that page marks the model as requiring cross-region inference (&lt;code&gt;zai.glm-4.7-flash&lt;/code&gt; is In-Region, so it is used as-is, with no prefix).&lt;/p&gt; 
&lt;p&gt;With Docker Compose, set the host-side mount source and the in-container path together:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# host file mounted into the container at /opt/pentagi/conf/bedrock.provider.yml
PENTAGI_BEDROCK_CONFIG_PATH=./examples/configs/bedrock-glm-flash.provider.yml
# tell the backend to read the mounted file
BEDROCK_CONFIG_PATH=/opt/pentagi/conf/bedrock.provider.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 24 AWS Bedrock models with tool calling, streaming, and multimodal capabilities. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Provider&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Multimodal&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.amazon.nova-2-lite-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Amazon Nova&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.33/$2.75&lt;/td&gt; 
   &lt;td&gt;Adaptive reasoning, efficient thinking&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.amazon.nova-premier-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Amazon Nova&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$2.50/$12.50&lt;/td&gt; 
   &lt;td&gt;Complex reasoning, advanced analysis&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.amazon.nova-pro-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Amazon Nova&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.80/$3.20&lt;/td&gt; 
   &lt;td&gt;Balanced accuracy, speed, cost&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.amazon.nova-lite-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Amazon Nova&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.06/$0.24&lt;/td&gt; 
   &lt;td&gt;Fast processing, high-volume operations&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.amazon.nova-micro-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Amazon Nova&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.035/$0.14&lt;/td&gt; 
   &lt;td&gt;Ultra-low latency, real-time monitoring&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-opus-4-8&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00&lt;/td&gt; 
   &lt;td&gt;Flagship coding/agents/deep reasoning; adaptive thinking only (sampling params rejected)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-opus-4-7&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00&lt;/td&gt; 
   &lt;td&gt;Advanced engineering, long-running agents; adaptive thinking only&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-opus-4-6-v1&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00&lt;/td&gt; 
   &lt;td&gt;World-class coding, enterprise agents&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-sonnet-4-6&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00&lt;/td&gt; 
   &lt;td&gt;Frontier intelligence, enterprise scale&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-opus-4-5-20251101-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$5.00/$25.00&lt;/td&gt; 
   &lt;td&gt;Multi-day software development&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-haiku-4-5-20251001-v1:0&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.00/$5.00&lt;/td&gt; 
   &lt;td&gt;Near-frontier performance, high speed&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-sonnet-4-5-20250929-v1:0&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00&lt;/td&gt; 
   &lt;td&gt;Real-world agents, coding excellence&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-sonnet-4-20250514-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00&lt;/td&gt; 
   &lt;td&gt;Balanced performance, production-ready&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;us.anthropic.claude-3-5-haiku-20241022-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Anthropic&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.80/$4.00&lt;/td&gt; 
   &lt;td&gt;Fastest model, cost-effective scanning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cohere.command-r-plus-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Cohere&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$3.00/$15.00&lt;/td&gt; 
   &lt;td&gt;Large-scale operations, superior RAG&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;deepseek.v3.2&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;DeepSeek&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.58/$1.68&lt;/td&gt; 
   &lt;td&gt;Long-context reasoning, efficiency&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;openai.gpt-oss-120b-1:0&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;OpenAI (OSS)&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.15/$0.60&lt;/td&gt; 
   &lt;td&gt;Strong reasoning, scientific analysis&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;openai.gpt-oss-20b-1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;OpenAI (OSS)&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.07/$0.30&lt;/td&gt; 
   &lt;td&gt;Efficient coding, software development&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen.qwen3-next-80b-a3b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Qwen&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.15/$1.20&lt;/td&gt; 
   &lt;td&gt;Ultra-long context, flagship reasoning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen.qwen3-32b-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Qwen&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.15/$0.60&lt;/td&gt; 
   &lt;td&gt;Balanced reasoning, research use cases&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen.qwen3-coder-30b-a3b-v1:0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Qwen&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.15/$0.60&lt;/td&gt; 
   &lt;td&gt;Vibe coding, natural-language first&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen.qwen3-coder-next&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Qwen&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;$0.45/$1.80&lt;/td&gt; 
   &lt;td&gt;Tool use, function calling optimized&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;mistral.mistral-large-3-675b-instruct&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Mistral&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$4.00/$12.00&lt;/td&gt; 
   &lt;td&gt;Advanced multimodal, long-context&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshotai.kimi-k2.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Moonshot&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.60/$3.00&lt;/td&gt; 
   &lt;td&gt;Vision, language, code in one model&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Models with thinking/reasoning support additional compute costs during reasoning phase.&lt;/p&gt; 
&lt;h4&gt;Tested but Incompatible Models&lt;/h4&gt; 
&lt;p&gt;Some AWS Bedrock models were tested but are &lt;strong&gt;not supported&lt;/strong&gt; due to technical limitations:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model Family&lt;/th&gt; 
   &lt;th&gt;Reason for Incompatibility&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GLM (&lt;a href=&quot;http://Z.AI&quot;&gt;Z.AI&lt;/a&gt;)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Tool calling format incompatible with Converse API (expects string instead of JSON)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;AI21 Jamba&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Severe rate limits (1-2 req/min) prevent reliable testing and production use&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Meta Llama 3.3/3.1&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Unstable tool call result processing, causes unexpected failures in multi-turn workflows&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Mistral Magistral&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Tool calling not supported by the model&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Moonshot K2-Thinking&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Unstable streaming behavior with tool calls, unreliable in production&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Qwen3-VL&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Unstable streaming with tool calling, multimodal + tools combination fails intermittently&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Rate Limits &amp;amp; Quota Management&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;Default AWS Bedrock quotas for Claude models are &lt;strong&gt;extremely restrictive&lt;/strong&gt; (2-20 requests/minute for new accounts). For production penetration testing:&lt;/p&gt; 
 &lt;ol&gt; 
  &lt;li&gt;&lt;strong&gt;Request quota increases&lt;/strong&gt; through AWS Service Quotas console for models you plan to use&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Use Amazon Nova models&lt;/strong&gt; - higher default quotas and excellent performance&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Enable provisioned throughput&lt;/strong&gt; for consistent high-volume testing&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Monitor usage&lt;/strong&gt; - AWS throttles aggressively at quota limits&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;p&gt;Without quota increases, expect frequent delays and workflow interruptions.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Converse API Requirements&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;PentAGI uses Amazon Bedrock &lt;strong&gt;Converse API&lt;/strong&gt; for unified model access. All supported models require:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;✅ Converse/ConverseStream API support&lt;/li&gt; 
  &lt;li&gt;✅ Tool use (function calling) for penetration testing workflows&lt;/li&gt; 
  &lt;li&gt;✅ Streaming tool use for real-time feedback&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;Verify model capabilities at: &lt;a href=&quot;https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html&quot;&gt;AWS Bedrock Model Features&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Automatic Prompt Caching&lt;/strong&gt;: 40-70% cost reduction on repeated context (Claude 4.x models)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Thinking&lt;/strong&gt;: Step-by-step reasoning for complex security analysis (Claude, DeepSeek R1, OpenAI GPT)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multimodal Analysis&lt;/strong&gt;: Process screenshots, diagrams, video for comprehensive testing (Nova, Claude, Mistral, Kimi)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Seamless integration with 20+ pentesting tools via function calling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time response streaming for interactive security assessment workflows&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;DeepSeek Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with DeepSeek, providing access to advanced AI models with strong reasoning, coding capabilities, and context caching at competitive prices.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default Value&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DEEPSEEK_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;DeepSeek API key for authentication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DEEPSEEK_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://api.deepseek.com&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;DeepSeek API endpoint URL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DEEPSEEK_PROVIDER&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Provider prefix for LiteLLM integration (optional)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Direct API usage
DEEPSEEK_API_KEY=your_deepseek_api_key
DEEPSEEK_SERVER_URL=https://api.deepseek.com

# With LiteLLM proxy
DEEPSEEK_API_KEY=your_litellm_key
DEEPSEEK_SERVER_URL=http://litellm-proxy:4000
DEEPSEEK_PROVIDER=deepseek  # Adds prefix to model names (deepseek/deepseek-v4-flash) for LiteLLM
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 2 DeepSeek V4 models with tool calling, streaming, hybrid thinking/non-thinking modes, and context caching. Both models support thinking mode by default and can be switched to non-thinking mode via &lt;code&gt;extra_body&lt;/code&gt;. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ hybrid&lt;/td&gt; 
   &lt;td&gt;384K&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$0.14/$0.28/$0.0028&lt;/td&gt; 
   &lt;td&gt;Utility agents, general dialogue, fast tool calling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ hybrid&lt;/td&gt; 
   &lt;td&gt;384K&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$1.74/$3.48/$0.0145&lt;/td&gt; 
   &lt;td&gt;Advanced reasoning, complex logic, security analysis&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Cache pricing applies to prompt tokens served from cache (input cache hit, reduced to 1/10 of launch price since 2026-04-26). Both models support hybrid thinking — &lt;code&gt;thinking&lt;/code&gt; mode is enabled by default; pass &lt;code&gt;extra_body.thinking.type: disabled&lt;/code&gt; to switch to non-thinking mode for faster/cheaper responses.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Pricing Note (deepseek-v4-pro)&lt;/strong&gt;: The 75% promotional discount on &lt;code&gt;deepseek-v4-pro&lt;/code&gt; officially ended on 2026-05-31 15:59 UTC. The prices above reflect the standard post-promotional pricing. If you have legacy configurations using the discounted prices ($0.435/$0.87/$0.003625), update them to the current rates for accurate cost tracking.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;The legacy model names &lt;code&gt;deepseek-chat&lt;/code&gt; and &lt;code&gt;deepseek-reasoner&lt;/code&gt; are scheduled for deprecation by DeepSeek on 2026-07-24. Existing user configurations referencing the legacy names continue to work until then; the defaults above use the current V4 names. &lt;code&gt;deepseek-chat&lt;/code&gt; maps to &lt;code&gt;deepseek-v4-flash&lt;/code&gt; non-thinking mode; &lt;code&gt;deepseek-reasoner&lt;/code&gt; maps to &lt;code&gt;deepseek-v4-flash&lt;/code&gt; thinking mode.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Default Agent Configuration&lt;/strong&gt;:&lt;/p&gt; 
&lt;p&gt;Strategy: prefer &lt;code&gt;deepseek-v4-flash&lt;/code&gt; (12x cheaper input, 12x cheaper output) as the workhorse for utility/lightweight agents; reserve &lt;code&gt;deepseek-v4-pro&lt;/code&gt; for complex multi-step reasoning. The &lt;code&gt;installer&lt;/code&gt; agent runs on Flash with thinking enabled because environment setup tasks (shell commands, config edits) rarely require pro-level reasoning. Run A/B tests on your own workloads before promoting more agents to Pro.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Agent Role&lt;/th&gt; 
   &lt;th&gt;Default Model&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Reasoning Effort&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Temperature&lt;/th&gt; 
   &lt;th&gt;Top P&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Generator / Refiner&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;High&lt;/td&gt; 
   &lt;td&gt;32768&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coder&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;High&lt;/td&gt; 
   &lt;td&gt;20480&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Primary Agent / Assistant / Pentester&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;High&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Adviser (mentor/planner)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;High&lt;/td&gt; 
   &lt;td&gt;8192&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Installer&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;High&lt;/td&gt; 
   &lt;td&gt;12288&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
   &lt;td&gt;(auto)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Reflector / Searcher / Enricher&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;—&lt;/td&gt; 
   &lt;td&gt;4096&lt;/td&gt; 
   &lt;td&gt;0.5&lt;/td&gt; 
   &lt;td&gt;0.9&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Simple / Simple JSON&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;—&lt;/td&gt; 
   &lt;td&gt;2048&lt;/td&gt; 
   &lt;td&gt;0.3&lt;/td&gt; 
   &lt;td&gt;0.9&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: When thinking mode is enabled, DeepSeek silently ignores &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, &lt;code&gt;presence_penalty&lt;/code&gt;, and &lt;code&gt;frequency_penalty&lt;/code&gt;. The langchaingo client automatically nullifies &lt;code&gt;temperature&lt;/code&gt;/&lt;code&gt;top_p&lt;/code&gt; when &lt;code&gt;reasoning_effort&lt;/code&gt; is set, so they appear as &quot;(auto)&quot; in the table above. All thinking-enabled agents also explicitly pass &lt;code&gt;extra_body.thinking.type: enabled&lt;/code&gt; as defensive coding against future provider default changes.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Hybrid Thinking Modes&lt;/strong&gt;: Switch between thinking (deep reasoning) and non-thinking (fast) modes via &lt;code&gt;extra_body.thinking.type&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Automatic Prompt Caching&lt;/strong&gt;: Significant cost reduction on repeated context via cache-hit pricing (1/10 of launch price)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Thinking&lt;/strong&gt;: Reinforcement learning CoT for complex security analysis (both V4 models)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Strong Coding&lt;/strong&gt;: Optimized for code generation and exploit development&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Long Context&lt;/strong&gt;: 1M token context window with up to 384K output tokens&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Seamless integration with 20+ pentesting tools via function calling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time response streaming for interactive workflows&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multilingual&lt;/strong&gt;: Strong Chinese and English support&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Additional Features&lt;/strong&gt;: JSON Output, Chat Prefix Completion (beta), FIM/Fill-in-the-Middle Completion (non-thinking mode only)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Concurrency Limits&lt;/strong&gt;: &lt;code&gt;deepseek-v4-flash&lt;/code&gt;: 2500 concurrent requests; &lt;code&gt;deepseek-v4-pro&lt;/code&gt;: 500 concurrent requests.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;LiteLLM Integration&lt;/strong&gt;: Set &lt;code&gt;DEEPSEEK_PROVIDER=deepseek&lt;/code&gt; to enable model name prefixing when using default PentAGI configurations with LiteLLM proxy. Leave empty for direct API usage.&lt;/p&gt; 
&lt;h3&gt;GLM Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with GLM from Zhipu AI (&lt;a href=&quot;http://Z.AI&quot;&gt;Z.AI&lt;/a&gt;), providing advanced language models with MoE architecture, strong reasoning, and agentic capabilities developed by Tsinghua University.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default Value&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GLM_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;GLM API key for authentication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GLM_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://api.z.ai/api/paas/v4&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;GLM API endpoint URL (international)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GLM_PROVIDER&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Provider prefix for LiteLLM integration (optional)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Direct API usage (international endpoint)
GLM_API_KEY=your_glm_api_key
GLM_SERVER_URL=https://api.z.ai/api/paas/v4

# Alternative endpoints
GLM_SERVER_URL=https://open.bigmodel.cn/api/paas/v4  # China
GLM_SERVER_URL=https://api.z.ai/api/coding/paas/v4   # Coding-specific

# With LiteLLM proxy
GLM_API_KEY=your_litellm_key
GLM_SERVER_URL=http://litellm-proxy:4000
GLM_PROVIDER=zai  # Adds prefix to model names (zai/glm-4) for LiteLLM
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 14 GLM models with tool calling, streaming, hybrid thinking modes, and prompt caching. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration. Thinking is controlled via &lt;code&gt;extra_body.thinking.type&lt;/code&gt; (&quot;enabled&quot;/&quot;disabled&quot;); unlike Kimi, GLM is permissive about temperature in either mode.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;GLM-5.x Series - Latest Generation (200K context, 128K max output)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-5.2&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$1.40/$4.40/$0.26&lt;/td&gt; 
   &lt;td&gt;Newest flagship, improves on GLM-5.1. Supports explicit &lt;code&gt;reasoning_effort&lt;/code&gt; (high/max) (generator/refiner/adviser/coder/pentester default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-5.1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$1.40/$4.40/$0.26&lt;/td&gt; 
   &lt;td&gt;Long-horizon tasks: 8h sustained autonomous execution, Claude Opus 4.6-aligned coding&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$1.00/$3.20/$0.20&lt;/td&gt; 
   &lt;td&gt;Foundation for Agentic Engineering, MoE 744B/40B active, Claude Opus 4.5-level coding&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-5-turbo&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$1.20/$4.00/$0.24&lt;/td&gt; 
   &lt;td&gt;OpenClaw-native: optimized for tool invocation, persistent tasks, long-chain execution (primary_agent/assistant default)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GLM-4.7 Series - Premium with Interleaved Thinking&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.7&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$0.60/$2.20/$0.11&lt;/td&gt; 
   &lt;td&gt;Enhanced programming, stable multi-step reasoning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.7-flashx&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$0.07/$0.40/$0.01&lt;/td&gt; 
   &lt;td&gt;Ultra-cheap with priority GPU, but lower RPM limits (avoid for high-frequency use)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.7-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Hybrid&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;Free/Free/Free&lt;/td&gt; 
   &lt;td&gt;Free ~30B SOTA model, 1 concurrent request&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GLM-4.6 Series - Balanced with Auto-Thinking&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.6&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Auto&lt;/td&gt; 
   &lt;td&gt;200K&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$0.60/$2.20/$0.11&lt;/td&gt; 
   &lt;td&gt;Balanced, streaming tool calls, token-efficient&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GLM-4.5 Series - Unified Reasoning/Coding/Agents&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Auto&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;96K&lt;/td&gt; 
   &lt;td&gt;$0.60/$2.20/$0.11&lt;/td&gt; 
   &lt;td&gt;Unified, MoE 355B/32B active&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-x&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Auto&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;96K&lt;/td&gt; 
   &lt;td&gt;$2.20/$8.90/$0.45&lt;/td&gt; 
   &lt;td&gt;Ultra-fast premium, lowest latency&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-air&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ Auto&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;96K&lt;/td&gt; 
   &lt;td&gt;$0.20/$1.10/$0.03&lt;/td&gt; 
   &lt;td&gt;Cost-effective MoE 106B/12B (simple/simple_json/reflector/searcher/enricher/installer default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-airx&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Auto&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;96K&lt;/td&gt; 
   &lt;td&gt;$1.10/$4.50/$0.22&lt;/td&gt; 
   &lt;td&gt;Accelerated Air with priority GPU&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ Auto&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;96K&lt;/td&gt; 
   &lt;td&gt;Free/Free/Free&lt;/td&gt; 
   &lt;td&gt;Free with reasoning/coding/agents support&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;GLM-4 Legacy - Dense Architecture&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;glm-4-32b-0414-128k&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;16K&lt;/td&gt; 
   &lt;td&gt;$0.10/$0.10&lt;/td&gt; 
   &lt;td&gt;Ultra-budget dense 32B, parsing without reasoning&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Cache pricing is for prompt cache hit; cache storage is currently free per &lt;a href=&quot;http://Z.AI&quot;&gt;Z.AI&lt;/a&gt; promotion. GLM-4-32B has no cache support.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Default Agent Configuration&lt;/strong&gt;:&lt;/p&gt; 
&lt;p&gt;Strategy: &lt;code&gt;glm-5.2&lt;/code&gt; (newest flagship, $1.40 input) for critical reasoning, &lt;code&gt;glm-5-turbo&lt;/code&gt; (OpenClaw-native, agent-optimized) for orchestration, &lt;code&gt;glm-4.5-air&lt;/code&gt; (cheap MoE with hybrid thinking and reliable RPM) for all utility/installer agents. &lt;code&gt;glm-4.7-flashx&lt;/code&gt; is avoided as default due to lower RPM limits causing frequent 429 errors at high frequency.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Agent Role&lt;/th&gt; 
   &lt;th&gt;Default Model&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Temperature&lt;/th&gt; 
   &lt;th&gt;Top P&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Generator / Refiner&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-5.2&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;32768&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coder&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-5.2&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;20480&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Adviser / Pentester&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-5.2&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Primary Agent / Assistant&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-5-turbo&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Installer&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-air&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Simple / Reflector&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-air&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;0.6&lt;/td&gt; 
   &lt;td&gt;0.9&lt;/td&gt; 
   &lt;td&gt;8192&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Searcher / Enricher / Simple JSON&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;glm-4.5-air&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;0.6&lt;/td&gt; 
   &lt;td&gt;0.9&lt;/td&gt; 
   &lt;td&gt;4096&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Generator, refiner, and adviser additionally set &lt;code&gt;reasoning.effort: max&lt;/code&gt;, which layers &lt;code&gt;llms.WithReasoning(ReasoningMax, 0)&lt;/code&gt; on top of &lt;code&gt;extra_body.thinking.type=enabled&lt;/code&gt; — this &lt;code&gt;reasoning_effort&lt;/code&gt; parameter is only supported by &lt;code&gt;glm-5.2&lt;/code&gt;.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note on temperature&lt;/strong&gt;: GLM accepts both &lt;code&gt;1.0&lt;/code&gt; and &lt;code&gt;0.6&lt;/code&gt; in either thinking/non-thinking mode (per &lt;a href=&quot;http://Z.AI&quot;&gt;Z.AI&lt;/a&gt; docs). langchaingo&#39;s &lt;code&gt;IsReasoningModel&lt;/code&gt; matches &lt;code&gt;glm-4.5*&lt;/code&gt;/&lt;code&gt;glm-4.6*&lt;/code&gt;/&lt;code&gt;glm-4.7*&lt;/code&gt; prefixes and force-overrides temperature to 1.0 in &lt;code&gt;createChatRequest&lt;/code&gt; — this is harmless for GLM (unlike Kimi) but means temperature values for those models in YAML are advisory. &lt;code&gt;glm-5&lt;/code&gt;/&lt;code&gt;glm-5.1&lt;/code&gt;/&lt;code&gt;glm-5.2&lt;/code&gt;/&lt;code&gt;glm-5-turbo&lt;/code&gt; are not matched, so explicit values pass through unchanged.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Thinking Modes&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Hybrid&lt;/strong&gt; (GLM-5.x, GLM-4.7): Explicit toggle via &lt;code&gt;extra_body.thinking.type&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Auto&lt;/strong&gt; (GLM-4.6, GLM-4.5 series): Model automatically determines when reasoning is needed&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Reasoning Effort&lt;/strong&gt; (GLM-5.2 only): supports an explicit &lt;code&gt;reasoning_effort&lt;/code&gt; parameter (&lt;code&gt;high&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt;) on top of hybrid thinking, for finer control over reasoning depth than the other GLM-5.x models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Preserved Thinking&lt;/strong&gt; (&lt;a href=&quot;http://Z.AI&quot;&gt;Z.AI&lt;/a&gt; Coding capability): all thinking-enabled agents in PentAGI also pass &lt;code&gt;extra_body.thinking.clear_thinking: false&lt;/code&gt; so that &lt;code&gt;reasoning_content&lt;/code&gt; from previous assistant turns is retained across the conversation. This is required on the standard API endpoint (&lt;code&gt;/api/paas/v4&lt;/code&gt;) — on the Coding Plan endpoint it would be enabled by default. Improves reasoning continuity and cache hit rates in multi-turn tool call chains.&lt;/li&gt; 
 &lt;li&gt;All thinking-enabled agents also pass &lt;code&gt;extra_body.tool_choice: auto&lt;/code&gt; defensively&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Long-Horizon Tasks&lt;/strong&gt;: GLM-5.1 supports 8-hour sustained autonomous execution, ideal for complex multi-stage agentic workflows&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;OpenClaw-Native Orchestration&lt;/strong&gt;: GLM-5-Turbo is specifically optimized for tool invocation, instruction following, and long-chain execution&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Prompt Caching&lt;/strong&gt;: Significant cost reduction on repeated context (cached input pricing shown)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ultra-Long Context&lt;/strong&gt;: 200K tokens for GLM-5.x/4.7/4.6 series&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;MoE Architecture&lt;/strong&gt;: Efficient 744B/40B active (GLM-5/5.1), 355B/32B (GLM-4.5), 106B/12B (GLM-4.5-Air)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Seamless integration with 20+ pentesting tools via function calling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time streaming with streaming tool calls support (GLM-4.6+)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multilingual&lt;/strong&gt;: Exceptional Chinese and English NLP capabilities&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Free Options&lt;/strong&gt;: GLM-4.7-Flash and GLM-4.5-Flash for prototyping and experimentation&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;LiteLLM Integration&lt;/strong&gt;: Set &lt;code&gt;GLM_PROVIDER=zai&lt;/code&gt; to enable model name prefixing when using default PentAGI configurations with LiteLLM proxy. Leave empty for direct API usage.&lt;/p&gt; 
&lt;h3&gt;Kimi Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with Kimi from Moonshot AI, providing ultra-long context models with multimodal capabilities perfect for analyzing extensive codebases and documentation.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default Value&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;KIMI_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Kimi API key for authentication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;KIMI_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://api.moonshot.ai/v1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Kimi API endpoint URL (international)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;KIMI_PROVIDER&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Provider prefix for LiteLLM integration (optional)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Direct API usage (international endpoint)
KIMI_API_KEY=your_kimi_api_key
KIMI_SERVER_URL=https://api.moonshot.ai/v1

# Alternative endpoint
KIMI_SERVER_URL=https://api.moonshot.cn/v1  # China

# With LiteLLM proxy
KIMI_API_KEY=your_litellm_key
KIMI_SERVER_URL=http://litellm-proxy:4000
KIMI_PROVIDER=moonshot  # Adds prefix to model names (moonshot/kimi-k2.5) for LiteLLM
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 11 Kimi/Moonshot models with tool calling, streaming, hybrid thinking modes, and multimodal capabilities (text/image/video for K2.x). All &lt;code&gt;kimi-k2-*&lt;/code&gt; legacy models (turbo-preview, 0905-preview, 0711-preview, thinking, thinking-turbo) were deprecated by Moonshot on 2026-05-25 and are NOT included. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Kimi K3 - Flagship (Always Reasoning)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Multimodal&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input Miss / Output / Cache Hit)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k3&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ always&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;1M&lt;/td&gt; 
   &lt;td&gt;$3.00 / $15.00 / $0.30&lt;/td&gt; 
   &lt;td&gt;Flagship for long-horizon coding and end-to-end knowledge work. Always reasons — no &lt;code&gt;thinking&lt;/code&gt; toggle, depth set via top-level &lt;code&gt;reasoning_effort&lt;/code&gt; (currently &lt;code&gt;max&lt;/code&gt; only) (generator/refiner/adviser default)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Kimi K2.7 Code Series - Coding-Focused&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Multimodal&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input Miss / Output / Cache Hit)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.7-code&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ hybrid&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;256K&lt;/td&gt; 
   &lt;td&gt;$0.95 / $4.00 / $0.19&lt;/td&gt; 
   &lt;td&gt;Coding-focused, higher success rates on long-context programming tasks (coder/pentester default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.7-code-highspeed&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ hybrid&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;256K&lt;/td&gt; 
   &lt;td&gt;$1.90 / $8.00 / $0.38&lt;/td&gt; 
   &lt;td&gt;Same model as &lt;code&gt;kimi-k2.7-code&lt;/code&gt; with higher output throughput (~180-260 tokens/s) (primary_agent/assistant default)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Kimi K2.x Series - Multimodal Flagship&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Multimodal&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input Miss / Output / Cache Hit)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.6&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅ hybrid&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;256K&lt;/td&gt; 
   &lt;td&gt;$0.95 / $4.00 / $0.16&lt;/td&gt; 
   &lt;td&gt;Latest multimodal flagship: native architecture, stronger code, improved instruction compliance (not used by default config)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.5&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅ hybrid&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;256K&lt;/td&gt; 
   &lt;td&gt;$0.60 / $3.00 / $0.10&lt;/td&gt; 
   &lt;td&gt;Previous-gen: 36% cheaper input than K2.6 (simple/simple_json/reflector/searcher/enricher/installer default)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Moonshot V1 Series - Generation Models (Flexible Parameters)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Multimodal&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input / Output)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshot-v1-8k&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;8K&lt;/td&gt; 
   &lt;td&gt;$0.20 / $2.00&lt;/td&gt; 
   &lt;td&gt;Short text generation, ultra-cheap&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshot-v1-32k&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;32K&lt;/td&gt; 
   &lt;td&gt;$1.00 / $3.00&lt;/td&gt; 
   &lt;td&gt;Long text generation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshot-v1-128k&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$2.00 / $5.00&lt;/td&gt; 
   &lt;td&gt;Very long context&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Moonshot V1 Vision Series - Image Understanding&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Multimodal&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input / Output)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshot-v1-8k-vision-preview&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;8K&lt;/td&gt; 
   &lt;td&gt;$0.20 / $2.00&lt;/td&gt; 
   &lt;td&gt;Vision + short context&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshot-v1-32k-vision-preview&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;32K&lt;/td&gt; 
   &lt;td&gt;$1.00 / $3.00&lt;/td&gt; 
   &lt;td&gt;Vision + medium context&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;moonshot-v1-128k-vision-preview&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;128K&lt;/td&gt; 
   &lt;td&gt;$2.00 / $5.00&lt;/td&gt; 
   &lt;td&gt;Vision + long context&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Cache pricing applies to prompt tokens served from automatic context cache (only Kimi K3/K2.7/K2.x models support cache).&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;CRITICAL — Kimi parameter constraints per model family&lt;/strong&gt;: API returns &lt;code&gt;invalid_request_error&lt;/code&gt; for any deviation:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;kimi-k3&lt;/code&gt;: always reasons, no &lt;code&gt;thinking&lt;/code&gt; param at all; reasoning depth is set via the top-level &lt;code&gt;reasoning_effort&lt;/code&gt; field (&lt;code&gt;low&lt;/code&gt;/&lt;code&gt;high&lt;/code&gt;/&lt;code&gt;max&lt;/code&gt;, default &lt;code&gt;max&lt;/code&gt;) — PentAGI pins it to &lt;code&gt;max&lt;/code&gt; for all agents using this model. &lt;code&gt;temperature&lt;/code&gt; MUST be &lt;code&gt;1.0&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt; MUST be &lt;code&gt;0.95&lt;/code&gt;, &lt;code&gt;n&lt;/code&gt; MUST be &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;presence_penalty&lt;/code&gt;/&lt;code&gt;frequency_penalty&lt;/code&gt; MUST be &lt;code&gt;0&lt;/code&gt;. Do not switch effort per call — it invalidates the prefix cache.&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;kimi-k2.7-code&lt;/code&gt; / &lt;code&gt;kimi-k2.7-code-highspeed&lt;/code&gt;: &lt;code&gt;thinking&lt;/code&gt; may be omitted; if set explicitly, only &lt;code&gt;{&quot;type&quot;:&quot;enabled&quot;,&quot;keep&quot;:&quot;all&quot;}&lt;/code&gt; is accepted (&lt;code&gt;type: disabled&lt;/code&gt; is rejected). &lt;code&gt;reasoning_effort&lt;/code&gt; is not supported. &lt;code&gt;temperature&lt;/code&gt; MUST be &lt;code&gt;1.0&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt; MUST be &lt;code&gt;0.95&lt;/code&gt;, &lt;code&gt;n&lt;/code&gt; MUST be &lt;code&gt;1&lt;/code&gt;; &lt;code&gt;tool_choice: required&lt;/code&gt; is not supported (use &lt;code&gt;auto&lt;/code&gt;).&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;kimi-k2.6&lt;/code&gt;: thinking mode needs &lt;code&gt;temperature=1.0&lt;/code&gt;, &lt;code&gt;top_p=0.95&lt;/code&gt;, &lt;code&gt;n=1&lt;/code&gt;, &lt;code&gt;thinking.keep=&quot;all&quot;&lt;/code&gt;; non-thinking mode needs &lt;code&gt;temperature=0.6&lt;/code&gt;, &lt;code&gt;top_p=0.95&lt;/code&gt;, &lt;code&gt;n=1&lt;/code&gt;.&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;kimi-k2.5&lt;/code&gt;: thinking mode needs &lt;code&gt;temperature=1.0&lt;/code&gt;, &lt;code&gt;top_p=0.95&lt;/code&gt;, &lt;code&gt;n=1&lt;/code&gt; (no &lt;code&gt;keep&lt;/code&gt; support); non-thinking mode needs &lt;code&gt;temperature=0.6&lt;/code&gt;, &lt;code&gt;top_p=0.95&lt;/code&gt;, &lt;code&gt;n=1&lt;/code&gt;.&lt;/li&gt; 
  &lt;li&gt;All Kimi models: &lt;code&gt;presence_penalty=0&lt;/code&gt;, &lt;code&gt;frequency_penalty=0&lt;/code&gt;, &lt;code&gt;tool_choice&lt;/code&gt; in &lt;code&gt;{auto, none}&lt;/code&gt;.&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;Moonshot V1 models use standard OpenAI-compatible parameters with no such constraints.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Default Agent Configuration&lt;/strong&gt;:&lt;/p&gt; 
&lt;p&gt;Strategy: &lt;code&gt;kimi-k2.5&lt;/code&gt; for utility/orchestration, &lt;code&gt;kimi-k2.7-code-highspeed&lt;/code&gt; for the primary/assistant loop, &lt;code&gt;kimi-k3&lt;/code&gt; (always-thinking flagship) for critical reasoning (generator/refiner/adviser), &lt;code&gt;kimi-k2.7-code&lt;/code&gt; for coder/pentester. &lt;code&gt;kimi-k2.6&lt;/code&gt; is not used in the default configuration. All &lt;code&gt;kimi-k2.x&lt;/code&gt;/&lt;code&gt;k2.7&lt;/code&gt; agents are configured with the API-required fixed parameters (temp/top_p/n) and explicit &lt;code&gt;extra_body.thinking.type&lt;/code&gt;. For thinking-enabled agents, &lt;code&gt;extra_body.thinking.keep: &quot;all&quot;&lt;/code&gt; is set (where supported) to preserve historical &lt;code&gt;reasoning_content&lt;/code&gt; in multi-turn tool call chains (without it Moonshot returns &quot;thinking is enabled but reasoning_content is missing&quot;).&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Agent Role&lt;/th&gt; 
   &lt;th&gt;Default Model&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Temperature&lt;/th&gt; 
   &lt;th&gt;Top P&lt;/th&gt; 
   &lt;th&gt;Max Output&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Generator / Refiner&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k3&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Always (effort=max)&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;32768&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Adviser (mentor/planner)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k3&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Always (effort=max)&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;8192&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coder&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.7-code&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled (keep=all)&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;20480&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Pentester&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.7-code&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled (keep=all)&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Primary Agent / Assistant&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.7-code-highspeed&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled (keep=all)&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Installer&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enabled&lt;/td&gt; 
   &lt;td&gt;1.0&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;16384&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Reflector / Searcher / Enricher&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;0.6&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;4096&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Simple&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;0.6&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;8192&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Simple JSON&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;kimi-k2.5&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Disabled&lt;/td&gt; 
   &lt;td&gt;0.6&lt;/td&gt; 
   &lt;td&gt;0.95&lt;/td&gt; 
   &lt;td&gt;4096&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: for &lt;code&gt;kimi-k2.5&lt;/code&gt; non-thinking agents, PentAGI also duplicates &lt;code&gt;temperature: 0.6&lt;/code&gt; into &lt;code&gt;extra_body&lt;/code&gt; as a workaround — langchaingo&#39;s &lt;code&gt;IsReasoningModel&lt;/code&gt; matches the substring &lt;code&gt;2.5&lt;/code&gt; and force-overrides temperature to &lt;code&gt;1.0&lt;/code&gt;, and &lt;code&gt;extra_body&lt;/code&gt; bypasses that override.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Always-On Reasoning Flagship&lt;/strong&gt;: &lt;code&gt;kimi-k3&lt;/code&gt; never disables thinking and offers a 1M token context for the most demanding long-horizon coding and knowledge work&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ultra-Long Context&lt;/strong&gt;: Up to 256K tokens (K2.7/K2.x) or 1M tokens (K3) for comprehensive codebase/documentation analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Native Multimodal&lt;/strong&gt;: K2.7/K2.6/K2.5 support text + image + video input out of the box&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Hybrid Thinking&lt;/strong&gt;: K2.7/K2.6/K2.5 toggle between thinking and non-thinking via &lt;code&gt;extra_body.thinking.type&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Preserved Thinking&lt;/strong&gt; (K2.7, K2.6): &lt;code&gt;thinking.keep: &quot;all&quot;&lt;/code&gt; preserves historical &lt;code&gt;reasoning_content&lt;/code&gt; across turns — required for multi-turn tool call chains&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Automatic Context Caching&lt;/strong&gt;: K3/K2.7/K2.x models cache repeated prefixes&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Full function-calling support for K3, K2.7, K2.x, and Moonshot V1&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Coding-Optimized Variants&lt;/strong&gt;: &lt;code&gt;kimi-k2.7-code&lt;/code&gt;/&lt;code&gt;kimi-k2.7-code-highspeed&lt;/code&gt; target higher success rates on long-context programming tasks, with the highspeed variant tuned for throughput&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multilingual&lt;/strong&gt;: Strong Chinese, English, and multi-language support&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Multi-turn with thinking + tool calls&lt;/strong&gt;: PentAGI&#39;s universal reasoning preservation pattern (&lt;code&gt;TextPartWithReasoning&lt;/code&gt; + &lt;code&gt;WithPreserveReasoningContent&lt;/code&gt;) automatically ensures &lt;code&gt;reasoning_content&lt;/code&gt; is sent back in the required TextContent → ToolCall order, satisfying Moonshot&#39;s &quot;thinking is enabled but reasoning_content is missing in assistant tool call message&quot; requirement.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;LiteLLM Integration&lt;/strong&gt;: Set &lt;code&gt;KIMI_PROVIDER=moonshot&lt;/code&gt; to enable model name prefixing when using default PentAGI configurations with LiteLLM proxy. Leave empty for direct API usage.&lt;/p&gt; 
&lt;h3&gt;Qwen Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with Qwen from Alibaba Cloud Model Studio (DashScope), providing powerful multilingual models with reasoning capabilities and context caching support.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default Value&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;QWEN_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Qwen API key for authentication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;QWEN_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://dashscope-us.aliyuncs.com/compatible-mode/v1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Qwen API endpoint URL (international)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;QWEN_PROVIDER&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Provider prefix for LiteLLM integration (optional)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Direct API usage (Global/US endpoint)
QWEN_API_KEY=your_qwen_api_key
QWEN_SERVER_URL=https://dashscope-us.aliyuncs.com/compatible-mode/v1

# Alternative endpoints
QWEN_SERVER_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1  # International (Singapore)
QWEN_SERVER_URL=https://dashscope.aliyuncs.com/compatible-mode/v1       # Chinese Mainland (Beijing)

# With LiteLLM proxy
QWEN_API_KEY=your_litellm_key
QWEN_SERVER_URL=http://litellm-proxy:4000
QWEN_PROVIDER=dashscope  # Adds prefix to model names (dashscope/qwen-plus) for LiteLLM
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI supports 33 Qwen models curated for agent workflows: text reasoning, code generation, and vision-language (browser screenshots). All models are non-snapshot main aliases with tool calling, streaming, thinking modes, and context caching. Models marked with &lt;code&gt;*&lt;/code&gt; are used in default configuration.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Flagship Models (Top-tier Reasoning)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.7-max&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$2.50/$7.50/$0.50&lt;/td&gt; 
   &lt;td&gt;Next-gen flagship for agent-centric era (generator/refiner/adviser default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.6-max-preview&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.30/$7.80/$0.13&lt;/td&gt; 
   &lt;td&gt;Preview Max with enhanced vibe coding &amp;amp; front-end skills&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-max&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.20/$6.00/$0.24&lt;/td&gt; 
   &lt;td&gt;Previous-gen flagship with agent programming upgrades&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen-plus&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.40/$4.00/$0.08&lt;/td&gt; 
   &lt;td&gt;Qwen3-backbone Plus with switchable thinking modes&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Balanced Plus Models (Mid-tier)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.6-plus&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.50/$3.00/$0.05&lt;/td&gt; 
   &lt;td&gt;Native VL Plus with agentic coding (primary/assistant/pentester default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-plus&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.40/$2.40/$0.04&lt;/td&gt; 
   &lt;td&gt;Previous-gen native VL with strong multimodal capabilities&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Fast Flash Models (Cost-optimized)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.6-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.25/$1.50/$0.025&lt;/td&gt; 
   &lt;td&gt;Latest Flash with significant agentic-coding boost&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-flash&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.10/$0.40/$0.01&lt;/td&gt; 
   &lt;td&gt;Ultra-fast lightweight (simple/reflector/searcher/enricher default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.05/$0.40/$0.01&lt;/td&gt; 
   &lt;td&gt;Qwen3-series Flash with 1M context, tiered pricing&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Code-Specialized Models&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-plus&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.00/$5.00/$0.20&lt;/td&gt; 
   &lt;td&gt;Strong coding agent with autonomous programming (coder default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-flash&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.30/$1.50/$0.06&lt;/td&gt; 
   &lt;td&gt;Fast code-gen with multi-turn tool stability (installer default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-next&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.30/$1.50/—&lt;/td&gt; 
   &lt;td&gt;Open-source code generation, SOTA at same scale&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Vision-Language Models (Browser &amp;amp; Screenshot Analysis)&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-vl-plus&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.20/$1.60/$0.04&lt;/td&gt; 
   &lt;td&gt;VL with visual agent capabilities, ultra-long video understanding&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-vl-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.05/$0.40/$0.01&lt;/td&gt; 
   &lt;td&gt;Small VL with 2D/3D localization for browser triage&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qvq-max&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.20/$4.80/—&lt;/td&gt; 
   &lt;td&gt;Visual reasoning with chain-of-thought&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Open-Source Qwen3.6 Series&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.6-27b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.60/$3.60/—&lt;/td&gt; 
   &lt;td&gt;Native VL on hybrid architecture, on-premises ready&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.6-35b-a3b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.25/$1.49/—&lt;/td&gt; 
   &lt;td&gt;Efficient 35B MoE (~3B active) for continuous monitoring&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Open-Source Qwen3.5 Series&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-397b-a17b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.60/$3.60/—&lt;/td&gt; 
   &lt;td&gt;Largest 397B params (~17B active), exceptional reasoning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-122b-a10b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.40/$3.20/—&lt;/td&gt; 
   &lt;td&gt;Large 122B params (~10B active), strong balance&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-35b-a3b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.25/$2.00/—&lt;/td&gt; 
   &lt;td&gt;Efficient 35B MoE (~3B active), cost-effective&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-27b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.30/$2.40/—&lt;/td&gt; 
   &lt;td&gt;Medium 27B with hybrid linear attention + sparse MoE&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Open-Source Qwen3 Coder Series&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-480b-a35b-instruct&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$1.50/$7.50/—&lt;/td&gt; 
   &lt;td&gt;Largest open coder MoE (480B/~35B active)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-30b-a3b-instruct&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.45/$2.25/—&lt;/td&gt; 
   &lt;td&gt;Efficient 30B MoE (~3B active), repository-scale&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Open-Source Qwen3 Dense &amp;amp; MoE Series&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Thinking&lt;/th&gt; 
   &lt;th&gt;Intl&lt;/th&gt; 
   &lt;th&gt;Global/US&lt;/th&gt; 
   &lt;th&gt;China&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output/Cache)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-next-80b-a3b-thinking&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.15/$1.20/—&lt;/td&gt; 
   &lt;td&gt;Next-gen 80B MoE (~3B active) thinking-only&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-next-80b-a3b-instruct&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;❌&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.15/$1.20/—&lt;/td&gt; 
   &lt;td&gt;Next-gen 80B MoE instruction-following&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-235b-a22b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.70/$8.40/—&lt;/td&gt; 
   &lt;td&gt;Dual-mode 235B MoE (~22B active)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-32b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.16/$0.64/—&lt;/td&gt; 
   &lt;td&gt;Versatile 32B dense dual-mode&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-30b-a3b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.20/$2.40/—&lt;/td&gt; 
   &lt;td&gt;Efficient 30B MoE (~3B active)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-14b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.35/$4.20/—&lt;/td&gt; 
   &lt;td&gt;Medium 14B dense performance-cost balance&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-8b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.18/$2.10/—&lt;/td&gt; 
   &lt;td&gt;Compact 8B dense efficiency&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-4b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.11/$1.26/—&lt;/td&gt; 
   &lt;td&gt;Lightweight 4B dense for simple tasks&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-1.7b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.11/$1.26/—&lt;/td&gt; 
   &lt;td&gt;Ultra-compact 1.7B basic checks&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-0.6b&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;✅&lt;/td&gt; 
   &lt;td&gt;$0.11/$1.26/—&lt;/td&gt; 
   &lt;td&gt;Smallest 0.6B for edge monitoring&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Prices&lt;/strong&gt;: Per 1M tokens. Cache pricing reflects implicit cache hit (when available); MoE/dense open-source models do not expose cache pricing. Tiered models (Max/Plus) show lowest-tier pricing (typically ≤32k or ≤256k input); larger contexts incur higher rates per Alibaba Cloud pricing.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Region Availability&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Intl&lt;/strong&gt; (International): Singapore region (&lt;code&gt;dashscope-intl.aliyuncs.com&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Global/US&lt;/strong&gt;: US Virginia region (&lt;code&gt;dashscope-us.aliyuncs.com&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;China&lt;/strong&gt;: Chinese Mainland Beijing region (&lt;code&gt;dashscope.aliyuncs.com&lt;/code&gt;)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Default Agent Configuration&lt;/strong&gt;:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Agent Role&lt;/th&gt; 
   &lt;th&gt;Default Model&lt;/th&gt; 
   &lt;th&gt;Tier&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Generator / Refiner / Adviser (planning, mentor)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.7-max&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Flagship&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Primary / Assistant / Pentester&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.6-plus&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Balanced&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Coder (exploit development)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-plus&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Code+&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Installer (env setup)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;qwen3-coder-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Code Fast&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Simple / Reflector / Searcher / Enricher&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;qwen3.5-flash&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Fast&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Agent-Centric Design&lt;/strong&gt;: Qwen3.7-Max is purpose-built for long-horizon autonomous execution and tool invocation&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Automatic Context Caching&lt;/strong&gt;: 30-50% cost reduction on repeated context with implicit cache&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extended Thinking&lt;/strong&gt;: Chain-of-thought reasoning for complex security analysis (Qwen3.7/3.6/3.5/3-Max, QVQ-Max)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Code Specialization&lt;/strong&gt;: Qwen3-Coder series with multi-turn tool interaction and repository-level understanding&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Vision-Language&lt;/strong&gt;: Qwen3-VL series for browser screenshot triage, 2D/3D localization, OCR-level analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt;: Seamless integration with 20+ pentesting tools via function calling&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Streaming&lt;/strong&gt;: Real-time response streaming for interactive workflows&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Multilingual&lt;/strong&gt;: Strong Chinese, English, and multi-language support&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Open-Source Variants&lt;/strong&gt;: Dense and MoE models from 0.6B to 480B for on-premises/air-gapped deployments&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;LiteLLM Integration&lt;/strong&gt;: Set &lt;code&gt;QWEN_PROVIDER=dashscope&lt;/code&gt; to enable model name prefixing when using default PentAGI configurations with LiteLLM proxy. Leave empty for direct API usage.&lt;/p&gt; 
&lt;h4&gt;Alternative Integrations&lt;/h4&gt; 
&lt;p&gt;DashScope is fully OpenAI-compatible, so Qwen can also power two other PentAGI subsystems through the standard OpenAI client.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;As embedding provider&lt;/strong&gt; (&lt;code&gt;text-embedding-v4&lt;/code&gt;, see &lt;a href=&quot;https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=doc#/doc/?type=model&amp;amp;url=prices&quot;&gt;Alibaba Cloud Model Studio pricing&lt;/a&gt;):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;EMBEDDING_PROVIDER=openai
EMBEDDING_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1  # International (Singapore)
# EMBEDDING_URL=https://dashscope.aliyuncs.com/compatible-mode/v1     # Chinese Mainland
EMBEDDING_KEY=sk-*******
EMBEDDING_MODEL=text-embedding-v4
EMBEDDING_BATCH_SIZE=         # optional, default applies
EMBEDDING_STRIP_NEW_LINES=    # optional, default applies
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Note: the Global/US DashScope endpoint (&lt;code&gt;dashscope-us.aliyuncs.com&lt;/code&gt;) does &lt;strong&gt;not&lt;/strong&gt; expose embedding APIs — use the International or China endpoints for &lt;code&gt;text-embedding-v4&lt;/code&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;As OpenAI-typed custom LLM provider&lt;/strong&gt;: instead of the dedicated &lt;code&gt;QWEN_*&lt;/code&gt; variables, you can wire any Qwen chat model through PentAGI&#39;s custom OpenAI-compatible provider by pointing &lt;code&gt;OPENAI_SERVER_URL&lt;/code&gt; (or a custom provider entry) to the DashScope &lt;code&gt;/compatible-mode/v1&lt;/code&gt; endpoint and selecting the desired Qwen model name. Useful when you already manage all model traffic through a single OpenAI-shaped client (e.g. shared with LiteLLM/OneAPI proxies).&lt;/p&gt; 
&lt;h3&gt;MiniMax Provider Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI integrates with MiniMax&#39;s M-series through the OpenAI-compatible &lt;code&gt;https://api.minimax.io/v1&lt;/code&gt; endpoint: large-context agentic models with tool calling, JSON output, and streaming.&lt;/p&gt; 
&lt;h4&gt;Configuration Variables&lt;/h4&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default Value&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MINIMAX_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;MiniMax API key for authentication&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MINIMAX_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://api.minimax.io/v1&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;MiniMax API endpoint URL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MINIMAX_PROVIDER&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;/td&gt; 
   &lt;td&gt;Provider prefix for LiteLLM integration (optional)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h4&gt;Configuration Examples&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Direct API usage
MINIMAX_API_KEY=your_minimax_api_key
MINIMAX_SERVER_URL=https://api.minimax.io/v1

# With LiteLLM proxy
MINIMAX_API_KEY=your_litellm_key
MINIMAX_SERVER_URL=http://litellm-proxy:4000
MINIMAX_PROVIDER=minimax  # Adds prefix to model names (minimax/MiniMax-M3) for LiteLLM
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Supported Models&lt;/h4&gt; 
&lt;p&gt;PentAGI ships 3 MiniMax models with tool calling, JSON output, and streaming. &lt;code&gt;MiniMax-M3&lt;/code&gt; is the default for all agent types.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Model ID&lt;/th&gt; 
   &lt;th&gt;Context&lt;/th&gt; 
   &lt;th&gt;Price (Input/Output, ≤512K context)&lt;/th&gt; 
   &lt;th&gt;Use Case&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MiniMax-M3&lt;/code&gt;*&lt;/td&gt; 
   &lt;td&gt;~1M&lt;/td&gt; 
   &lt;td&gt;$0.30/$1.20 (2x above 512K tokens)&lt;/td&gt; 
   &lt;td&gt;Latest flagship for agentic reasoning, tool use, code generation, and long-context tasks (default)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MiniMax-M2.7&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;204K&lt;/td&gt; 
   &lt;td&gt;$0.30/$1.20&lt;/td&gt; 
   &lt;td&gt;Previous-generation model with strong reasoning and coding&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;MiniMax-M2.7-highspeed&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;204K&lt;/td&gt; 
   &lt;td&gt;$0.60/$2.40&lt;/td&gt; 
   &lt;td&gt;Low-latency variant of M2.7 for fast-response scenarios&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;LiteLLM Integration&lt;/strong&gt;: Set &lt;code&gt;MINIMAX_PROVIDER=minimax&lt;/code&gt; to enable model name prefixing when using default PentAGI configurations with LiteLLM proxy. Leave empty for direct API usage.&lt;/p&gt; 
&lt;h2&gt;Advanced Setup&lt;/h2&gt; 
&lt;h3&gt;Langfuse Integration&lt;/h3&gt; 
&lt;p&gt;Langfuse provides advanced capabilities for monitoring and analyzing AI agent operations.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Configure Langfuse environment variables in existing &lt;code&gt;.env&lt;/code&gt; file.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;details&gt; 
 &lt;summary&gt;Langfuse valuable environment variables&lt;/summary&gt; 
 &lt;h3&gt;Database Credentials&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_POSTGRES_USER&lt;/code&gt; and &lt;code&gt;LANGFUSE_POSTGRES_PASSWORD&lt;/code&gt; - Langfuse PostgreSQL credentials&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_CLICKHOUSE_USER&lt;/code&gt; and &lt;code&gt;LANGFUSE_CLICKHOUSE_PASSWORD&lt;/code&gt; - ClickHouse credentials&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_REDIS_AUTH&lt;/code&gt; - Redis password&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Encryption and Security Keys&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_SALT&lt;/code&gt; - Salt for hashing in Langfuse Web UI&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_ENCRYPTION_KEY&lt;/code&gt; - Encryption key (32 bytes in hex)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_NEXTAUTH_SECRET&lt;/code&gt; - Secret key for NextAuth&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Admin Credentials&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_USER_EMAIL&lt;/code&gt; - Admin email&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_USER_PASSWORD&lt;/code&gt; - Admin password&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_USER_NAME&lt;/code&gt; - Admin username&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;API Keys and Tokens&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_PROJECT_PUBLIC_KEY&lt;/code&gt; - Project public key (used from PentAGI side too)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_PROJECT_SECRET_KEY&lt;/code&gt; - Project secret key (used from PentAGI side too)&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;S3 Storage&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_S3_ACCESS_KEY_ID&lt;/code&gt; - S3 access key ID&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;LANGFUSE_S3_SECRET_ACCESS_KEY&lt;/code&gt; - S3 secret access key&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;Enable integration with Langfuse for PentAGI service in &lt;code&gt;.env&lt;/code&gt; file.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;LANGFUSE_BASE_URL=http://langfuse-web:3000
LANGFUSE_PROJECT_ID= # default: value from ${LANGFUSE_INIT_PROJECT_ID}
LANGFUSE_PUBLIC_KEY= # default: value from ${LANGFUSE_INIT_PROJECT_PUBLIC_KEY}
LANGFUSE_SECRET_KEY= # default: value from ${LANGFUSE_INIT_PROJECT_SECRET_KEY}
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li&gt;Run the Langfuse stack:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose-langfuse.yml
docker compose -f docker-compose.yml -f docker-compose-langfuse.yml up -d
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Visit &lt;a href=&quot;http://localhost:4000&quot;&gt;localhost:4000&lt;/a&gt; to access Langfuse Web UI with credentials from &lt;code&gt;.env&lt;/code&gt; file:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_USER_EMAIL&lt;/code&gt; - Admin email&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;LANGFUSE_INIT_USER_PASSWORD&lt;/code&gt; - Admin password&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Monitoring and Observability&lt;/h3&gt; 
&lt;p&gt;For detailed system operation tracking, integration with monitoring tools is available.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Enable integration with OpenTelemetry and all observability services for PentAGI in &lt;code&gt;.env&lt;/code&gt; file.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;OTEL_HOST=otelcol:8148
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;Run the observability stack:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose-observability.yml
docker compose -f docker-compose.yml -f docker-compose-observability.yml up -d
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Visit &lt;a href=&quot;http://localhost:3000&quot;&gt;localhost:3000&lt;/a&gt; to access Grafana Web UI.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;If you want to use Observability stack with Langfuse, you need to enable integration in &lt;code&gt;.env&lt;/code&gt; file to set &lt;code&gt;LANGFUSE_OTEL_EXPORTER_OTLP_ENDPOINT&lt;/code&gt; to &lt;code&gt;http://otelcol:4318&lt;/code&gt;.&lt;/p&gt; 
 &lt;p&gt;To run all available stacks together (Langfuse, Graphiti, and Observability):&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose -f docker-compose.yml -f docker-compose-langfuse.yml -f docker-compose-graphiti.yml -f docker-compose-observability.yml up -d
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;You can also register aliases for these commands in your shell to run it faster:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;alias pentagi=&quot;docker compose -f docker-compose.yml -f docker-compose-langfuse.yml -f docker-compose-graphiti.yml -f docker-compose-observability.yml&quot;
alias pentagi-up=&quot;docker compose -f docker-compose.yml -f docker-compose-langfuse.yml -f docker-compose-graphiti.yml -f docker-compose-observability.yml up -d&quot;
alias pentagi-down=&quot;docker compose -f docker-compose.yml -f docker-compose-langfuse.yml -f docker-compose-graphiti.yml -f docker-compose-observability.yml down&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;/div&gt; 
&lt;h3&gt;Knowledge Graph Integration (Graphiti)&lt;/h3&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;Graphiti is an optional &lt;strong&gt;beta&lt;/strong&gt; integration and is disabled by default. Review &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#limitations-and-security&quot;&gt;Limitations and Security&lt;/a&gt; before enabling it in production.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;PentAGI integrates with &lt;a href=&quot;https://github.com/vxcontrol/pentagi-graphiti&quot;&gt;Graphiti&lt;/a&gt;, a temporal knowledge graph system powered by Neo4j, to provide advanced semantic understanding and relationship tracking for AI agent operations. The vxcontrol fork provides custom entity and edge types that are specific to pentesting purposes.&lt;/p&gt; 
&lt;h4&gt;What is Graphiti?&lt;/h4&gt; 
&lt;p&gt;Graphiti asynchronously extracts structured knowledge from agent interactions and builds a graph of entities, relationships, evidence, and temporal context. PentAGI sends agent responses and tool executions to Graphiti and exposes the &lt;code&gt;graphiti_search&lt;/code&gt; tool to enabled agents. Graphiti complements the primary pgvector memory; it does not replace it.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Semantic Memory&lt;/strong&gt;: Store and recall relationships between tools, targets, vulnerabilities, and techniques&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Contextual Understanding&lt;/strong&gt;: Track how different pentesting actions relate to each other over time&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Flow-Scoped Recall&lt;/strong&gt;: Reuse knowledge within the active flow without exposing data from other engagements by default&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Advanced Querying&lt;/strong&gt;: Search temporal context, relationships, successful tools, recent episodes, and entities by type&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;When enabled, PentAGI captures agent responses, tool execution details, and flow/task/subtask context. Ingestion is asynchronous, so newly submitted events can take time to become searchable.&lt;/p&gt; 
&lt;h4&gt;Deployment Modes and Enabling&lt;/h4&gt; 
&lt;p&gt;Graphiti can run as the bundled Neo4j + Graphiti stack, as an external service, or remain disabled.&lt;/p&gt; 
&lt;p&gt;For the bundled stack, configure &lt;code&gt;.env&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;GRAPHITI_ENABLED=true
GRAPHITI_TIMEOUT=30
GRAPHITI_URL=http://graphiti:8000
GRAPHITI_LLM_CLIENT_TYPE=openai

# Reused by the Graphiti OpenAI preset
OPEN_AI_KEY=your_openai_api_key
OPEN_AI_SERVER_URL=https://api.openai.com/v1

# Bundled Neo4j
NEO4J_USER=neo4j
NEO4J_DATABASE=neo4j
NEO4J_PASSWORD=replace_with_a_strong_password
NEO4J_URI=bolt://neo4j:7687
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Download the optional compose file when installing manually, then start both stacks:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose-graphiti.yml
docker compose -f docker-compose.yml -f docker-compose-graphiti.yml up -d
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The base stack must create the external &lt;code&gt;pentagi-network&lt;/code&gt; before the Graphiti stack can start. The installer handles stack ordering automatically.&lt;/p&gt; 
&lt;p&gt;For an external Graphiti deployment, set &lt;code&gt;GRAPHITI_ENABLED=true&lt;/code&gt; and point &lt;code&gt;GRAPHITI_URL&lt;/code&gt; to its API. Do not start &lt;code&gt;docker-compose-graphiti.yml&lt;/code&gt;; configure providers, embeddings, the graph database, and ingest tuning on the external service itself.&lt;/p&gt; 
&lt;p&gt;PentAGI enables its client only when both &lt;code&gt;GRAPHITI_ENABLED=true&lt;/code&gt; and &lt;code&gt;GRAPHITI_URL&lt;/code&gt; is non-empty. At startup it performs three health-check attempts with a two-second backoff. If they all fail, PentAGI logs a warning and continues with Graphiti disabled.&lt;/p&gt; 
&lt;h4&gt;LLM Provider and Model Presets&lt;/h4&gt; 
&lt;p&gt;&lt;code&gt;GRAPHITI_LLM_CLIENT_TYPE&lt;/code&gt; selects one deployment-wide preset. Model names and call parameters are not environment variables; they live in &lt;code&gt;graphiti/&amp;lt;provider&amp;gt;.yaml&lt;/code&gt;.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Preset&lt;/th&gt; 
   &lt;th&gt;Credentials and endpoint&lt;/th&gt; 
   &lt;th&gt;Shipped main model&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;openai&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;OPEN_AI_KEY&lt;/code&gt;, &lt;code&gt;OPEN_AI_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;openai/gpt-5-mini&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;gemini&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt;, &lt;code&gt;GEMINI_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;gemini/gemini-2.5-flash-lite&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;custom&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;LLM_SERVER_KEY&lt;/code&gt;, &lt;code&gt;LLM_SERVER_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;Qwen/Qwen3.6-27B-FP8&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;litellm&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_LITELLM_API_KEY&lt;/code&gt;, &lt;code&gt;GRAPHITI_LITELLM_BASE_URL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;openrouter/openai/gpt-oss-20b&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The Gemini preset uses Graphiti&#39;s LiteLLM/OpenAI-compatible client path. Point &lt;code&gt;GEMINI_SERVER_URL&lt;/code&gt; at a compatible gateway if the native Gemini endpoint does not provide the required OpenAI-compatible API.&lt;/p&gt; 
&lt;p&gt;Each preset file must contain a matching &lt;code&gt;provider&lt;/code&gt; plus &lt;code&gt;MODEL_NAME&lt;/code&gt; and &lt;code&gt;SMALL_MODEL_NAME&lt;/code&gt; mappings. The small model is used for reranking and lighter calls. Supported call settings include temperature, token limits, sampling and penalty parameters, JSON mode, reasoning effort, verbosity, pricing metadata, and provider-specific &lt;code&gt;extra_body&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;The installer copies &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/graphiti&quot;&gt;&lt;code&gt;examples/graphiti&lt;/code&gt;&lt;/a&gt; beside the installation as &lt;code&gt;./graphiti&lt;/code&gt;. The compose mount is controlled by:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;GRAPHITI_CONFIG_PATH=./graphiti
GRAPHITI_CONFIG_DIR=llm_configs
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;GRAPHITI_CONFIG_PATH&lt;/code&gt; may point directly to &lt;code&gt;./examples/graphiti&lt;/code&gt; for development. &lt;code&gt;GRAPHITI_CONFIG_DIR=llm_configs&lt;/code&gt; activates the mounted presets. If an older &lt;code&gt;.env&lt;/code&gt; omits that variable, a newer compose file mounts an empty host directory at the unused &lt;code&gt;configs&lt;/code&gt; path instead of hiding the presets built into the image.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;GRAPHITI_MODEL_NAME&lt;/code&gt; is obsolete and ignored. Edit the active YAML preset instead, then restart the Graphiti container.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h4&gt;Graphiti Embedding Configuration&lt;/h4&gt; 
&lt;p&gt;By default, Graphiti uses the active LLM preset&#39;s credentials and its default OpenAI embedding model. To use PentAGI&#39;s shared embedding endpoint explicitly:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;GRAPHITI_SEPARATE_EMBEDDING=true
EMBEDDING_URL=https://embedding.example.com/v1
EMBEDDING_KEY=your_embedding_api_key
EMBEDDING_MODEL=openai/text-embedding-3-large
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Graphiti&#39;s embedder is OpenAI-compatible. &lt;code&gt;EMBEDDING_PROVIDER&lt;/code&gt; is used by PentAGI but is not passed to Graphiti, so a non-OpenAI-compatible embedding provider cannot be shared directly.&lt;/p&gt; 
&lt;h4&gt;Ingestion and Extraction Tuning&lt;/h4&gt; 
&lt;p&gt;The supplied defaults prioritize flow isolation and limit expensive extraction to useful events.&lt;/p&gt; 
&lt;p&gt;Ingest policy actions:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;REJECT&lt;/code&gt;: do not store the episode.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;SKIP_LLM&lt;/code&gt;: store the episode for retrieval but do not extract nodes or edges.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;PROCESS&lt;/code&gt;: store the episode and run full LLM extraction.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;When to change it&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_POLICY_RULES&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;{&quot;graphiti_search&quot;:&quot;REJECT&quot;,&quot;tool_execution_terminal&quot;:&quot;PROCESS&quot;,&quot;tool_execution_file&quot;:&quot;PROCESS&quot;}&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Add narrow, case-insensitive name/source patterns when specific events need different handling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_POLICY_FIELD&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;both&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Restrict matching to &lt;code&gt;name&lt;/code&gt; or &lt;code&gt;source_description&lt;/code&gt; only when event naming is controlled&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_POLICY_DEFAULT_ACTION&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;SKIP_LLM&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Use &lt;code&gt;PROCESS&lt;/code&gt; only when every unmatched event justifies extraction cost&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_USE_GROUP_ACTORS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Keep enabled to preserve FIFO ordering independently for each flow&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_WORKER_COUNT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Raise for more concurrent flows when the LLM and database have capacity; lower to control load&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_LOCK_BY_GROUP_ID&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Used only in shared-pool mode; ignored when group actors are enabled&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_TASK_MAX_RETRIES&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;1&lt;/code&gt; (&lt;code&gt;0&lt;/code&gt;-&lt;code&gt;5&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Increase for transient LLM/network failures&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_TASK_RETRY_DELAY_SEC&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;2.0&lt;/code&gt; (&lt;code&gt;0.5&lt;/code&gt;-&lt;code&gt;60&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Increase when an upstream service needs more recovery time&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_TASK_TIMEOUT_SEC&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;0&lt;/code&gt; (&lt;code&gt;0&lt;/code&gt;-&lt;code&gt;3600&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Set a finite value to prevent one stalled request from blocking a flow; &lt;code&gt;0&lt;/code&gt; disables the timeout&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_QUEUE_MAX_SIZE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Set a bound to return HTTP 429 instead of allowing an unlimited backlog&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_INGEST_DEAD_LETTER_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enable when failed episodes must be retained for operational review&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Extraction uses the following fallback order: full combined extraction (nodes, attributes, summaries, and edges in one call), regular combined extraction (nodes and edges), then separate node/edge extraction. Empty or failed combined results automatically fall back; these log messages are expected during normal operation.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Effect&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_TAXONOMY_LAYER_PROFILE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;STRUCTURAL,EVIDENCE,PROGRESS,ATTEMPT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Controls which edge classes appear in prompts and pass validation; &lt;code&gt;full&lt;/code&gt;/&lt;code&gt;all&lt;/code&gt; enables every class and &lt;code&gt;minimal&lt;/code&gt; selects the core attack graph&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_USE_COMBINED_FULL_EXTRACTION&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enables the most compact single-call extraction path&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_USE_COMBINED_EXTRACTION&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enables the regular combined fallback&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_COMBINED_FULL_GATING_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Skips expensive full extraction for low-signal administrative/search events&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_COMBINED_DIAGNOSTIC_SAMPLES&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Includes content samples in diagnostics; keep disabled because pentest output can contain credentials&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_ANCHOR_NODE_MODE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;smart&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;smart&lt;/code&gt; loads all key entities plus limited high-volume types; &lt;code&gt;limit&lt;/code&gt; applies one total cap&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_ANCHOR_NODE_LIMIT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;25&lt;/code&gt; (&lt;code&gt;1&lt;/code&gt;-&lt;code&gt;500&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Total anchor cap in &lt;code&gt;limit&lt;/code&gt; mode&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_ANCHOR_MASS_TYPE_LIMIT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;10&lt;/code&gt; (&lt;code&gt;1&lt;/code&gt;-&lt;code&gt;100&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Per-type cap in &lt;code&gt;smart&lt;/code&gt; mode; &lt;code&gt;0&lt;/code&gt; is invalid&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_ANCHOR_QUERY_TIMEOUT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;10&lt;/code&gt; (&lt;code&gt;1&lt;/code&gt;-&lt;code&gt;60&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Bounds anchor lookup; timeout degrades gracefully to no anchors&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Anchors connect entities across episodes and are used by the separate extraction path. Combined extraction has already produced its edges and does not perform this anchor lookup.&lt;/p&gt; 
&lt;p&gt;These flags are passed as process environment variables by the bundled compose file. This is important for combined extraction because Graphiti reads those flags when Python modules are imported.&lt;/p&gt; 
&lt;h4&gt;Runtime, Logging, and Neo4j&lt;/h4&gt; 
&lt;p&gt;The values below are PentAGI&#39;s recommended &lt;code&gt;.env.example&lt;/code&gt;/compose defaults, not the raw Graphiti image fallbacks. Running a freshly pulled image behind an old compose file can instead enable telemetry and global search, use one shared-pool worker with &lt;code&gt;PROCESS&lt;/code&gt; as the unmatched ingest action, enable the full taxonomy, and disable combined extraction. Keep the image, compose file, &lt;code&gt;.env&lt;/code&gt;, and presets in sync.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Guidance&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_CPUS&lt;/code&gt;, &lt;code&gt;GRAPHITI_MEMORY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;2.0&lt;/code&gt;, &lt;code&gt;2G&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Container limits; raise together with concurrency only after observing CPU and memory pressure&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_SEMAPHORE_LIMIT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Limits parallel Graphiti coroutines; it is separate from ingest worker concurrency&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_TELEMETRY_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enables anonymous Graphiti telemetry when set to &lt;code&gt;true&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_LOG_LEVEL&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;INFO&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Use &lt;code&gt;DEBUG&lt;/code&gt; temporarily; it can produce sensitive and high-volume output&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_LOG_STDOUT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;events&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;off&lt;/code&gt;, &lt;code&gt;events&lt;/code&gt;, or &lt;code&gt;full&lt;/code&gt;; &lt;code&gt;events&lt;/code&gt; is recommended for containers&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_FLOW_LOGGER_WARN_COUNT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;256&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Warns about growth of cached per-flow loggers; &lt;code&gt;0&lt;/code&gt; disables the warning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_DEBUG_RUNTIME_RESOURCES&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enables &lt;code&gt;/debug/runtime-resources&lt;/code&gt;; expose only to trusted operators&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_SEARCH_SCOPE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;flowid&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Keep for flow/tenant isolation; &lt;code&gt;all&lt;/code&gt; enables global searches and can expose other engagements&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GRAPHITI_LOG_FORMAT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;json&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Reserved by the current deployment contract; the Graphiti logger does not yet apply it&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_CPUS&lt;/code&gt;, &lt;code&gt;NEO4J_MEMORY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;4.0&lt;/code&gt;, &lt;code&gt;4G&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Neo4j container limits; use &lt;code&gt;neo4j-admin server memory-recommendation --docker&lt;/code&gt; for production sizing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_SHM_SIZE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;4g&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/dev/shm&lt;/code&gt; limit; actual use counts toward the container memory limit&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_NOFILE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;65536&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Open-file soft/hard limit, suitable for many indexes and concurrent connections&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_HEAP_INITIAL_SIZE&lt;/code&gt;, &lt;code&gt;NEO4J_HEAP_MAX_SIZE&lt;/code&gt;, &lt;code&gt;NEO4J_PAGECACHE_SIZE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;2G&lt;/code&gt;, &lt;code&gt;2G&lt;/code&gt;, &lt;code&gt;1G&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;JVM heap/page cache sizing; &lt;code&gt;NEO4J_CPUS&lt;/code&gt;/&lt;code&gt;NEO4J_MEMORY&lt;/code&gt; only cap the container, the JVM does not reliably size itself to fit inside that cap on its own. Defaults favor heap over page cache — suited to a low write-throughput deployment with occasional wide reads, since query execution/result materialization lives in heap while a small dataset is already comfortably held by 1G of page cache; re-run &lt;code&gt;neo4j-admin server memory-recommendation --docker&lt;/code&gt; once real data volume is known&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_TRANSACTION_MAX&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;1G&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Caps a single transaction&#39;s memory (&lt;code&gt;db.memory.transaction.max&lt;/code&gt;) so one runaway/unbounded query (e.g. a Cartesian product or an unbounded variable-length path before a &lt;code&gt;LIMIT&lt;/code&gt;) fails cleanly with an out-of-memory Cypher error instead of exhausting the whole heap and taking down every other query on the server&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_BOLT_ADVERTISED_ADDRESS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;empty&lt;/td&gt; 
   &lt;td&gt;Set only when Neo4j Browser and the Bolt connector are reverse-proxied on different public domains (e.g. behind Guarder with CORS/cookie-group support for cross-origin bolt access); format &lt;code&gt;host:port&lt;/code&gt;. Left empty, Neo4j&#39;s discovery endpoint advertises whatever &lt;code&gt;Host&lt;/code&gt; header the request arrived with, which is correct only when both share one domain&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;NEO4J_HTTP_ADVERTISED_ADDRESS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;empty&lt;/td&gt; 
   &lt;td&gt;Set only when a reverse proxy in front of Neo4j Browser strips or rewrites the &lt;code&gt;Host&lt;/code&gt; header, making the dynamic Host-header-based advertised address incorrect; format &lt;code&gt;host:port&lt;/code&gt;. Leave empty in the common case (proxy forwards &lt;code&gt;Host&lt;/code&gt; unchanged)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;code&gt;NEO4J_USER&lt;/code&gt;, &lt;code&gt;NEO4J_PASSWORD&lt;/code&gt;, &lt;code&gt;NEO4J_URI&lt;/code&gt;, and &lt;code&gt;NEO4J_DATABASE&lt;/code&gt; configure the bundled connection. Neo4j Community Edition supports only its default database; do not configure a separate database name that requires Enterprise multi-database support.&lt;/p&gt; 
&lt;p&gt;The installer copies &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/neo4j&quot;&gt;&lt;code&gt;examples/neo4j&lt;/code&gt;&lt;/a&gt; beside the installation as &lt;code&gt;./neo4j&lt;/code&gt;. It contains static, non-&lt;code&gt;.env&lt;/code&gt;-tunable settings that don&#39;t have a &lt;code&gt;NEO4J_*&lt;/code&gt; variable: &lt;code&gt;conf/neo4j.conf&lt;/code&gt; and &lt;code&gt;conf/apoc.conf&lt;/code&gt;, plus a version-pinned &lt;code&gt;plugins/apoc-*-core.jar&lt;/code&gt;. The compose mount is controlled by:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;NEO4J_DIR=./neo4j
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;NEO4J_DIR&lt;/code&gt; may point directly to &lt;code&gt;./examples/neo4j&lt;/code&gt; for development. Both &lt;code&gt;conf/&lt;/code&gt; and &lt;code&gt;plugins/&lt;/code&gt; are mounted read-only; the stack still starts on Neo4j&#39;s built-in defaults (without APOC) if the directory is absent, since Docker creates an empty one automatically. Do not duplicate any &lt;code&gt;NEO4J_*&lt;/code&gt; variable from the table above inside &lt;code&gt;conf/neo4j.conf&lt;/code&gt; — the Neo4j Docker entrypoint always strips a matching line from the mounted file and re-appends the environment variable&#39;s value, so a duplicated setting in the file would be silently ignored.&lt;/p&gt; 
&lt;p&gt;The bundled stack currently wires Neo4j only. The Graphiti image contains FalkorDB support, but using it requires a separately configured deployment because the stock compose file does not expose &lt;code&gt;GRAPHITI_GRAPH_BACKEND&lt;/code&gt; or &lt;code&gt;FALKORDB_*&lt;/code&gt;.&lt;/p&gt; 
&lt;h4&gt;Verification and Troubleshooting&lt;/h4&gt; 
&lt;p&gt;Check service health, queue state, and logs:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose -f docker-compose.yml -f docker-compose-graphiti.yml ps graphiti neo4j
docker compose -f docker-compose.yml -f docker-compose-graphiti.yml logs -f graphiti
curl -fsS http://localhost:8000/healthcheck
curl -fsS http://localhost:8000/queue-size
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Neo4j Browser is available at &lt;code&gt;http://localhost:7474&lt;/code&gt;; the Graphiti OpenAPI UI is at &lt;code&gt;http://localhost:8000/docs&lt;/code&gt;. Both are bound to localhost by the stock compose file.&lt;/p&gt; 
&lt;p&gt;Common failures:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;A missing API key or base URL for the selected preset, a missing YAML file, or a YAML &lt;code&gt;provider&lt;/code&gt; mismatch causes the Graphiti container to fail startup validation.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;LLM_CLIENT_TYPE=openai&lt;/code&gt; rejects local/custom model prefixes; use the &lt;code&gt;custom&lt;/code&gt; preset for an OpenAI-compatible local server.&lt;/li&gt; 
 &lt;li&gt;In &lt;code&gt;flowid&lt;/code&gt; search mode, requests without a group ID are rejected. PentAGI supplies the flow-derived group ID automatically.&lt;/li&gt; 
 &lt;li&gt;A bounded full queue returns HTTP 429. &lt;code&gt;/queue-size&lt;/code&gt; reports waiting, processing, active-group, and dropped counters.&lt;/li&gt; 
 &lt;li&gt;Invalid retry, timeout, or anchor ranges fail startup rather than being silently normalized.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Update &lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;docker-compose-graphiti.yml&lt;/code&gt;, the Graphiti image, and the &lt;code&gt;graphiti&lt;/code&gt; preset directory together. Pulling only a new image can retain older compose defaults and silently change extraction behavior.&lt;/p&gt; 
&lt;h4&gt;Limitations and Security&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Graphiti is beta and has no in-app graph explorer.&lt;/li&gt; 
 &lt;li&gt;One provider preset is active for the entire Graphiti deployment; it is not selected per PentAGI agent or flow.&lt;/li&gt; 
 &lt;li&gt;Graphiti extraction, reranking, and embeddings incur billing independently of the model used by the main PentAGI flow.&lt;/li&gt; 
 &lt;li&gt;Search is flow-scoped by default. Cross-flow reuse requires an explicit global-search design and must not be enabled on shared or multi-tenant deployments without additional isolation.&lt;/li&gt; 
 &lt;li&gt;The Graphiti HTTP API has no authentication layer in the bundled service. The stock compose binds it and Neo4j to &lt;code&gt;127.0.0.1&lt;/code&gt;; secure external deployments with network controls and authentication at a trusted reverse proxy.&lt;/li&gt; 
 &lt;li&gt;Agent and tool output may contain credentials and exploitation evidence. Protect Neo4j data, logs, dead letters, diagnostics, and backups accordingly.&lt;/li&gt; 
 &lt;li&gt;If Graphiti is unavailable, PentAGI continues with its primary memory and vector store after logging the failed startup health check. Set &lt;code&gt;GRAPHITI_ENABLED=false&lt;/code&gt; to disable the integration explicitly.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;GitHub and Google OAuth Integration&lt;/h3&gt; 
&lt;p&gt;OAuth integration with GitHub and Google allows users to authenticate using their existing accounts on these platforms. This provides several benefits:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Simplified login process without need to create separate credentials&lt;/li&gt; 
 &lt;li&gt;Enhanced security through trusted identity providers&lt;/li&gt; 
 &lt;li&gt;Access to user profile information from GitHub/Google accounts&lt;/li&gt; 
 &lt;li&gt;Seamless integration with existing development workflows&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;PentAGI uses &lt;code&gt;PUBLIC_URL&lt;/code&gt; as the public origin/base URL for OAuth redirects. In the default deployment, both GitHub and Google callbacks are handled by:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;${PUBLIC_URL}/api/v1/auth/login-callback
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For GitHub OAuth:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Create a new OAuth App in your GitHub account.&lt;/li&gt; 
 &lt;li&gt;Set &lt;strong&gt;Homepage URL&lt;/strong&gt; to your &lt;code&gt;PUBLIC_URL&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Set &lt;strong&gt;Authorization callback URL&lt;/strong&gt; to &lt;code&gt;${PUBLIC_URL}/api/v1/auth/login-callback&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Add the client credentials to your &lt;code&gt;.env&lt;/code&gt; file:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secret
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For Google OAuth:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Create OAuth credentials in your Google Cloud project.&lt;/li&gt; 
 &lt;li&gt;Use the same callback endpoint: &lt;code&gt;${PUBLIC_URL}/api/v1/auth/login-callback&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Add the client credentials to your &lt;code&gt;.env&lt;/code&gt; file:&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;PUBLIC_URL=https://pentagi.example.com
OAUTH_GOOGLE_CLIENT_ID=your_google_client_id
OAUTH_GOOGLE_CLIENT_SECRET=your_google_client_secret
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Make sure &lt;code&gt;PUBLIC_URL&lt;/code&gt; matches the externally accessible HTTPS address of your PentAGI instance and does not include the callback path itself. If the URL configured in the OAuth provider does not exactly match the callback generated by PentAGI, the provider will reject the login attempt with a redirect URI mismatch error.&lt;/p&gt; 
&lt;h3&gt;Docker Image Configuration&lt;/h3&gt; 
&lt;p&gt;PentAGI allows you to configure Docker image selection for executing various tasks. The system automatically chooses the most appropriate image based on the task type, but you can constrain this selection by specifying your preferred images:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Variable&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;PENTAGI_IMAGE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;vxcontrol/pentagi:latest&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Docker image used for the main PentAGI application service&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DOCKER_DEFAULT_IMAGE&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;debian:latest&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Default Docker image for general tasks and ambiguous cases&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DOCKER_DEFAULT_IMAGE_FOR_PENTEST&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;vxcontrol/kali-linux&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Default Docker image for security/penetration testing tasks&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;code&gt;PENTAGI_IMAGE&lt;/code&gt; changes the image used by the main &lt;code&gt;pentagi&lt;/code&gt; service in &lt;code&gt;docker-compose.yml&lt;/code&gt;. The &lt;code&gt;DOCKER_DEFAULT_IMAGE&lt;/code&gt; and &lt;code&gt;DOCKER_DEFAULT_IMAGE_FOR_PENTEST&lt;/code&gt; variables only affect automatic worker image selection for task execution inside PentAGI. They do not rewrite the rest of the Compose stack, so services such as &lt;code&gt;pgvector&lt;/code&gt;, &lt;code&gt;scraper&lt;/code&gt;, and the optional &lt;code&gt;graphiti&lt;/code&gt; stack still use the image references defined in the compose files.&lt;/p&gt; 
&lt;p&gt;When &lt;code&gt;DOCKER_DEFAULT_IMAGE&lt;/code&gt; and &lt;code&gt;DOCKER_DEFAULT_IMAGE_FOR_PENTEST&lt;/code&gt; are set, AI agents will be limited to the image choices you specify. This is particularly useful for:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Security Enforcement&lt;/strong&gt;: Restricting usage to only verified and trusted images&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Environment Standardization&lt;/strong&gt;: Using corporate or customized images across all operations&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Performance Optimization&lt;/strong&gt;: Utilizing pre-built images with necessary tools already installed&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Configuration examples:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Using a custom PentAGI application image
PENTAGI_IMAGE=registry.example.com/security/pentagi:latest

# Using a custom image for general tasks
DOCKER_DEFAULT_IMAGE=mycompany/custom-debian:latest

# Using a specialized image for penetration testing
DOCKER_DEFAULT_IMAGE_FOR_PENTEST=mycompany/pentest-tools:v2.0
&lt;/code&gt;&lt;/pre&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;If a user explicitly specifies a particular Docker image in their task, the system will try to use that exact image, ignoring these settings. These variables only affect the system&#39;s automatic image selection process.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;For an advanced OpenVAS/GVM experiment that uses a custom pentest image, see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/guides/openvas-custom-image.md&quot;&gt;OpenVAS via a Custom Pentest Image&lt;/a&gt;.&lt;/p&gt; 
&lt;h4&gt;Restricted Networks, Docker Mirrors, and Proxies&lt;/h4&gt; 
&lt;p&gt;If your environment cannot reach Docker Hub (&lt;code&gt;docker.io&lt;/code&gt;) directly, changing PentAGI environment variables is usually not enough to fix image download failures. PentAGI still relies on Docker&#39;s own registry access for Compose-managed services, and the installer network checks also validate Docker Hub reachability.&lt;/p&gt; 
&lt;p&gt;For restricted networks:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Confirm that the host can resolve and reach &lt;code&gt;docker.io&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;If your environment requires an outbound proxy for PentAGI or installer HTTP traffic, set the &lt;code&gt;PROXY_URL&lt;/code&gt; environment variable. To route Docker image pulls through a proxy, configure the Docker daemon or Docker Desktop proxy separately — Docker does not use PentAGI&#39;s &lt;code&gt;PROXY_URL&lt;/code&gt; for registry access.&lt;/li&gt; 
 &lt;li&gt;If Docker Hub is blocked or heavily rate-limited, configure an organization-approved registry mirror or registry proxy before running the installer or &lt;code&gt;docker compose up&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Restart Docker after changing the daemon configuration, then rerun the installer checks or Compose startup.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Example Docker daemon mirror configuration:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;registry-mirrors&quot;: [&quot;https://mirror.example.com&quot;]
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;On Linux, this is typically configured in &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;. On Docker Desktop, use the equivalent Docker Engine or proxy settings. A Docker Hub mirror covers Docker Hub-hosted images such as &lt;code&gt;vxcontrol/*&lt;/code&gt;, but the main Compose stack already includes &lt;code&gt;quay.io/prometheuscommunity/postgres-exporter&lt;/code&gt;, and the optional observability stack includes &lt;code&gt;gcr.io/cadvisor/cadvisor&lt;/code&gt;. Those registries still need direct access or individually approved proxy/mirror paths.&lt;/p&gt; 
&lt;p&gt;See the official Docker documentation for &lt;a href=&quot;https://docs.docker.com/docker-hub/image-library/mirror/&quot;&gt;registry mirrors&lt;/a&gt; and &lt;a href=&quot;https://docs.docker.com/engine/daemon/proxy/&quot;&gt;daemon proxy configuration&lt;/a&gt;.&lt;/p&gt; 
&lt;h4&gt;Troubleshooting: &quot;failed to select primary docker image via llm call&quot;&lt;/h4&gt; 
&lt;p&gt;A flow that fails immediately with &lt;code&gt;failed to select primary docker image via llm call&lt;/code&gt; usually indicates a problem with the configured LLM backend, not with Docker or the image registry. Older PentAGI versions reported the same failure as &lt;code&gt;failed to get primary docker image&lt;/code&gt;, which led users to debug Docker even though the registry was healthy.&lt;/p&gt; 
&lt;p&gt;When a flow starts, PentAGI makes its first LLM call to choose the primary Docker image for the task. This image-selection call runs through the &lt;code&gt;simple&lt;/code&gt; agent type, so a failure here points at the model assigned to that agent type rather than at Docker. A message such as &lt;code&gt;API returned unexpected status code: 502&lt;/code&gt; or &lt;code&gt;404&lt;/code&gt; in this context is returned by the LLM backend, not by Docker Hub.&lt;/p&gt; 
&lt;p&gt;This is distinct from the registry reachability problems described above: if Docker pulls succeed and the Compose stack starts, but flow creation still fails at image selection, investigate the LLM backend rather than Docker.&lt;/p&gt; 
&lt;p&gt;To diagnose:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Check PentAGI logs first: &lt;code&gt;docker logs pentagi&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Check the logs of your configured LLM backend (the server behind your provider or &lt;code&gt;LLM_SERVER_URL&lt;/code&gt;).&lt;/li&gt; 
 &lt;li&gt;Verify that the base URL, API key, and model name in &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#custom-llm-provider-configuration&quot;&gt;Custom LLM Provider Configuration&lt;/a&gt; are correct and reachable from the container. If you assign different models per agent type, check the model used by the &lt;code&gt;simple&lt;/code&gt; agent type, since image selection runs through it.&lt;/li&gt; 
 &lt;li&gt;For custom, OpenAI-compatible, vLLM, or SGLang backends, confirm that the model supports tool calling (function calling) and that the matching tool-call parser is enabled. A missing or mismatched tool-call parser is a known cause of this failure.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Development&lt;/h2&gt; 
&lt;h3&gt;Development Requirements&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;golang&lt;/li&gt; 
 &lt;li&gt;nodejs&lt;/li&gt; 
 &lt;li&gt;docker&lt;/li&gt; 
 &lt;li&gt;postgres&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Environment Setup&lt;/h3&gt; 
&lt;h4&gt;Backend Setup&lt;/h4&gt; 
&lt;p&gt;Run once &lt;code&gt;cd backend &amp;amp;&amp;amp; go mod download&lt;/code&gt; to install needed packages.&lt;/p&gt; 
&lt;p&gt;For generating swagger files have to run&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;swag init -g ../../pkg/server/router.go -o pkg/server/docs/ --parseDependency --parseInternal --parseDepth 2 -d cmd/pentagi
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;before installing &lt;code&gt;swag&lt;/code&gt; package via&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;go install github.com/swaggo/swag/cmd/swag@v1.8.7
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For generating graphql resolver files have to run&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;go run github.com/99designs/gqlgen --config ./gqlgen/gqlgen.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;after that you can see the generated files in &lt;code&gt;pkg/graph&lt;/code&gt; folder.&lt;/p&gt; 
&lt;p&gt;For generating ORM methods (database package) from sqlc configuration&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run --rm -v $(pwd):/src -w /src --network pentagi-network -e DATABASE_URL=&quot;{URL}&quot; sqlc/sqlc:1.27.0 generate -f sqlc/sqlc.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For generating Langfuse SDK from OpenAPI specification&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;fern generate --local
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;and to install fern-cli&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm add -g fern-api
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Testing&lt;/h4&gt; 
&lt;p&gt;For running tests &lt;code&gt;cd backend &amp;amp;&amp;amp; go test -v ./...&lt;/code&gt;&lt;/p&gt; 
&lt;h4&gt;Frontend Setup&lt;/h4&gt; 
&lt;p&gt;Run once &lt;code&gt;cd frontend &amp;amp;&amp;amp; pnpm install&lt;/code&gt; to install needed packages.&lt;/p&gt; 
&lt;p&gt;For generating graphql files have to run &lt;code&gt;pnpm run graphql:generate&lt;/code&gt; which using &lt;code&gt;graphql-codegen.ts&lt;/code&gt; file.&lt;/p&gt; 
&lt;p&gt;Be sure that you have &lt;code&gt;graphql-codegen&lt;/code&gt; installed globally:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm add -g graphql-codegen
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;After that you can run:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;pnpm run prettier&lt;/code&gt; to check if your code is formatted correctly&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;pnpm run prettier:fix&lt;/code&gt; to fix it&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;pnpm run lint&lt;/code&gt; to check if your code is linted correctly&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;pnpm run lint:fix&lt;/code&gt; to fix it&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;For generating SSL certificates you need to run &lt;code&gt;pnpm run ssl:generate&lt;/code&gt; which using &lt;code&gt;generate-ssl.ts&lt;/code&gt; file or it will be generated automatically when you run &lt;code&gt;pnpm run dev&lt;/code&gt;.&lt;/p&gt; 
&lt;h4&gt;Backend Configuration&lt;/h4&gt; 
&lt;p&gt;Edit the configuration for &lt;code&gt;backend&lt;/code&gt; in &lt;code&gt;.vscode/launch.json&lt;/code&gt; file:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;DATABASE_URL&lt;/code&gt; - PostgreSQL database URL (eg. &lt;code&gt;postgres://postgres:postgres@localhost:5432/pentagidb?sslmode=disable&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;DOCKER_HOST&lt;/code&gt; - Docker SDK API (eg. for macOS &lt;code&gt;DOCKER_HOST=unix:///Users/&amp;lt;my-user&amp;gt;/Library/Containers/com.docker.docker/Data/docker.raw.sock&lt;/code&gt;) &lt;a href=&quot;https://stackoverflow.com/a/62757128/5922857&quot;&gt;more info&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Optional:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;SERVER_PORT&lt;/code&gt; - Port to run the server (default: &lt;code&gt;8443&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;SERVER_USE_SSL&lt;/code&gt; - Enable SSL for the server (default: &lt;code&gt;false&lt;/code&gt;)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h5&gt;PostgreSQL / pgvector connection pool sizing&lt;/h5&gt; 
&lt;p&gt;PentAGI opens two independent connection pools to the same Postgres instance:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Pool&lt;/th&gt; 
   &lt;th&gt;Env var&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Used by&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Shared &lt;code&gt;sql.DB&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;DATABASE_MAX_OPEN_CONNS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;All sqlc queries and GORM handlers share a single &lt;code&gt;*sql.DB&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Shared &lt;code&gt;pgxpool&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;DATABASE_VECTOR_MAX_CONNS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;All pgvector stores (agent memory + knowledge API) share a single pool&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Additional tuning knob:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;DATABASE_MAX_IDLE_CONNS&lt;/code&gt; — maximum idle connections kept open in the &lt;code&gt;sql.DB&lt;/code&gt; pool between requests (default: &lt;code&gt;5&lt;/code&gt;).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Budget for the stock &lt;code&gt;vxcontrol/pgvector&lt;/code&gt; image&lt;/strong&gt; (&lt;code&gt;max_connections = 100&lt;/code&gt;, &lt;code&gt;superuser_reserved_connections = 3&lt;/code&gt;):&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Available for client connections  = 97
  pentagi sql.DB  (DATABASE_MAX_OPEN_CONNS)   = 25
  pentagi pgxpool (DATABASE_VECTOR_MAX_CONNS) = 10
  pgexporter                                  =  3
  autovacuum workers                          =  3
  ─────────────────────────────────────────
  Total consumed                              = 41
  Free buffer                                 = 56  (≈ 58 %)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The defaults are sized for &lt;strong&gt;10 parallel flows&lt;/strong&gt; with concurrent API requests. If you run more flows or deploy multiple PentAGI instances against the same Postgres, raise &lt;code&gt;max_connections&lt;/code&gt; via the &lt;code&gt;command&lt;/code&gt; override in &lt;code&gt;docker-compose.yml&lt;/code&gt; and increase the pool sizes proportionally:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;pgvector:
  image: vxcontrol/pgvector:latest
  command: postgres -c max_connections=200
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To inspect the live connection budget on a running deployment:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Postgres limits
docker exec pgvector sh -c &#39;psql -U &quot;$POSTGRES_USER&quot; -d &quot;$POSTGRES_DB&quot; -c \
  &quot;SELECT name, setting FROM pg_settings
   WHERE name IN (&#39;&quot;&#39;&quot;&#39;max_connections&#39;&quot;&#39;&quot;&#39;, &#39;&quot;&#39;&quot;&#39;superuser_reserved_connections&#39;&quot;&#39;&quot;&#39;);&quot;&#39;

# Current usage vs. available
docker exec pgvector sh -c &#39;psql -U &quot;$POSTGRES_USER&quot; -d &quot;$POSTGRES_DB&quot; -c \
  &quot;SELECT max_conn, used, max_conn - used AS available
   FROM (SELECT current_setting(&#39;&quot;&#39;&quot;&#39;max_connections&#39;&quot;&#39;&quot;&#39;)::int AS max_conn,
                count(*) AS used FROM pg_stat_activity) t;&quot;&#39;

# Breakdown by client
docker exec pgvector sh -c &#39;psql -U &quot;$POSTGRES_USER&quot; -d &quot;$POSTGRES_DB&quot; -c \
  &quot;SELECT application_name, client_addr, state, count(*)
   FROM pg_stat_activity
   WHERE pid &amp;lt;&amp;gt; pg_backend_pid()
   GROUP BY 1, 2, 3 ORDER BY count DESC;&quot;&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h5&gt;External PostgreSQL and schema handling&lt;/h5&gt; 
&lt;p&gt;&lt;code&gt;DATABASE_URL&lt;/code&gt; may point at any PostgreSQL instance, not only the bundled &lt;code&gt;pgvector&lt;/code&gt; container. Two extra knobs apply when — and only when — &lt;code&gt;TENANT_ID&lt;/code&gt; is set, because that is when PentAGI creates its own schema and rewrites the connection&#39;s &lt;code&gt;search_path&lt;/code&gt;:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Env var&lt;/th&gt; 
   &lt;th&gt;Default&lt;/th&gt; 
   &lt;th&gt;Purpose&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DATABASE_EXTENSIONS_SCHEMA&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Schema holding the shared &lt;code&gt;vector&lt;/code&gt; and &lt;code&gt;pg_trgm&lt;/code&gt; extensions that every tenant&#39;s &lt;code&gt;search_path&lt;/code&gt; must reach&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;DATABASE_SEARCH_PATH_VIA_OPTIONS&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Send the tenant &lt;code&gt;search_path&lt;/code&gt; inside the &lt;code&gt;options&lt;/code&gt; startup parameter instead of as a bare connection parameter&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;strong&gt;Supabase (cloud or self-hosted)&lt;/strong&gt; needs both of them considered, and is the reason they exist:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Supabase installs its bundled extensions into an &lt;code&gt;extensions&lt;/code&gt; schema instead of &lt;code&gt;public&lt;/code&gt;, so set &lt;code&gt;DATABASE_EXTENSIONS_SCHEMA=extensions&lt;/code&gt;. Without it, startup aborts with an error naming the schema where &lt;code&gt;vector&lt;/code&gt; was actually found — no need to move a provider-managed extension with &lt;code&gt;ALTER EXTENSION&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Supabase&#39;s pooler (Supavisor) does not reliably forward a bare &lt;code&gt;search_path&lt;/code&gt; connection parameter. Prefer a &lt;strong&gt;direct&lt;/strong&gt; PostgreSQL connection: self-hosted, expose the &lt;code&gt;db&lt;/code&gt; service port and bypass the &lt;code&gt;supavisor&lt;/code&gt; service; cloud, use the &quot;Direct connection&quot; string (or the IPv4 add-on on IPv4-only networks). If the pooler cannot be bypassed, use its session mode and try &lt;code&gt;DATABASE_SEARCH_PATH_VIA_OPTIONS=true&lt;/code&gt; — PentAGI verifies the effective schema on boot and refuses to start if it did not take effect, so a silent cross-tenant data mix-up is not possible.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Both settings are managed by the installer under &lt;em&gt;Server Settings&lt;/em&gt;, next to &lt;code&gt;TENANT_ID&lt;/code&gt; — see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#running-several-instances-tenant_id&quot;&gt;Running Several Instances&lt;/a&gt; for that scenario, and &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/docs/config.md#multi-instance-deployment-tenant_id&quot;&gt;Multi-Instance Deployment&lt;/a&gt; for the full matrix, including the PgBouncer recipe (&lt;code&gt;pool_mode = session&lt;/code&gt;, &lt;code&gt;ignore_startup_parameters&lt;/code&gt;, per-tenant &lt;code&gt;connect_query&lt;/code&gt;).&lt;/p&gt; 
&lt;h4&gt;Frontend Configuration&lt;/h4&gt; 
&lt;p&gt;Edit the configuration for &lt;code&gt;frontend&lt;/code&gt; in &lt;code&gt;.vscode/launch.json&lt;/code&gt; file:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;VITE_API_URL&lt;/code&gt; - Backend API URL. &lt;em&gt;Omit&lt;/em&gt; the URL scheme (e.g., &lt;code&gt;localhost:8080&lt;/code&gt; &lt;em&gt;NOT&lt;/em&gt; &lt;code&gt;http://localhost:8080&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;VITE_USE_HTTPS&lt;/code&gt; - Enable SSL for the server (default: &lt;code&gt;false&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;VITE_PORT&lt;/code&gt; - Port to run the server (default: &lt;code&gt;8000&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;VITE_HOST&lt;/code&gt; - Host to run the server (default: &lt;code&gt;0.0.0.0&lt;/code&gt;)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Running the Application&lt;/h3&gt; 
&lt;h4&gt;Backend&lt;/h4&gt; 
&lt;p&gt;Run the command(s) in &lt;code&gt;backend&lt;/code&gt; folder:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Use &lt;code&gt;.env&lt;/code&gt; file to set environment variables like a &lt;code&gt;source .env&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;go run cmd/pentagi/main.go&lt;/code&gt; to start the server&lt;/li&gt; 
&lt;/ul&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;The first run can take a while as dependencies and docker images need to be downloaded to setup the backend environment.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h4&gt;Frontend&lt;/h4&gt; 
&lt;p&gt;Run the command(s) in &lt;code&gt;frontend&lt;/code&gt; folder:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Run &lt;code&gt;pnpm install&lt;/code&gt; to install the dependencies&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;pnpm run dev&lt;/code&gt; to run the web app&lt;/li&gt; 
 &lt;li&gt;Run &lt;code&gt;pnpm run build&lt;/code&gt; to build the web app&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Open your browser and visit the web app URL.&lt;/p&gt; 
&lt;h2&gt;Testing LLM Agents&lt;/h2&gt; 
&lt;p&gt;PentAGI includes a powerful utility called &lt;code&gt;ctester&lt;/code&gt; for testing and validating LLM agent capabilities. This tool helps ensure your LLM provider configurations work correctly with different agent types, allowing you to optimize model selection for each specific agent role.&lt;/p&gt; 
&lt;p&gt;The utility features parallel testing of multiple agents, detailed reporting, and flexible configuration options.&lt;/p&gt; 
&lt;h3&gt;Key Features&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Parallel Testing&lt;/strong&gt;: Tests multiple agents simultaneously for faster results&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Comprehensive Test Suite&lt;/strong&gt;: Evaluates basic completion, JSON responses, function calling, and penetration testing knowledge&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Detailed Reporting&lt;/strong&gt;: Generates markdown reports with success rates and performance metrics&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Flexible Configuration&lt;/strong&gt;: Test specific agents or test groups as needed&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Specialized Test Groups&lt;/strong&gt;: Includes domain-specific tests for cybersecurity and penetration testing scenarios&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Usage Scenarios&lt;/h3&gt; 
&lt;h4&gt;For Developers (with local Go environment)&lt;/h4&gt; 
&lt;p&gt;If you&#39;ve cloned the repository and have Go installed:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Default configuration with .env file
cd backend
go run cmd/ctester/*.go -verbose

# Custom provider configuration
go run cmd/ctester/*.go -config ../examples/configs/openrouter.provider.yml -verbose

# Generate a report file
go run cmd/ctester/*.go -config ../examples/configs/deepinfra.provider.yml -report ../test-report.md

# Test specific agent types only
go run cmd/ctester/*.go -agents simple,simple_json,primary_agent -verbose

# Test specific test groups only
go run cmd/ctester/*.go -groups basic,advanced -verbose
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;For Users (using Docker image)&lt;/h4&gt; 
&lt;p&gt;If you prefer to use the pre-built Docker image without setting up a development environment:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Using Docker to test with default environment
docker run --rm -v $(pwd)/.env:/opt/pentagi/.env vxcontrol/pentagi /opt/pentagi/bin/ctester -verbose

# Test with your custom provider configuration
docker run --rm \
  -v $(pwd)/.env:/opt/pentagi/.env \
  -v $(pwd)/my-config.yml:/opt/pentagi/config.yml \
  vxcontrol/pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/config.yml -agents simple,primary_agent,coder -verbose

# Generate a detailed report
docker run --rm \
  -v $(pwd)/.env:/opt/pentagi/.env \
  -v $(pwd):/opt/pentagi/output \
  vxcontrol/pentagi /opt/pentagi/bin/ctester -report /opt/pentagi/output/report.md
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Using Pre-configured Providers&lt;/h4&gt; 
&lt;p&gt;The Docker image comes with built-in support for major providers (OpenAI, Anthropic, Gemini, Ollama) and pre-configured provider files for additional services (OpenRouter, OpenCode, Atlas, OrcaRouter, DeepInfra, DeepSeek, Moonshot, Novita, xAI):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Test with OpenRouter configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/openrouter.provider.yml

# Test with OpenCode Go plan configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/opencode.provider.yml

# Test with DeepInfra configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/deepinfra.provider.yml

# Test with DeepSeek configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -provider deepseek

# Test with GLM configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -provider glm

# Test with Kimi configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -provider kimi

# Test with Qwen configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -provider qwen

# Test with DeepSeek configuration file for custom provider
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/deepseek.provider.yml

# Test with Moonshot configuration file for custom provider
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/moonshot.provider.yml

# Test with Novita configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/novita.provider.yml

# Test with xAI configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/xai.provider.yml

# Test with OpenAI configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -type openai

# Test with Anthropic configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -type anthropic

# Test with Gemini configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -type gemini

# Test with AWS Bedrock configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -type bedrock

# Test with Custom OpenAI configuration
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/custom-openai.provider.yml

# Test with Ollama configuration (local inference)
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/ollama-llama318b.provider.yml

# Test with Ollama Qwen3 32B configuration (requires custom model creation)
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/ollama-qwen332b-fp16-tc.provider.yml

# Test with Ollama QwQ 32B configuration (requires custom model creation and 71.3GB VRAM)
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/ollama-qwq32b-fp16-tc.provider.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To use these configurations, your &lt;code&gt;.env&lt;/code&gt; file only needs to contain:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;LLM_SERVER_URL=https://openrouter.ai/api/v1      # or https://api.deepinfra.com/v1/openai or https://api.openai.com/v1 or https://opencode.ai/zen/go/v1 or https://api.novita.ai/openai or https://api.atlascloud.ai/v1 or https://api.orcarouter.ai/v1 or https://api.x.ai/v1
LLM_SERVER_KEY=your_api_key
LLM_SERVER_MODEL=                                # Leave empty, as models are specified in the config
LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/openrouter.provider.yml  # or deepinfra.provider.ymll or opencode.provider.ymll or custom-openai.provider.yml or novita.provider.yml or atlas.provider.yml or orcarouter.provider.yml or xai.provider.yml
LLM_SERVER_PROVIDER=                             # Provider name for LiteLLM proxy (e.g., openrouter, deepseek, moonshot, novita, opencode, orcarouter, xai)
LLM_SERVER_LEGACY_REASONING=false                # Controls reasoning format, for OpenAI must be true (default: false)
LLM_SERVER_PRESERVE_REASONING=false              # Preserve reasoning content in multi-turn conversations (required by Moonshot, default: false)

# For OpenAI (official API)
OPEN_AI_KEY=your_openai_api_key                  # Your OpenAI API key
OPEN_AI_SERVER_URL=https://api.openai.com/v1     # OpenAI API endpoint

# For Anthropic (Claude models)
ANTHROPIC_API_KEY=your_anthropic_api_key         # Your Anthropic API key
ANTHROPIC_SERVER_URL=https://api.anthropic.com/v1  # Anthropic API endpoint

# For Gemini (Google AI)
GEMINI_API_KEY=your_gemini_api_key               # Your Google AI API key
GEMINI_SERVER_URL=https://generativelanguage.googleapis.com  # Google AI API endpoint

# For AWS Bedrock (enterprise foundation models)
BEDROCK_REGION=us-east-1                         # AWS region for Bedrock service
# Authentication (choose one method, priority: DefaultAuth &amp;gt; BearerToken &amp;gt; AccessKey):
BEDROCK_DEFAULT_AUTH=false                       # Use AWS SDK credential chain (env vars, EC2 role, ~/.aws/credentials)
BEDROCK_BEARER_TOKEN=                            # Bearer token authentication (takes priority over static credentials)
BEDROCK_ACCESS_KEY_ID=your_aws_access_key        # AWS access key ID (static credentials)
BEDROCK_SECRET_ACCESS_KEY=your_aws_secret_key    # AWS secret access key (static credentials)
BEDROCK_SESSION_TOKEN=                           # AWS session token (optional, for temporary credentials with static auth)
BEDROCK_SERVER_URL=                              # Optional custom Bedrock endpoint (VPC endpoints, local testing)
BEDROCK_CONFIG_PATH=                             # Optional path to a custom YAML provider config (overrides built-in model/pricing definitions)

# For Ollama (local server or cloud)
OLLAMA_SERVER_URL=                               # Local: http://ollama-server:11434, Cloud: https://ollama.com
OLLAMA_SERVER_API_KEY=                           # Required for Ollama Cloud (https://ollama.com/settings/keys), leave empty for local
OLLAMA_SERVER_MODEL=
OLLAMA_SERVER_CONFIG_PATH=
OLLAMA_SERVER_PULL_MODELS_TIMEOUT=
OLLAMA_SERVER_PULL_MODELS_ENABLED=
OLLAMA_SERVER_LOAD_MODELS_ENABLED=

# For DeepSeek (Chinese AI with strong reasoning)
DEEPSEEK_API_KEY=                                # DeepSeek API key
DEEPSEEK_SERVER_URL=https://api.deepseek.com     # DeepSeek API endpoint
DEEPSEEK_PROVIDER=                               # Optional: LiteLLM prefix (e.g., &#39;deepseek&#39;)

# For GLM (Zhipu AI)
GLM_API_KEY=                                     # GLM API key
GLM_SERVER_URL=https://api.z.ai/api/paas/v4      # GLM API endpoint (international)
GLM_PROVIDER=                                    # Optional: LiteLLM prefix (e.g., &#39;zai&#39;)

# For Kimi (Moonshot AI)
KIMI_API_KEY=                                    # Kimi API key
KIMI_SERVER_URL=https://api.moonshot.ai/v1       # Kimi API endpoint (international)
KIMI_PROVIDER=                                   # Optional: LiteLLM prefix (e.g., &#39;moonshot&#39;)

# For Qwen (Alibaba Cloud DashScope)
QWEN_API_KEY=                                    # Qwen API key
QWEN_SERVER_URL=https://dashscope-us.aliyuncs.com/compatible-mode/v1  # Qwen API endpoint (US)
QWEN_PROVIDER=                                   # Optional: LiteLLM prefix (e.g., &#39;dashscope&#39;)

# For Ollama (local inference) use variables above
OLLAMA_SERVER_URL=http://localhost:11434
OLLAMA_SERVER_MODEL=llama3.1:8b-instruct-q8_0
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-llama318b.provider.yml
OLLAMA_SERVER_PULL_MODELS_ENABLED=false
OLLAMA_SERVER_LOAD_MODELS_ENABLED=false
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Using OpenAI with Unverified Organizations&lt;/h4&gt; 
&lt;p&gt;For OpenAI accounts with unverified organizations that don&#39;t have access to the latest reasoning models (o1, o3, o4-mini), you need to use a custom configuration.&lt;/p&gt; 
&lt;p&gt;To use OpenAI with unverified organization accounts, configure your &lt;code&gt;.env&lt;/code&gt; file as follows:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;LLM_SERVER_URL=https://api.openai.com/v1
LLM_SERVER_KEY=your_openai_api_key
LLM_SERVER_MODEL=                                # Leave empty, models are specified in config
LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/custom-openai.provider.yml
LLM_SERVER_LEGACY_REASONING=true                 # Required for OpenAI reasoning format
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This configuration uses the pre-built &lt;code&gt;custom-openai.provider.yml&lt;/code&gt; file that maps all agent types to models available for unverified organizations, using &lt;code&gt;o3-mini&lt;/code&gt; instead of models like &lt;code&gt;o1&lt;/code&gt;, &lt;code&gt;o3&lt;/code&gt;, and &lt;code&gt;o4-mini&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;You can test this configuration using:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Test with custom OpenAI configuration for unverified accounts
docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/custom-openai.provider.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;The &lt;code&gt;LLM_SERVER_LEGACY_REASONING=true&lt;/code&gt; setting is crucial for OpenAI compatibility as it ensures reasoning parameters are sent in the format expected by OpenAI&#39;s API.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h4&gt;Using LiteLLM Proxy&lt;/h4&gt; 
&lt;p&gt;When using LiteLLM proxy to access various LLM providers, model names are prefixed with the provider name (e.g., &lt;code&gt;moonshot/kimi-2.5&lt;/code&gt; instead of &lt;code&gt;kimi-2.5&lt;/code&gt;). To use the same provider configuration files with both direct API access and LiteLLM proxy, set the &lt;code&gt;LLM_SERVER_PROVIDER&lt;/code&gt; variable:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Direct access to Moonshot API
LLM_SERVER_URL=https://api.moonshot.ai/v1
LLM_SERVER_KEY=your_moonshot_api_key
LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/moonshot.provider.yml
LLM_SERVER_PROVIDER=                             # Empty for direct access

# Access via LiteLLM proxy
LLM_SERVER_URL=http://litellm-proxy:4000
LLM_SERVER_KEY=your_litellm_api_key
LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/moonshot.provider.yml
LLM_SERVER_PROVIDER=moonshot                     # Provider prefix for LiteLLM
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;With &lt;code&gt;LLM_SERVER_PROVIDER=moonshot&lt;/code&gt;, the system automatically prefixes all model names from the configuration file with &lt;code&gt;moonshot/&lt;/code&gt;, making them compatible with LiteLLM&#39;s model naming convention.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;LiteLLM Provider Name Mapping:&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;When using LiteLLM proxy, set the corresponding &lt;code&gt;*_PROVIDER&lt;/code&gt; variable to enable model prefixing:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;deepseek&lt;/code&gt; - for DeepSeek models (&lt;code&gt;DEEPSEEK_PROVIDER=deepseek&lt;/code&gt; → &lt;code&gt;deepseek/deepseek-v4-flash&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;zai&lt;/code&gt; - for GLM models (&lt;code&gt;GLM_PROVIDER=zai&lt;/code&gt; → &lt;code&gt;zai/glm-4&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;moonshot&lt;/code&gt; - for Kimi models (&lt;code&gt;KIMI_PROVIDER=moonshot&lt;/code&gt; → &lt;code&gt;moonshot/kimi-k2.5&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;dashscope&lt;/code&gt; - for Qwen models (&lt;code&gt;QWEN_PROVIDER=dashscope&lt;/code&gt; → &lt;code&gt;dashscope/qwen-plus&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt; - for major cloud providers&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;opencode&lt;/code&gt; - for OpenCode Go plan&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;openrouter&lt;/code&gt; - for OpenRouter aggregator&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;orcarouter&lt;/code&gt; - for OrcaRouter aggregator&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;deepinfra&lt;/code&gt; - for DeepInfra hosting&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;novita&lt;/code&gt; - for Novita AI&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;xai&lt;/code&gt; - for xAI (&lt;code&gt;grok-*&lt;/code&gt; models)&lt;/li&gt; 
 &lt;li&gt;Any other provider name configured in your LiteLLM instance&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Example with LiteLLM:&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Use DeepSeek models via LiteLLM proxy with model prefixing
DEEPSEEK_API_KEY=your_litellm_proxy_key
DEEPSEEK_SERVER_URL=http://litellm-proxy:4000
DEEPSEEK_PROVIDER=deepseek  # Models become deepseek/deepseek-v4-flash, deepseek/deepseek-v4-pro for LiteLLM

# Direct DeepSeek API usage (no prefix needed)
DEEPSEEK_API_KEY=your_deepseek_api_key
DEEPSEEK_SERVER_URL=https://api.deepseek.com
# Leave DEEPSEEK_PROVIDER empty
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;This approach allows you to:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Use the same configuration files for both direct and proxied access&lt;/li&gt; 
 &lt;li&gt;Switch between providers without modifying configuration files&lt;/li&gt; 
 &lt;li&gt;Easily test different routing strategies with LiteLLM&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;Running Tests in a Production Environment&lt;/h4&gt; 
&lt;p&gt;If you already have a running PentAGI container and want to test the current configuration:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Run ctester in an existing container using current environment variables
docker exec -it pentagi /opt/pentagi/bin/ctester -verbose

# Test specific agent types with deterministic ordering
docker exec -it pentagi /opt/pentagi/bin/ctester -agents simple,primary_agent,pentester -groups basic,knowledge -verbose

# Generate a report file inside the container
docker exec -it pentagi /opt/pentagi/bin/ctester -report /opt/pentagi/data/agent-test-report.md

# Access the report from the host
docker cp pentagi:/opt/pentagi/data/agent-test-report.md ./
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Command-line Options&lt;/h3&gt; 
&lt;p&gt;The utility accepts several options:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;-env &amp;lt;path&amp;gt;&lt;/code&gt; - Path to environment file (default: &lt;code&gt;.env&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-type &amp;lt;provider&amp;gt;&lt;/code&gt; - Provider type: &lt;code&gt;custom&lt;/code&gt;, &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, &lt;code&gt;ollama&lt;/code&gt;, &lt;code&gt;bedrock&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt; (default: &lt;code&gt;custom&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-config &amp;lt;path&amp;gt;&lt;/code&gt; - Path to custom provider config (default: from &lt;code&gt;LLM_SERVER_CONFIG_PATH&lt;/code&gt; env variable)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-tests &amp;lt;path&amp;gt;&lt;/code&gt; - Path to custom tests YAML file (optional)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-report &amp;lt;path&amp;gt;&lt;/code&gt; - Path to write the report file (optional)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-agents &amp;lt;list&amp;gt;&lt;/code&gt; - Comma-separated list of agent types to test (default: &lt;code&gt;all&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-groups &amp;lt;list&amp;gt;&lt;/code&gt; - Comma-separated list of test groups to run (default: &lt;code&gt;all&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-verbose&lt;/code&gt; - Enable verbose output with detailed test results for each agent&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Available Agent Types&lt;/h3&gt; 
&lt;p&gt;Agents are tested in the following deterministic order:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;simple&lt;/strong&gt; - Basic completion tasks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;simple_json&lt;/strong&gt; - JSON-structured responses&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;primary_agent&lt;/strong&gt; - Main reasoning agent&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;assistant&lt;/strong&gt; - Interactive assistant mode&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;generator&lt;/strong&gt; - Content generation&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;refiner&lt;/strong&gt; - Content refinement and improvement&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;adviser&lt;/strong&gt; - Expert advice and consultation&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;reflector&lt;/strong&gt; - Self-reflection and analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;searcher&lt;/strong&gt; - Information gathering and search&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;enricher&lt;/strong&gt; - Data enrichment and expansion&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;coder&lt;/strong&gt; - Code generation and analysis&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;installer&lt;/strong&gt; - Installation and setup tasks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;pentester&lt;/strong&gt; - Penetration testing and security assessment&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Available Test Groups&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;basic&lt;/strong&gt; - Fundamental completion and prompt response tests&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;advanced&lt;/strong&gt; - Complex reasoning and function calling tests&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;json&lt;/strong&gt; - JSON format validation and structure tests (specifically designed for &lt;code&gt;simple_json&lt;/code&gt; agent)&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;knowledge&lt;/strong&gt; - Domain-specific cybersecurity and penetration testing knowledge tests&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &lt;code&gt;json&lt;/code&gt; test group is specifically designed for the &lt;code&gt;simple_json&lt;/code&gt; agent type, while all other agents are tested with &lt;code&gt;basic&lt;/code&gt;, &lt;code&gt;advanced&lt;/code&gt;, and &lt;code&gt;knowledge&lt;/code&gt; groups. This specialization ensures optimal testing coverage for each agent&#39;s intended purpose.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Example Provider Configuration&lt;/h3&gt; 
&lt;p&gt;Provider configuration defines which models to use for different agent types:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;simple:
  model: &quot;provider/model-name&quot;
  temperature: 0.7
  top_p: 0.95
  n: 1
  max_tokens: 4000

simple_json:
  model: &quot;provider/model-name&quot;
  temperature: 0.7
  top_p: 1.0
  n: 1
  max_tokens: 4000
  json: true

# ... other agent types ...
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Optimization Workflow&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Create a baseline&lt;/strong&gt;: Run tests with default configuration to establish benchmark performance&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Analyze agent-specific performance&lt;/strong&gt;: Review the deterministic agent ordering to identify underperforming agents&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Test specialized configurations&lt;/strong&gt;: Experiment with different models for each agent type using provider-specific configs&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Focus on domain knowledge&lt;/strong&gt;: Pay special attention to knowledge group tests for cybersecurity expertise&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Validate function calling&lt;/strong&gt;: Ensure tool-based tests pass consistently for critical agent types&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Compare results&lt;/strong&gt;: Look for the best success rate and performance across all test groups&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Deploy optimal configuration&lt;/strong&gt;: Use in production with your optimized setup&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;This tool helps ensure your AI agents are using the most effective models for their specific tasks, improving reliability while optimizing costs.&lt;/p&gt; 
&lt;h2&gt;Embedding Configuration and Testing&lt;/h2&gt; 
&lt;p&gt;PentAGI uses vector embeddings for semantic search, knowledge storage, and memory management. The system supports multiple embedding providers that can be configured according to your needs and preferences.&lt;/p&gt; 
&lt;h3&gt;Supported Embedding Providers&lt;/h3&gt; 
&lt;p&gt;PentAGI supports the following embedding providers:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;OpenAI&lt;/strong&gt; (default): Uses OpenAI&#39;s text embedding models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ollama&lt;/strong&gt;: Local embedding model through Ollama&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Mistral&lt;/strong&gt;: Mistral AI&#39;s embedding models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Jina&lt;/strong&gt;: Jina AI&#39;s embedding service&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;HuggingFace&lt;/strong&gt;: Models from HuggingFace&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;GoogleAI&lt;/strong&gt;: Google&#39;s embedding models&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;VoyageAI&lt;/strong&gt;: VoyageAI&#39;s embedding models&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;OpenAI-compatible third parties&lt;/strong&gt;: any provider exposing OpenAI&#39;s &lt;code&gt;/embeddings&lt;/code&gt; API can be plugged in via &lt;code&gt;EMBEDDING_PROVIDER=openai&lt;/code&gt; with a custom &lt;code&gt;EMBEDDING_URL&lt;/code&gt;. For example, &lt;strong&gt;Qwen DashScope&lt;/strong&gt; offers &lt;code&gt;text-embedding-v4&lt;/code&gt; through the &lt;code&gt;/compatible-mode/v1&lt;/code&gt; endpoint (International and Chinese Mainland regions only — the US region does not expose embeddings). See the &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#alternative-integrations&quot;&gt;Qwen Alternative Integrations&lt;/a&gt; subsection for the full configuration snippet.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Embedding Provider Configuration&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;h3&gt;Environment Variables&lt;/h3&gt; 
 &lt;p&gt;To configure the embedding provider, set the following environment variables in your &lt;code&gt;.env&lt;/code&gt; file:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Primary embedding configuration
EMBEDDING_PROVIDER=openai       # Provider type (openai, ollama, mistral, jina, huggingface, googleai, voyageai)
EMBEDDING_MODEL=text-embedding-3-small  # Model name to use
EMBEDDING_URL=                  # Optional custom API endpoint
EMBEDDING_KEY=                  # API key for the provider (if required)
EMBEDDING_BATCH_SIZE=100        # Number of documents to process in a batch
EMBEDDING_STRIP_NEW_LINES=true  # Whether to remove new lines from text before embedding
EMBEDDING_MAX_TEXT_BYTES=8192   # Max bytes of text sent to embedding model per document (byte proxy for token limit)

# Advanced settings
PROXY_URL=                      # Optional proxy for all API calls
HTTP_CLIENT_TIMEOUT=600         # Timeout in seconds for external API calls (default: 600, 0 = no timeout)
TERMINAL_TOOL_TIMEOUT=1200      # Default timeout in seconds for terminal tool commands when timeout=0 or negative (range: 1–10800; values &amp;lt;= 0 or above 10800 are clamped to 10800 = 3 hours)

# SSL/TLS Certificate Configuration (for external communication with LLM backends and tool servers)
EXTERNAL_SSL_CA_PATH=           # Path to custom CA certificate file (PEM format) inside the container
                                # Must point to /opt/pentagi/ssl/ directory (e.g., /opt/pentagi/ssl/ca-bundle.pem)
EXTERNAL_SSL_INSECURE=false     # Skip certificate verification (use only for testing)
&lt;/code&gt;&lt;/pre&gt; 
 &lt;details&gt; 
  &lt;summary&gt;&lt;b&gt;How to Add Custom CA Certificates&lt;/b&gt; (click to expand)&lt;/summary&gt; 
  &lt;p&gt;If you see this error: &lt;code&gt;tls: failed to verify certificate: x509: certificate signed by unknown authority&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Get your CA certificate bundle in PEM format (can contain multiple certificates)&lt;/p&gt; 
  &lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Place the file in the SSL directory on your host machine:&lt;/p&gt; 
  &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Default location (if PENTAGI_SSL_DIR is not set)
cp ca-bundle.pem ./pentagi-ssl/

# Or custom location (if using PENTAGI_SSL_DIR in docker-compose.yml)
cp ca-bundle.pem /path/to/your/ssl/dir/
&lt;/code&gt;&lt;/pre&gt; 
  &lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Set the path in &lt;code&gt;.env&lt;/code&gt; file (path must be inside the container):&lt;/p&gt; 
  &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# The volume pentagi-ssl is mounted to /opt/pentagi/ssl inside the container
EXTERNAL_SSL_CA_PATH=/opt/pentagi/ssl/ca-bundle.pem
EXTERNAL_SSL_INSECURE=false
&lt;/code&gt;&lt;/pre&gt; 
  &lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Restart PentAGI:&lt;/p&gt; 
  &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker compose restart pentagi
&lt;/code&gt;&lt;/pre&gt; 
  &lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;The &lt;code&gt;pentagi-ssl&lt;/code&gt; volume is mounted to &lt;code&gt;/opt/pentagi/ssl&lt;/code&gt; inside the container&lt;/li&gt; 
   &lt;li&gt;You can change host directory using &lt;code&gt;PENTAGI_SSL_DIR&lt;/code&gt; variable in docker-compose.yml&lt;/li&gt; 
   &lt;li&gt;File supports multiple certificates and intermediate CAs in one PEM file&lt;/li&gt; 
   &lt;li&gt;Use &lt;code&gt;EXTERNAL_SSL_INSECURE=true&lt;/code&gt; only for testing (not recommended for production)&lt;/li&gt; 
  &lt;/ul&gt; 
 &lt;/details&gt; 
 &lt;h3&gt;Provider-Specific Limitations&lt;/h3&gt; 
 &lt;p&gt;Each provider has specific limitations and supported features:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;OpenAI&lt;/strong&gt;: Supports all configuration options&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Ollama&lt;/strong&gt;: Does not support &lt;code&gt;EMBEDDING_KEY&lt;/code&gt; as it uses local models&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Mistral&lt;/strong&gt;: Does not support &lt;code&gt;EMBEDDING_MODEL&lt;/code&gt; or custom HTTP client&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Jina&lt;/strong&gt;: Does not support custom HTTP client&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;HuggingFace&lt;/strong&gt;: Requires &lt;code&gt;EMBEDDING_KEY&lt;/code&gt; and supports all other options&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;GoogleAI&lt;/strong&gt;: Does not support &lt;code&gt;EMBEDDING_URL&lt;/code&gt;, requires &lt;code&gt;EMBEDDING_KEY&lt;/code&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;VoyageAI&lt;/strong&gt;: Supports all configuration options&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;If &lt;code&gt;EMBEDDING_URL&lt;/code&gt; and &lt;code&gt;EMBEDDING_KEY&lt;/code&gt; are not specified, the system will attempt to use the corresponding LLM provider settings (e.g., &lt;code&gt;OPEN_AI_KEY&lt;/code&gt; when &lt;code&gt;EMBEDDING_PROVIDER=openai&lt;/code&gt;).&lt;/p&gt; 
 &lt;h3&gt;Why Consistent Embedding Providers Matter&lt;/h3&gt; 
 &lt;p&gt;It&#39;s crucial to use the same embedding provider consistently because:&lt;/p&gt; 
 &lt;ol&gt; 
  &lt;li&gt;&lt;strong&gt;Vector Compatibility&lt;/strong&gt;: Different providers produce vectors with different dimensions and mathematical properties&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Semantic Consistency&lt;/strong&gt;: Changing providers can break semantic similarity between previously embedded documents&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Memory Corruption&lt;/strong&gt;: Mixed embeddings can lead to poor search results and broken knowledge base functionality&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;p&gt;If you change your embedding provider, you should flush and reindex your entire knowledge base (see &lt;code&gt;etester&lt;/code&gt; utility below).&lt;/p&gt; 
&lt;/details&gt; 
&lt;h3&gt;Embedding Tester Utility (etester)&lt;/h3&gt; 
&lt;p&gt;PentAGI includes a specialized &lt;code&gt;etester&lt;/code&gt; utility for testing, managing, and debugging embedding functionality. This tool is essential for diagnosing and resolving issues related to vector embeddings and knowledge storage.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Etester Commands&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Test embedding provider and database connection
cd backend
go run cmd/etester/main.go test -verbose

# Show statistics about the embedding database
go run cmd/etester/main.go info

# Delete all documents from the embedding database (use with caution!)
go run cmd/etester/main.go flush

# Recalculate embeddings for all documents (after changing provider)
go run cmd/etester/main.go reindex

# Search for documents in the embedding database
go run cmd/etester/main.go search -query &quot;How to install PostgreSQL&quot; -limit 5
&lt;/code&gt;&lt;/pre&gt; 
 &lt;h3&gt;Using Docker&lt;/h3&gt; 
 &lt;p&gt;If you&#39;re running PentAGI in Docker, you can use etester from within the container:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Test embedding provider
docker exec -it pentagi /opt/pentagi/bin/etester test

# Show detailed database information
docker exec -it pentagi /opt/pentagi/bin/etester info -verbose
&lt;/code&gt;&lt;/pre&gt; 
 &lt;h3&gt;Advanced Search Options&lt;/h3&gt; 
 &lt;p&gt;The &lt;code&gt;search&lt;/code&gt; command supports various filters to narrow down results:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Filter by document type
docker exec -it pentagi /opt/pentagi/bin/etester search -query &quot;Security vulnerability&quot; -doc_type guide -threshold 0.8

# Filter by flow ID
docker exec -it pentagi /opt/pentagi/bin/etester search -query &quot;Code examples&quot; -doc_type code -flow_id 42

# All available search options
docker exec -it pentagi /opt/pentagi/bin/etester search -help
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;Available search parameters:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;-query STRING&lt;/code&gt;: Search query text (required)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;-doc_type STRING&lt;/code&gt;: Filter by document type (answer, memory, guide, code)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;-flow_id NUMBER&lt;/code&gt;: Filter by flow ID (positive number)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;-answer_type STRING&lt;/code&gt;: Filter by answer type (guide, vulnerability, code, tool, other)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;-guide_type STRING&lt;/code&gt;: Filter by guide type (install, configure, use, pentest, development, other)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;-limit NUMBER&lt;/code&gt;: Maximum number of results (default: 3)&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;-threshold NUMBER&lt;/code&gt;: Similarity threshold (0.0-1.0, default: 0.7)&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Memory Lifecycle Across Flows&lt;/h3&gt; 
 &lt;p&gt;PentAGI stores several kinds of vector documents, and they serve different purposes:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;code&gt;memory&lt;/code&gt; captures flow-specific execution history such as tool results and agent observations&lt;/li&gt; 
  &lt;li&gt;&lt;code&gt;guide&lt;/code&gt;, &lt;code&gt;answer&lt;/code&gt;, and &lt;code&gt;code&lt;/code&gt; are intended for reusable knowledge that can help future runs&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;If you want to inspect what happened in one engagement, search the vector store with the related &lt;code&gt;flow_id&lt;/code&gt;. If you want knowledge to survive beyond a single run, store the durable result explicitly as a &lt;code&gt;guide&lt;/code&gt;, &lt;code&gt;answer&lt;/code&gt;, or &lt;code&gt;code&lt;/code&gt; document instead of relying on execution memory alone.&lt;/p&gt; 
 &lt;p&gt;For example, if a target has recurring setup notes, authentication quirks, or target-specific testing methodology, instruct the agent to save that information as a &lt;code&gt;guide&lt;/code&gt; and search for it at the beginning of the next engagement. This is the safest current workflow when you want a new flow to start with reusable context.&lt;/p&gt; 
 &lt;p&gt;Flow deletion removes the flow from normal queries through PentAGI&#39;s soft-delete mechanism, so reusable knowledge should be treated as a separate concern from per-flow execution history. If you enable the optional Graphiti knowledge graph described earlier in this README, treat its current search context as scoped to the active flow or engagement unless you explicitly build a separate cross-flow reuse workflow.&lt;/p&gt; 
 &lt;h3&gt;Common Troubleshooting Scenarios&lt;/h3&gt; 
 &lt;ol&gt; 
  &lt;li&gt;&lt;strong&gt;After changing embedding provider&lt;/strong&gt;: Always run &lt;code&gt;flush&lt;/code&gt; or &lt;code&gt;reindex&lt;/code&gt; to ensure consistency&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Poor search results&lt;/strong&gt;: Try adjusting the similarity threshold or check if embeddings are correctly generated&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Database connection issues&lt;/strong&gt;: Verify PostgreSQL is running with pgvector extension installed&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Missing API keys&lt;/strong&gt;: Check environment variables for your chosen embedding provider&lt;/li&gt; 
 &lt;/ol&gt; 
&lt;/details&gt; 
&lt;h3&gt;Troubleshooting: Flow Stalls or Hangs Without Progress&lt;/h3&gt; 
&lt;p&gt;If a flow starts but then appears to wait indefinitely with no subtasks progressing, a common cause is an embedding provider that is misconfigured or unreachable. PentAGI uses the embedding provider to store and search vector memory while a flow runs, so embedding calls that fail or hang can leave a flow waiting instead of advancing.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;1. Check the container logs first.&lt;/strong&gt; Embedding errors surface in the PentAGI logs:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker logs pentagi
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Look for embedding-related failures such as authentication errors (401/403), wrong-model or not-found errors (404), connection timeouts, or TLS certificate errors. These point at the embedding provider configuration rather than at the flow itself.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;2. Validate the provider with etester.&lt;/strong&gt; The &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#embedding-tester-utility-etester&quot;&gt;Embedding Tester Utility (etester)&lt;/a&gt; checks both the embedding provider and the database connection without starting a flow:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker exec -it pentagi /opt/pentagi/bin/etester test -verbose
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;A failing &lt;code&gt;test&lt;/code&gt; confirms the problem is in the embedding configuration rather than in the flow.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;3. Verify the configuration.&lt;/strong&gt; Check the following in your &lt;code&gt;.env&lt;/code&gt; file against the &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#supported-embedding-providers&quot;&gt;Supported Embedding Providers&lt;/a&gt; list and each provider&#39;s documented limitations:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;EMBEDDING_PROVIDER&lt;/code&gt; is one of the supported providers (default &lt;code&gt;openai&lt;/code&gt;).&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;EMBEDDING_MODEL&lt;/code&gt; is a valid model name for that provider.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;EMBEDDING_URL&lt;/code&gt; and &lt;code&gt;EMBEDDING_KEY&lt;/code&gt; are correct for the provider. If both are left empty, PentAGI falls back to the matching LLM provider settings (for example &lt;code&gt;OPEN_AI_KEY&lt;/code&gt; and &lt;code&gt;OPEN_AI_SERVER_URL&lt;/code&gt; when &lt;code&gt;EMBEDDING_PROVIDER=openai&lt;/code&gt;), so a missing or wrong key there can break embeddings too.&lt;/li&gt; 
 &lt;li&gt;The endpoint is reachable from inside the container. If outbound calls go through a proxy, confirm &lt;code&gt;PROXY_URL&lt;/code&gt; is set; if calls hang rather than fail quickly, &lt;code&gt;HTTP_CLIENT_TIMEOUT&lt;/code&gt; controls how long PentAGI waits on the provider before giving up.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Changing provider?&lt;/strong&gt; If you switch embedding providers after data has already been indexed, run &lt;code&gt;flush&lt;/code&gt; or &lt;code&gt;reindex&lt;/code&gt; with etester so old and new vectors are not mixed. See &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/#why-consistent-embedding-providers-matter&quot;&gt;Why Consistent Embedding Providers Matter&lt;/a&gt; above.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Function Testing with ftester&lt;/h2&gt; 
&lt;p&gt;PentAGI includes a versatile utility called &lt;code&gt;ftester&lt;/code&gt; for debugging, testing, and developing specific functions and AI agent behaviors. While &lt;code&gt;ctester&lt;/code&gt; focuses on testing LLM model capabilities, &lt;code&gt;ftester&lt;/code&gt; allows you to directly invoke individual system functions and AI agent components with precise control over execution context.&lt;/p&gt; 
&lt;h3&gt;Key Features&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Direct Function Access&lt;/strong&gt;: Test individual functions without running the entire system&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Mock Mode&lt;/strong&gt;: Test functions without a live PentAGI deployment using built-in mocks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Interactive Input&lt;/strong&gt;: Fill function arguments interactively for exploratory testing&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Detailed Output&lt;/strong&gt;: Color-coded terminal output with formatted responses and errors&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Context-Aware Testing&lt;/strong&gt;: Debug AI agents within the context of specific flows, tasks, and subtasks&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Observability Integration&lt;/strong&gt;: All function calls are logged to Langfuse and Observability stack&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Usage Modes&lt;/h3&gt; 
&lt;h4&gt;Command Line Arguments&lt;/h4&gt; 
&lt;p&gt;Run ftester with specific function and arguments directly from the command line:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Basic usage with mock mode
cd backend
go run cmd/ftester/main.go [function_name] -[arg1] [value1] -[arg2] [value2]

# Example: Test terminal command in mock mode
go run cmd/ftester/main.go terminal -command &quot;ls -la&quot; -message &quot;List files&quot;

# Using a real flow context
go run cmd/ftester/main.go -flow 123 terminal -command &quot;whoami&quot; -message &quot;Check user&quot;

# Testing AI agent in specific task/subtask context
go run cmd/ftester/main.go -flow 123 -task 456 -subtask 789 pentester -message &quot;Find vulnerabilities&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Interactive Mode&lt;/h4&gt; 
&lt;p&gt;Run ftester without arguments for a guided interactive experience:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Start interactive mode
go run cmd/ftester/main.go [function_name]

# For example, to interactively fill browser tool arguments
go run cmd/ftester/main.go browser
&lt;/code&gt;&lt;/pre&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Available Functions&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;h3&gt;Environment Functions&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;terminal&lt;/strong&gt;: Execute commands in a container and return the output&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;file&lt;/strong&gt;: Perform file operations (read, write, list) in a container&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Search Functions&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;browser&lt;/strong&gt;: Access websites and capture screenshots&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;web_search&lt;/strong&gt;: Unified search orchestrator that agents actually call — pass a &lt;code&gt;query&lt;/code&gt; and a &lt;code&gt;mode&lt;/code&gt; (&lt;code&gt;links&lt;/code&gt;, &lt;code&gt;answer&lt;/code&gt;, &lt;code&gt;research&lt;/code&gt;, &lt;code&gt;exploit&lt;/code&gt;) and it auto-selects, retries, and falls back across the engines below, so you never name an engine explicitly&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;google&lt;/strong&gt;: Search the web using Google Custom Search&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;duckduckgo&lt;/strong&gt;: Search the web using DuckDuckGo&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;tavily&lt;/strong&gt;: Search using Tavily AI search engine&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;firecrawl&lt;/strong&gt;: Search using Firecrawl with main-content markdown scraping&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;traversaal&lt;/strong&gt;: Search using Traversaal AI search engine&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;perplexity&lt;/strong&gt;: Search using Perplexity AI&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;sploitus&lt;/strong&gt;: Search for security exploits, vulnerabilities (CVEs), and pentesting tools&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;searxng&lt;/strong&gt;: Search using Searxng meta search engine (aggregates results from multiple engines)&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;internal&lt;/strong&gt; &lt;em&gt;(ftester-only debug function, not an agent tool)&lt;/em&gt;: Opt-in browser-analytics fallback engine that discovers links, scrapes each page, and summarizes the result; requires &lt;code&gt;WEB_SEARCH_INTERNAL_ENABLED=true&lt;/code&gt;, a configured scraper, and at least one available link engine&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Vector Database Functions&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;search_in_memory&lt;/strong&gt;: Search for information in vector database&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;search_guide&lt;/strong&gt;: Find guidance documents in vector database&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;search_answer&lt;/strong&gt;: Find answers to questions in vector database&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;search_code&lt;/strong&gt;: Find code examples in vector database&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;AI Agent Functions&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;advice&lt;/strong&gt;: Get expert advice from an AI agent&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;coder&lt;/strong&gt;: Request code generation or modification&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;maintenance&lt;/strong&gt;: Run system maintenance tasks&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;memorist&lt;/strong&gt;: Store and organize information in vector database&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;pentester&lt;/strong&gt;: Perform security tests and vulnerability analysis&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;search&lt;/strong&gt;: Complex search across multiple sources&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;h3&gt;Utility Functions&lt;/h3&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;describe&lt;/strong&gt;: Show information about flows, tasks, and subtasks&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Debugging Flow Context&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;The &lt;code&gt;describe&lt;/code&gt; function provides detailed information about tasks and subtasks within a flow. This is particularly useful for diagnosing issues when PentAGI encounters problems or gets stuck.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# List all flows in the system
go run cmd/ftester/main.go describe

# Show all tasks and subtasks for a specific flow
go run cmd/ftester/main.go -flow 123 describe

# Show detailed information for a specific task
go run cmd/ftester/main.go -flow 123 -task 456 describe

# Show detailed information for a specific subtask
go run cmd/ftester/main.go -flow 123 -task 456 -subtask 789 describe

# Show verbose output with full descriptions and results
go run cmd/ftester/main.go -flow 123 describe -verbose
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;This function allows you to identify the exact point where a flow might be stuck and resume processing by directly invoking the appropriate agent function.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Function Help and Discovery&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;Each function has a help mode that shows available parameters:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Get help for a specific function
go run cmd/ftester/main.go [function_name] -help

# Examples:
go run cmd/ftester/main.go terminal -help
go run cmd/ftester/main.go browser -help
go run cmd/ftester/main.go describe -help
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;You can also run ftester without arguments to see a list of all available functions:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;go run cmd/ftester/main.go
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Output Format&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;The &lt;code&gt;ftester&lt;/code&gt; utility uses color-coded output to make interpretation easier:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;strong&gt;Blue headers&lt;/strong&gt;: Section titles and key names&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Cyan [INFO]&lt;/strong&gt;: General information messages&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Green [SUCCESS]&lt;/strong&gt;: Successful operations&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Red [ERROR]&lt;/strong&gt;: Error messages&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Yellow [WARNING]&lt;/strong&gt;: Warning messages&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Yellow [MOCK]&lt;/strong&gt;: Indicates mock mode operation&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Magenta values&lt;/strong&gt;: Function arguments and results&lt;/li&gt; 
 &lt;/ul&gt; 
 &lt;p&gt;JSON and Markdown responses are automatically formatted for readability.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Advanced Usage Scenarios&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;h3&gt;Debugging Stuck AI Flows&lt;/h3&gt; 
 &lt;p&gt;When PentAGI gets stuck in a flow:&lt;/p&gt; 
 &lt;ol&gt; 
  &lt;li&gt;Pause the flow through the UI&lt;/li&gt; 
  &lt;li&gt;Use &lt;code&gt;describe&lt;/code&gt; to identify the current task and subtask&lt;/li&gt; 
  &lt;li&gt;Directly invoke the agent function with the same task/subtask IDs&lt;/li&gt; 
  &lt;li&gt;Examine the detailed output to identify the issue&lt;/li&gt; 
  &lt;li&gt;Resume the flow or manually intervene as needed&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;h3&gt;Testing Environment Variables&lt;/h3&gt; 
 &lt;p&gt;Verify that API keys and external services are configured correctly:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Test Google search API configuration
go run cmd/ftester/main.go google -query &quot;pentesting tools&quot;

# Test browser access to external websites
go run cmd/ftester/main.go browser -url &quot;https://example.com&quot;
&lt;/code&gt;&lt;/pre&gt; 
 &lt;h3&gt;Developing New AI Agent Behaviors&lt;/h3&gt; 
 &lt;p&gt;When developing new prompt templates or agent behaviors:&lt;/p&gt; 
 &lt;ol&gt; 
  &lt;li&gt;Create a test flow in the UI&lt;/li&gt; 
  &lt;li&gt;Use ftester to directly invoke the agent with different prompts&lt;/li&gt; 
  &lt;li&gt;Observe responses and adjust prompts accordingly&lt;/li&gt; 
  &lt;li&gt;Check Langfuse for detailed traces of all function calls&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;h3&gt;Verifying Docker Container Setup&lt;/h3&gt; 
 &lt;p&gt;Ensure containers are properly configured:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;go run cmd/ftester/main.go -flow 123 terminal -command &quot;env | grep -i proxy&quot; -message &quot;Check proxy settings&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Docker Container Usage&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;If you have PentAGI running in Docker, you can use ftester from within the container:&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Run ftester inside the running PentAGI container
docker exec -it pentagi /opt/pentagi/bin/ftester [arguments]

# Examples:
docker exec -it pentagi /opt/pentagi/bin/ftester -flow 123 describe
docker exec -it pentagi /opt/pentagi/bin/ftester -flow 123 terminal -command &quot;ps aux&quot; -message &quot;List processes&quot;
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;This is particularly useful for production deployments where you don&#39;t have a local development environment.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;b&gt;Integration with Observability Tools&lt;/b&gt; (click to expand)&lt;/summary&gt; 
 &lt;p&gt;All function calls made through ftester are logged to:&lt;/p&gt; 
 &lt;ol&gt; 
  &lt;li&gt;&lt;strong&gt;Langfuse&lt;/strong&gt;: Captures the entire AI agent interaction chain, including prompts, responses, and function calls&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;OpenTelemetry&lt;/strong&gt;: Records metrics, traces, and logs for system performance analysis&lt;/li&gt; 
  &lt;li&gt;&lt;strong&gt;Terminal Output&lt;/strong&gt;: Provides immediate feedback on function execution&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;p&gt;To access detailed logs:&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Check Langfuse UI for AI agent traces (typically at &lt;code&gt;http://localhost:4000&lt;/code&gt;)&lt;/li&gt; 
  &lt;li&gt;Use Grafana dashboards for system metrics (typically at &lt;code&gt;http://localhost:3000&lt;/code&gt;)&lt;/li&gt; 
  &lt;li&gt;Examine terminal output for immediate function results and errors&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;h3&gt;Command-line Options&lt;/h3&gt; 
&lt;p&gt;The main utility accepts several options:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;-env &amp;lt;path&amp;gt;&lt;/code&gt; - Path to environment file (optional, default: &lt;code&gt;.env&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-provider &amp;lt;type&amp;gt;&lt;/code&gt; - Provider type to use (default: &lt;code&gt;custom&lt;/code&gt;, options: &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;anthropic&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, &lt;code&gt;bedrock&lt;/code&gt;, &lt;code&gt;ollama&lt;/code&gt;, &lt;code&gt;deepseek&lt;/code&gt;, &lt;code&gt;glm&lt;/code&gt;, &lt;code&gt;kimi&lt;/code&gt;, &lt;code&gt;qwen&lt;/code&gt;, &lt;code&gt;minimax&lt;/code&gt;, &lt;code&gt;custom&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-flow &amp;lt;id&amp;gt;&lt;/code&gt; - Flow ID for testing functions that require it (0 means using mocks, default: &lt;code&gt;0&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-user &amp;lt;id&amp;gt;&lt;/code&gt; - User ID for testing functions that require it (default: &lt;code&gt;0&lt;/code&gt;; &lt;code&gt;1&lt;/code&gt; is the default admin user)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-task &amp;lt;id&amp;gt;&lt;/code&gt; - Task ID for agent context (optional)&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;-subtask &amp;lt;id&amp;gt;&lt;/code&gt; - Subtask ID for agent context (optional)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Function-specific arguments are passed after the function name using &lt;code&gt;-name value&lt;/code&gt; format.&lt;/p&gt; 
&lt;h3&gt;Pentesting Prompt Methodology&lt;/h3&gt; 
&lt;p&gt;When refining prompts for offensive security work, give the agent a clear methodology instead of a flat list of payloads:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Start with explicit scope, authorization, and success criteria&lt;/li&gt; 
 &lt;li&gt;Map the application first: roles, routes, parameters, uploads, integrations, and trust boundaries&lt;/li&gt; 
 &lt;li&gt;Prioritize attack surfaces systematically instead of testing everything at once&lt;/li&gt; 
 &lt;li&gt;Validate findings with reproducible evidence before escalating to deeper exploitation&lt;/li&gt; 
 &lt;li&gt;Finish with report-ready notes that capture impact, prerequisites, and next steps&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;For PentAGI-specific prompt guidance, see &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/backend/docs/prompt_engineering_pentagi.md&quot;&gt;&lt;code&gt;backend/docs/prompt_engineering_pentagi.md&lt;/code&gt;&lt;/a&gt;. For a practical starting point, reuse and adapt &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/prompts/base_web_pentest.md&quot;&gt;&lt;code&gt;examples/prompts/base_web_pentest.md&lt;/code&gt;&lt;/a&gt; to match the target application, technology stack, and engagement scope.&lt;/p&gt; 
&lt;h2&gt;Building&lt;/h2&gt; 
&lt;h3&gt;Building Docker Image&lt;/h3&gt; 
&lt;p&gt;The Docker build process automatically embeds version information from git tags. To properly version your build, use the provided scripts:&lt;/p&gt; 
&lt;h4&gt;Linux/macOS&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Load version variables
source ./scripts/version.sh

# Standard build
docker build \
  --build-arg PACKAGE_VER=$PACKAGE_VER \
  --build-arg PACKAGE_REV=$PACKAGE_REV \
  -t pentagi:$PACKAGE_VER .

# Multi-platform build
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  --build-arg PACKAGE_VER=$PACKAGE_VER \
  --build-arg PACKAGE_REV=$PACKAGE_REV \
  -t pentagi:$PACKAGE_VER .

# Build and push
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  --build-arg PACKAGE_VER=$PACKAGE_VER \
  --build-arg PACKAGE_REV=$PACKAGE_REV \
  -t myregistry/pentagi:$PACKAGE_VER \
  --push .
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Windows (PowerShell)&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;# Load version variables
. .\scripts\version.ps1

# Standard build
docker build `
  --build-arg PACKAGE_VER=$env:PACKAGE_VER `
  --build-arg PACKAGE_REV=$env:PACKAGE_REV `
  -t pentagi:$env:PACKAGE_VER .

# Multi-platform build
docker buildx build `
  --platform linux/amd64,linux/arm64 `
  --build-arg PACKAGE_VER=$env:PACKAGE_VER `
  --build-arg PACKAGE_REV=$env:PACKAGE_REV `
  -t pentagi:$env:PACKAGE_VER .
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;Quick build without version&lt;/h4&gt; 
&lt;p&gt;For development builds without version tracking:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker build -t pentagi:dev .
&lt;/code&gt;&lt;/pre&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li&gt;The build scripts automatically determine version from git tags&lt;/li&gt; 
  &lt;li&gt;Release builds (on tag commit) have no revision suffix&lt;/li&gt; 
  &lt;li&gt;Development builds (after tag) include commit hash as revision (e.g., &lt;code&gt;1.1.0-bc6e800&lt;/code&gt;)&lt;/li&gt; 
  &lt;li&gt;To use the built image locally, update the image name in &lt;code&gt;docker-compose.yml&lt;/code&gt; or use the &lt;code&gt;build&lt;/code&gt; option&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;h2&gt;Credits&lt;/h2&gt; 
&lt;p&gt;This project is made possible thanks to the following research and developments:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://lilianweng.github.io/posts/2023-06-23-agent&quot;&gt;Emerging Architectures for LLM Applications&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://arxiv.org/abs/2403.08299&quot;&gt;A Survey of Autonomous LLM Agents&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/semanser/codel&quot;&gt;Codel&lt;/a&gt; by Andriy Semenets - initial architectural inspiration for agent-based automation&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;PentAGI&lt;/strong&gt; is licensed under the &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/LICENSE&quot;&gt;MIT License&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Copyright (c) 2025 PentAGI Development Team&lt;/p&gt; 
&lt;h3&gt;Third-Party Dependencies&lt;/h3&gt; 
&lt;p&gt;All third-party dependencies use MIT-compatible licenses. See &lt;a href=&quot;https://raw.githubusercontent.com/vxcontrol/pentagi/main/licenses/&quot;&gt;licenses/&lt;/a&gt; directory for detailed license reports.&lt;/p&gt; 
&lt;h3&gt;VXControl Cloud Services&lt;/h3&gt; 
&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; While the VXControl Cloud SDK code is MIT licensed, accessing &lt;strong&gt;VXControl Cloud Services&lt;/strong&gt; (threat intelligence, AI support, premium features) requires a separate License Key and compliance with &lt;a href=&quot;https://github.com/vxcontrol/cloud#license-and-terms&quot;&gt;Terms of Service&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;The SDK code itself is free to use - service access requires registration.&lt;/p&gt; 
&lt;p&gt;For questions contact: &lt;strong&gt;&lt;a href=&quot;mailto:info@pentagi.com&quot;&gt;info@pentagi.com&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a href=&quot;mailto:info@vxcontrol.com&quot;&gt;info@vxcontrol.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/913030762/c8502908-380f-4897-aaba-87cfa16d67b4" medium="image" />
      
    </item>
    
    <item>
      <title>multimodal-art-projection/YuE</title>
      <link>https://github.com/multimodal-art-projection/YuE</link>
      <description>&lt;p&gt;YuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://map-yue2.github.io/&quot;&gt;https://map-yue2.github.io/&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;blockquote&gt; 
 &lt;p&gt;Looking for the original YuE? Its code, documentation, and license are preserved on the &lt;strong&gt;&lt;a href=&quot;https://github.com/multimodal-art-projection/YuE/tree/YuE-v1&quot;&gt;YuE-v1 branch&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/assets/logo.png&quot; alt=&quot;YuE&quot; width=&quot;150&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(max-width: 600px)&quot; srcset=&quot;assets/institutions-mobile.svg&quot; /&gt; 
  &lt;img src=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/assets/institutions.svg?sanitize=true&quot; alt=&quot;HKUST, M·A·P, Tokenwave.AI, NYU, Stanford, MBZUAI, NOIZ, and ACE Studio&quot; width=&quot;760&quot; /&gt; 
 &lt;/picture&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;YuE2: Unifying Symbolic and Audio Music Generation at Frontier Quality&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt;&lt;strong&gt;Compose in symbols. Create in sound.&lt;/strong&gt;&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://map-yue2.github.io/&quot;&gt;🎧 Demos&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/m-a-p/YuE2-3B&quot;&gt;🤗 YuE2&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/#quick-start&quot;&gt;🚀 Quick start&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/#agent-skill&quot;&gt;🤖 Agent skill&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/#benchmarks&quot;&gt;📊 Benchmarks&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/m-a-p/MERT-v2-FullSong&quot;&gt;🤗 MERT2&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/m-a-p/SheetSage2&quot;&gt;🤗 SheetSage2&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/datasets/m-a-p/WildSongBench&quot;&gt;🤗 WSB&lt;/a&gt; · &lt;a href=&quot;https://github.com/multimodal-art-projection/YuE/releases/tag/yue2-v0.1.6&quot;&gt;📦 Release&lt;/a&gt; · &lt;a href=&quot;https://discord.gg/ssAyWMnMzu&quot;&gt;&lt;img alt=&quot;Join us on Discord&quot; src=&quot;https://img.shields.io/discord/842440537755353128?color=5865F2&amp;amp;logo=discord&amp;amp;logoColor=white&amp;amp;label=Discord&amp;amp;style=flat-square&quot; height=&quot;20&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;YuE2 brings frontier song quality to music generation with an editable composition.&lt;/strong&gt; Give it lyrics and a style prompt: it writes a melody-and-chord plan, then realizes that plan as a complete song with vocals and accompaniment.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Frontier quality.&lt;/strong&gt; YuE2 is competitive with Suno v5/v6 on WildSongBench. YuE2 (best-of-8) achieves &lt;strong&gt;6.9632 SongBench Avg&lt;/strong&gt;, the highest observed mean among all evaluated settings.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;White-box music generation through symbolic planning.&lt;/strong&gt; Read, play, and change the composition before rendering it. Melody and chords become explicit controls that a person or an agent can inspect and edit.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Zero-shot covers and agentic editing.&lt;/strong&gt; Reimagine a transcribed song in a new style, or refine a song through a conversation about its score, arrangement, and lyrics—all with the same generation checkpoint.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a href=&quot;https://map-yue2.github.io/#model-overview&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/assets/frontier-teaser.png&quot; alt=&quot;YuE2 song quality and text alignment on WildSongBench&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;192 WildSongBench prompts. Both YuE2 settings use symbolic planning. Bo8 = best-of-8. The axes are normalized comparison indices; bubble area represents AudioBox production quality. &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/benchmarks.md&quot;&gt;Scores and evaluation protocol&lt;/a&gt;. &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/assets/frontier-teaser.pdf&quot;&gt;Vector PDF&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/assets/frontier-teaser.svg&quot;&gt;SVG&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;Hear what you can make&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Create&lt;/th&gt; 
   &lt;th&gt;Cover&lt;/th&gt; 
   &lt;th&gt;Edit with an agent&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Lyrics + style → score → full song&lt;/td&gt; 
   &lt;td&gt;Source recording → melody score → a new interpretation&lt;/td&gt; 
   &lt;td&gt;Musical feedback → score, style, or lyric revisions → a new recording&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://map-yue2.github.io/#abc-cot-gen&quot;&gt;Listen and inspect the score&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://map-yue2.github.io/#cover&quot;&gt;Hear zero-shot covers&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://map-yue2.github.io/#agentic-music-editing&quot;&gt;Follow an editing conversation&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The agentic demo follows &lt;strong&gt;The Last Train through 9 steps and 14 versions&lt;/strong&gt;, from Mandarin pop to English jazz with new harmony and a saxophone solo. Listen to each version and inspect its conversation, score, prompt, and lyrics.&lt;/p&gt; 
&lt;h2&gt;How it works&lt;/h2&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/assets/architecture.png&quot; alt=&quot;YuE2 architecture: style and lyrics become an editable score, semantic music tokens, acoustic latents, and audio&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;One &lt;strong&gt;AR–NAR Mixture-of-Transformers&lt;/strong&gt; backbone predicts the score and semantic tokens autoregressively, then generates acoustic latents with flow matching. A VAE decodes those latents into stereo audio. Creation, covering, and editing differ in where the score comes from: YuE2, a transcribed recording, or an edited composition.&lt;/p&gt; 
&lt;p&gt;The staged Python API exposes &lt;code&gt;plan()&lt;/code&gt; → &lt;code&gt;generate_semantic()&lt;/code&gt; → &lt;code&gt;synthesize()&lt;/code&gt; → &lt;code&gt;decode()&lt;/code&gt;. See the &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/generation.md&quot;&gt;generation guide&lt;/a&gt; for exact-plan reuse and decoder selection.&lt;/p&gt; 
&lt;h2&gt;Quick start&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Linux · Python 3.12 · NVIDIA GPU with BF16 support and 24 GB VRAM.&lt;/strong&gt; YuE2 produces 48 kHz stereo audio without quantization. Model files download from Hugging Face on first use.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/multimodal-art-projection/YuE.git
cd YuE
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install .
python examples/generate.py --output outputs/first-song
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Open &lt;code&gt;outputs/first-song/audio.flac&lt;/code&gt;. The output directory also retains the score, semantic tokens, acoustic latents, generation settings, and model identities.&lt;/p&gt; 
&lt;p&gt;The Python interface is equally short:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import json
from pathlib import Path
from yue2 import YuE2Pipeline

request = json.loads(Path(&quot;examples/song.json&quot;).read_text(encoding=&quot;utf-8&quot;))
with YuE2Pipeline.from_pretrained(&quot;m-a-p/YuE2-3B&quot;, device=&quot;cuda&quot;) as pipe:
    song = pipe(**request)
    song.save_artifacts(&quot;outputs/my-song&quot;)
    print(song.truncated)
&lt;/code&gt;&lt;/pre&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Setting&lt;/th&gt; 
   &lt;th&gt;Behavior&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cot=&quot;full&quot;&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Generate an editable melody-and-chord plan; the default for new songs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cot=&quot;melody&quot;&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Use a melody plan with free accompaniment; recommended for covers&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;cot=&quot;off&quot;&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Generate directly from lyrics and style&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;abc=...&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Supply your own score in &lt;code&gt;full&lt;/code&gt; or &lt;code&gt;melody&lt;/code&gt; mode&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/generation.md&quot;&gt;Generation guide&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/examples/README.md&quot;&gt;Original example inputs&lt;/a&gt; · &lt;a href=&quot;https://github.com/multimodal-art-projection/YuE/releases/download/yue2-v0.1.6/yue2_infer-0.1.6-py3-none-any.whl&quot;&gt;v0.1.6 wheel archive&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Cover a song&lt;/h2&gt; 
&lt;p&gt;Transcribe a source recording with &lt;strong&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/SheetSage2&quot;&gt;🤗 SheetSage2&lt;/a&gt;&lt;/strong&gt;, review its melody ABC, and provide new lyrics or a target style. For covers, use &lt;strong&gt;&lt;code&gt;cot=&quot;melody&quot;&lt;/code&gt; and a score without chord symbols&lt;/strong&gt; so the accompaniment can adapt to the new style.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from pathlib import Path
from yue2 import YuE2Pipeline

with YuE2Pipeline.from_pretrained(&quot;m-a-p/YuE2-3B&quot;, device=&quot;cuda&quot;) as pipe:
    cover = pipe(
        style=&quot;English, jazz-funk, warm lead vocal, Rhodes, bass and drums&quot;,
        lyrics=Path(&quot;cover-lyrics.txt&quot;).read_text(encoding=&quot;utf-8&quot;),
        abc=Path(&quot;cover-score/score.abc&quot;).read_text(encoding=&quot;utf-8&quot;),
        cot=&quot;melody&quot;,
        seed=42,
    )
    cover.save_artifacts(&quot;outputs/cover&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;SheetSage2 runs in a separate environment and loads its MERT2 encoder automatically. The &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/covers.md&quot;&gt;cover guide&lt;/a&gt; gives the complete transcription and generation commands. An included &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/examples/melody.abc&quot;&gt;original melody example&lt;/a&gt; also lets you try score-conditioned generation immediately.&lt;/p&gt; 
&lt;h2&gt;Edit a composition&lt;/h2&gt; 
&lt;p&gt;Export a plan, revise the musical details, and render the edited score:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import json
from pathlib import Path
from yue2 import YuE2Pipeline

request = json.loads(Path(&quot;examples/song.json&quot;).read_text(encoding=&quot;utf-8&quot;))
with YuE2Pipeline.from_pretrained(&quot;m-a-p/YuE2-3B&quot;, device=&quot;cuda&quot;) as pipe:
    plan = pipe.plan(**request)
    plan.save(&quot;outputs/plan&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Copy &lt;code&gt;outputs/plan/score.abc&lt;/code&gt; to &lt;code&gt;edited.abc&lt;/code&gt;, then ask an agent to change its harmony, melody, tempo, or form. Supply the edited file as a new score:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python examples/generate.py --request examples/song.json \
  --abc-file edited.abc --cot full --output outputs/edited
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The editable score is the white-box interface: you can inspect the intended composition and intervene on it. Editing generates a new complete recording; it does not preserve the original waveform outside an edit. &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/editing.md&quot;&gt;Editing guide and a reproducible harmony example&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;Agent skill&lt;/h2&gt; 
&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/skills/yue2-music/SKILL.md&quot;&gt;yue2-music skill&lt;/a&gt;&lt;/strong&gt; teaches an agent how to generate songs, transcribe and cover recordings, edit ABC scores, check musical invariants, and organize listening comparisons. It includes portable helpers and references to the released model interfaces.&lt;/p&gt; 
&lt;p&gt;Use &lt;strong&gt;&lt;code&gt;skills/yue2-music/&lt;/code&gt; from this repository&lt;/strong&gt; with an agent that supports &lt;code&gt;SKILL.md&lt;/code&gt; packages. Install it using your agent&#39;s skill-directory or import mechanism; the Python runtime is installed separately with &lt;code&gt;pip install .&lt;/code&gt;. The earlier &lt;a href=&quot;https://github.com/multimodal-art-projection/YuE/releases/download/yue2-v0.1.6/yue2-music.zip&quot;&gt;v0.1.6 skill ZIP&lt;/a&gt; remains available under its bundled license.&lt;/p&gt; 
&lt;p&gt;Try a concrete request:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Use the yue2-music skill to create an English piano-pop song. Keep the original audio and score. Make a second version with jazz harmony, preserve the vocal melody and lyric order, and give me both versions to compare.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;Benchmarks&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;WildSongBench: 192 prompts, automatic evaluation, September 12, 2026.&lt;/strong&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;System / setting&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;SongBench Avg ↑&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;AudioBox PQ ↑&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;MuLan ↑&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;PER ↓&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;YuE2 (best-of-8)&lt;/strong&gt; †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;strong&gt;6.9632&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.2714&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.5051&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;9.79%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Mureka 9&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.9377&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.0226&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.4394&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;11.69%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Suno v5&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.8721&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.1698&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;strong&gt;0.5428&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.10%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;YuE2&lt;/strong&gt; †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.7316&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.2598&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.5068&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.44%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Suno v5.5&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.7150&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.1955&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.5089&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;5.96%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Suno v4.5&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.6995&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.2541&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.5022&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;strong&gt;5.80%&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Suno v6&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.5562&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.1296&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.4916&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;7.58%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Suno v6 Wild&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.4195&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.1785&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.4999&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;7.45%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;LeVo 2 †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.3247&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;&lt;strong&gt;8.3966&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.3542&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;26.12%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;MiniMax Music 2.6&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.3222&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.1711&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.4251&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;24.55%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;MiniMax Music 3 †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.2830&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.2825&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.3928&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.27%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;HeartMuLa †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.2483&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.2933&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.3823&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;10.71%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Muse †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.0349&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.0517&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.3937&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;33.42%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;ACE-Step 1.5 †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6.0118&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.0518&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.4372&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;7.46%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;DiffRhythm 2 †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;5.2428&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;7.9782&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.3782&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;18.41%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;YuE 1 †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;4.9165&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;7.8683&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.2623&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;36.38%&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;SongBloom †&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;4.2350&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;8.1539&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;0.2697&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;19.19%&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;† Publicly available model weights. All 17 evaluated settings are shown, sorted by SongBench Avg; bold values mark the best result in each column.&lt;/p&gt; 
&lt;p&gt;Both YuE2 settings use symbolic planning and the benchmark decoder, &lt;strong&gt;YuE2-Vae-legacy&lt;/strong&gt;. Standard YuE2 selects from two candidates; best-of-8 selects from eight. Rankings vary by metric; the small gap between the highest means does not establish statistical significance. &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/benchmarks.md&quot;&gt;Full results and selection protocols&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Zero-shot covers.&lt;/strong&gt; On 948 works, full-score YuE2 reaches &lt;strong&gt;0.647 CLEWS mAP&lt;/strong&gt;, compared with &lt;strong&gt;0.006 without a score&lt;/strong&gt;, while using the general generator without cover-specific fine-tuning. Source-identity preservation and target-style quality are measured separately; melody-only covers offer more freedom to change the arrangement. &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/docs/benchmarks.md#zero-shot-cover-generation&quot;&gt;Cover evaluation&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Reproduce the benchmarks&lt;/h3&gt; 
&lt;p&gt;To reproduce the reported benchmark scores, follow the instructions on &lt;a href=&quot;https://huggingface.co/datasets/m-a-p/WildSongBench#reproduce-standard-yue2&quot;&gt;🤗 WildSongBench (WSB)&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;MERT2&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;State-of-the-art music understanding:&lt;/strong&gt; SOTA on &lt;strong&gt;14 of 15 MARBLE metrics&lt;/strong&gt;, with &lt;strong&gt;91.72% genre accuracy on GTZAN&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://map-yue2.github.io/#mert2&quot;&gt;Demo and results&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/m-a-p/MERT-v2-30s&quot;&gt;🤗 MERT2-30s&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/m-a-p/MERT-v2-FullSong&quot;&gt;🤗 MERT2-FS&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;SheetSage2&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;State-of-the-art audio-to-score transcription:&lt;/strong&gt; SOTA on &lt;strong&gt;10 of 13 benchmark metrics&lt;/strong&gt;, with &lt;strong&gt;82.51% vocal melody pitch-class F1 on RWC-Pop&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://map-yue2.github.io/#sheetsage2&quot;&gt;Demo and results&lt;/a&gt; · &lt;a href=&quot;https://huggingface.co/m-a-p/SheetSage2&quot;&gt;🤗 Model and inference&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Models and resources&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Resource&lt;/th&gt; 
   &lt;th&gt;Purpose&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/YuE2-3B&quot;&gt;🤗 YuE2-3B&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Song generation, symbolic planning, covering, and editing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/YuE2-Vae&quot;&gt;🤗 YuE2-Vae&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Default generation and listening decoder&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/YuE2-Vae-legacy&quot;&gt;🤗 YuE2-Vae-legacy&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Decoder for the reported benchmark protocol&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/SheetSage2&quot;&gt;🤗 SheetSage2&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Audio-to-score transcription for covers and editing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/MERT-v2-FullSong&quot;&gt;🤗 MERT-v2-FullSong&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Full-song music representations; SheetSage2&#39;s encoder&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/m-a-p/MERT-v2-30s&quot;&gt;🤗 MERT-v2-30s&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Music representations for short recordings&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://huggingface.co/datasets/m-a-p/WildSongBench&quot;&gt;🤗 WildSongBench&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Evaluation prompts and benchmark resources&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;MERT2 feature extraction is optional for generation. YuE2&#39;s pipeline does not require a separate MERT2 model download. &lt;a href=&quot;https://map-yue2.github.io/&quot;&gt;Demos and interactive results&lt;/a&gt; · &lt;a href=&quot;https://github.com/multimodal-art-projection/YuE/releases/tag/yue2-v0.1.6&quot;&gt;Release downloads&lt;/a&gt;.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;YuE2&#39;s first-party code, agent skill, and documentation are licensed under &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/LICENSE&quot;&gt;Apache 2.0&lt;/a&gt;&lt;/strong&gt;. Copyright (c) 2026 the YuE2 authors.&lt;/p&gt; 
&lt;p&gt;Model weights are separately licensed under &lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/MODEL_LICENSE&quot;&gt;CC BY-NC 4.0&lt;/a&gt;&lt;/strong&gt;. Third-party components retain their &lt;a href=&quot;https://raw.githubusercontent.com/multimodal-art-projection/YuE/main/THIRD_PARTY_NOTICES.md&quot;&gt;original licenses&lt;/a&gt;. The archived &lt;a href=&quot;https://github.com/multimodal-art-projection/YuE/tree/YuE-v1&quot;&gt;YuE-v1 branch&lt;/a&gt; retains its original license.&lt;/p&gt; 
&lt;p&gt;Apache 2.0 applies to the current repository source; the earlier &lt;code&gt;yue2-v0.1.6&lt;/code&gt; download archives retain their bundled licenses.&lt;/p&gt; 
&lt;h2&gt;Citation&lt;/h2&gt; 
&lt;p&gt;The YuE2 technical report is coming soon. For now, please cite &lt;strong&gt;&lt;a href=&quot;https://arxiv.org/abs/2306.00107&quot;&gt;MERT&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;https://arxiv.org/abs/2503.08638&quot;&gt;YuE&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bibtex&quot;&gt;@article{li2023mert,
  title = {{MERT}: Acoustic Music Understanding Model with Large-Scale Self-supervised Training},
  author = {Li, Yizhi and Yuan, Ruibin and Zhang, Ge and Ma, Yinghao and Chen, Xingran and Yin, Hanzhi and Xiao, Chenghao and Lin, Chenghua and Ragni, Anton and Benetos, Emmanouil and Gyenge, Norbert and Dannenberg, Roger and Liu, Ruibo and Chen, Wenhu and Xia, Gus and Shi, Yemin and Huang, Wenhao and Wang, Zili and Guo, Yike and Fu, Jie},
  journal = {arXiv preprint arXiv:2306.00107},
  year = {2023},
  eprint = {2306.00107},
  archivePrefix = {arXiv},
  url = {https://arxiv.org/abs/2306.00107}
}

@article{yuan2025yue,
  title = {{YuE}: Scaling Open Foundation Models for Long-Form Music Generation},
  author = {Yuan, Ruibin and Lin, Hanfeng and Guo, Shuyue and Zhang, Ge and Pan, Jiahao and Zang, Yongyi and Liu, Haohe and Liang, Yiming and Ma, Wenye and Du, Xingjian and Du, Xinrun and Ye, Zhen and Zheng, Tianyu and Jiang, Zhengxuan and Ma, Yinghao and Liu, Minghao and Tian, Zeyue and Zhou, Ziya and Xue, Liumeng and Qu, Xingwei and Li, Yizhi and Wu, Shangda and Shen, Tianhao and Ma, Ziyang and Zhan, Jun and Wang, Chunhui and Wang, Yatian and Chi, Xiaowei and Zhang, Xinyue and Yang, Zhenzhu and Wang, Xiangzhou and Liu, Shansong and Mei, Lingrui and Li, Peng and Wang, Junjie and Yu, Jianwei and Pang, Guojian and Li, Xu and Wang, Zihao and Zhou, Xiaohuan and Yu, Lijun and Benetos, Emmanouil and Chen, Yong and Lin, Chenghua and Chen, Xie and Xia, Gus and Zhang, Zhaoxiang and Zhang, Chao and Chen, Wenhu and Zhou, Xinyu and Qiu, Xipeng and Dannenberg, Roger and Liu, Jiaheng and Yang, Jian and Huang, Wenhao and Xue, Wei and Tan, Xu and Guo, Yike},
  journal = {arXiv preprint arXiv:2503.08638},
  year = {2025},
  eprint = {2503.08638},
  archivePrefix = {arXiv},
  url = {https://arxiv.org/abs/2503.08638}
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Contact&lt;/h2&gt; 
&lt;p&gt;For collaborations, licensing, and data partnerships, please contact &lt;a href=&quot;mailto:gezhang@umich.edu&quot;&gt;gezhang@umich.edu&lt;/a&gt;.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/63dc97940ddbd932fbe123b5ee4d2222ee99f6ffa513d52f561c937548a92a6f/multimodal-art-projection/YuE" medium="image" />
      
    </item>
    
    <item>
      <title>yuliskov/SmartTube</title>
      <link>https://github.com/yuliskov/SmartTube</link>
      <description>&lt;p&gt;Browse media content with your own rules on Android TV&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://smarttubeapp.github.io&quot;&gt;https://smarttubeapp.github.io&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://f-droid.org/packages/app.smarttube.fdroid/&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/images/badge_fdroid.png&quot; alt=&quot;Get it on F-Droid&quot; height=&quot;80&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/yuliskov/SmartTube/releases&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/images/badge_github.png&quot; alt=&quot;Get it on GitHub&quot; height=&quot;80&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h1&gt;Important announcement about the app&lt;/h1&gt; 
&lt;p&gt;My development environment was infected by unknown malicious software, as a result of which a few builds may have been affected. Once the issue was detected, I secured everything with a full disk wipe, restored a clean setup, and now all builds are scanned with VirusTotal. The F-Droid version will also be verified before release.&lt;/p&gt; 
&lt;p&gt;Public keys may have been compromised, which is why I am sharing this issue. You can download the new version and the new public key below, and instructions for restoring backups are provided.&lt;/p&gt; 
&lt;p&gt;No extra actions are required since the app uses &lt;strong&gt;one-time connection codes&lt;/strong&gt;. These codes have very limited permissions (for example, they cannot change your password). Still, you can revoke them if you want full peace of mind.&lt;/p&gt; 
&lt;h1&gt;How to revoke access:&lt;/h1&gt; 
&lt;ol&gt; 
 &lt;li&gt;Open &lt;a href=&quot;https://myaccount.google.com/security&quot;&gt;myaccount.google.com/security&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;Find &lt;strong&gt;“Your connections to third-party apps &amp;amp; services”&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;Tap &lt;strong&gt;“See all connection”&lt;/strong&gt; and locate &lt;strong&gt;YouTube TV&lt;/strong&gt; or &lt;strong&gt;Google Drive&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;Select the app → &lt;strong&gt;“Remove access”&lt;/strong&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Please keep built-in security features enabled to stay protected.&lt;/p&gt; 
&lt;h1&gt;SmartTube&lt;/h1&gt; 
&lt;!-- &lt;img width=&quot;100&quot; src=&quot;https://github.com/yuliskov/SmartTube/blob/master/smarttubetv/src/ststable/res/mipmap-nodpi/app_icon.png&quot; alt=&quot;logo&quot;/&gt; --&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/images/browse_home.png&quot; alt=&quot;The app screenshot&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;SmartTube is a free and open-source media client for Android TVs and TV boxes. It allows you to browse and play content from various public sources in a TV-optimized interface.&lt;/p&gt; 
&lt;h3&gt;✅ Features&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Clean interface&lt;/li&gt; 
 &lt;li&gt;SponsorBlock integration&lt;/li&gt; 
 &lt;li&gt;Adjustable playback speed&lt;/li&gt; 
 &lt;li&gt;8K resolution support&lt;/li&gt; 
 &lt;li&gt;60fps playback&lt;/li&gt; 
 &lt;li&gt;HDR compatibility&lt;/li&gt; 
 &lt;li&gt;View live chat&lt;/li&gt; 
 &lt;li&gt;Customizable buttons&lt;/li&gt; 
 &lt;li&gt;Does not require Google Services&lt;/li&gt; 
 &lt;li&gt;Helpful international community&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;❌ Limitations&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Not supported on phones and tablets&lt;/li&gt; 
 &lt;li&gt;Comment functionality is unstable&lt;/li&gt; 
 &lt;li&gt;Voice search and casting performance may be inferior to official apps, depending on your device&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Give it a try!&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Do you have any question?&lt;/strong&gt; Ctrl+F or ⌘F this readme first!&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#installation&quot;&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://smarttubeapp.github.io&quot;&gt;&lt;strong&gt;Official Site&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#donation&quot;&gt;&lt;strong&gt;Donation&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#faq&quot;&gt;&lt;strong&gt;FAQ&lt;/strong&gt;&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#support&quot;&gt;Support / Chat&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#build&quot;&gt;Build&lt;/a&gt; | &lt;a href=&quot;https://jtbrinkmann.de/tools/android-strings.xml-translator.html&quot;&gt;Translate the app&lt;/a&gt; | &lt;a href=&quot;https://t.me/s/SmartTubeNewsEN&quot;&gt;Changelog&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#liability&quot;&gt;Liability&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Device support&lt;/h2&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-important&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-report mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Important&lt;/p&gt;
 &lt;p&gt;Starting in October 2025 new Amazon FireTV devices no longer run Android under the hood. SmartTube will &lt;strong&gt;not&lt;/strong&gt; be compatible with the Fire Stick 4k Select and newer devices which run Amazon&#39;s own VegaOS.&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/images/new/compatibility.png&quot; alt=&quot;Device support image&quot; /&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Supported:&lt;/strong&gt; all Android TVs and TV boxes (incl. All FireTV devices released before Oct. 2025, NVIDIA Shield &amp;amp; Chromecast with Google TV), even older ones with Android 4.3 (Kitkat).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Not supported:&lt;/strong&gt; Smartphones, non-Android platforms like Samsung Tizen, LG webOS, Apple TV, etc.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/images/new/zPV0imF.mp4&quot;&gt;video of the installation&lt;/a&gt; (note: download url changed to &lt;code&gt;kutt.to/stn_beta&lt;/code&gt; or &lt;code&gt;kutt.to/stn_stable&lt;/code&gt;)&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;strong&gt;Do not&lt;/strong&gt; download SmartTube from any &lt;strong&gt;app store&lt;/strong&gt;, APK websites or blogs; these were uploaded by other people and may contain malware or ads. SmartTube is not officially published on any app store.&lt;/p&gt; 
&lt;p&gt;There is a &lt;strong&gt;beta release&lt;/strong&gt; (recommended) and a &lt;strong&gt;stable release&lt;/strong&gt;. Beta gets new features and bugfixes faster than the stable release.&lt;/p&gt; 
&lt;p&gt;You can use either of the following methods to install the app:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;(&lt;strong&gt;Easiest&lt;/strong&gt;) Install &lt;a href=&quot;https://www.aftvnews.com/downloader/&quot;&gt;Downloader by AFTVnews&lt;/a&gt; on your Android TV, open it and enter &lt;code&gt;kutt.to/stn_beta&lt;/code&gt; or &lt;code&gt;kutt.to/stn_stable&lt;/code&gt;, then read, understand and confirm the security prompts. (&lt;small&gt;You can also enter &lt;a href=&quot;https://aftv.news/79015&quot;&gt;&lt;strong&gt;79015&lt;/strong&gt;&lt;/a&gt; (for beta) or &lt;a href=&quot;https://aftv.news/28544&quot;&gt;&lt;strong&gt;28544&lt;/strong&gt;&lt;/a&gt; (for stable), but this requires an extra step to install the AFTVnews Downloader browser addon if you haven&#39;t already.&lt;/small&gt;)&lt;/li&gt; 
 &lt;li&gt;Install a file transfer app on your Android TV, download the APK on your phone or computer and transfer it to your TV (e.g. &lt;a href=&quot;https://sendfilestotv.app/&quot;&gt;&lt;em&gt;Send Files to TV&lt;/em&gt;&lt;/a&gt; from the Google Play Store / Amazon AppStore)&lt;/li&gt; 
 &lt;li&gt;Download the APK onto a USB stick, put the USB stick into your TV and use a file manager app from the Google Play Store / Amazon AppStore (e.g. &lt;a href=&quot;https://play.google.com/store/apps/details?id=nextapp.fx&quot;&gt;&lt;em&gt;FX File Explorer&lt;/em&gt;&lt;/a&gt; or &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.lonelycatgames.Xplore&quot;&gt;&lt;em&gt;X-plore&lt;/em&gt;&lt;/a&gt;). Android&#39;s preinstalled file manager does not work! Do &lt;strong&gt;not&lt;/strong&gt; get the ad-infested &lt;em&gt;FileCommander&lt;/em&gt;.&lt;/li&gt; 
 &lt;li&gt;If you are an advanced user, you can install it using ADB. &lt;a href=&quot;https://fossbytes.com/side-load-apps-android-tv/#h-how-to-sideload-apps-on-your-android-tv-using-adb&quot;&gt;guide&lt;/a&gt; | &lt;a href=&quot;https://www.aftvnews.com/sideload/&quot;&gt;alternative guide&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Troubleshooting:&lt;/strong&gt; See device specific notes below. If installation fails, either your &lt;strong&gt;disk space is full&lt;/strong&gt; or the APK file didn&#39;t download correctly; clear up space and try downloading again. If the app installed, but crashes when opening, make sure to install it to internal memory, not to an SD card / external storage.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;The app has a built-in updater&lt;/strong&gt; with changelog. You can also find all releases and the &lt;strong&gt;changelog&lt;/strong&gt; on the &lt;a href=&quot;https://t.me/s/SmartTubeNewsEN&quot;&gt;Telegram channel @SmartTubeNewsEN&lt;/a&gt; (readable without account) or on &lt;a href=&quot;https://github.com/yuliskov/SmartTube/releases/&quot;&gt;Github&lt;/a&gt;.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;latest &lt;a href=&quot;https://github.com/yuliskov/SmartTube/releases/download/latest/smarttube_beta.apk&quot;&gt;&lt;strong&gt;beta download&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;latest &lt;a href=&quot;https://github.com/yuliskov/SmartTube/releases/download/latest/smarttube_stable.apk&quot;&gt;stable download&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;Installation (Chromecast with Google TV)&lt;/h3&gt; 
&lt;p&gt;On &lt;strong&gt;Chromecast with Google TV&lt;/strong&gt;, installation of apps is blocked by default, so an extra step is required:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;4.1. Enable Developer Options&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;On your Chromecast, open the side menu and go to &lt;em&gt;Settings &amp;gt; System &amp;gt; About&lt;/em&gt;. Scroll down to the &lt;em&gt;Android TV OS build&lt;/em&gt; section and click that repeatedly. A toast message will appear, explaining that you are a few steps away from being a developer. Continue clicking until you trigger it.&lt;/p&gt; 
 &lt;p&gt;&lt;strong&gt;4.2. Turn on the &quot;unknown sources&quot; setting&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;Go back to the main &lt;em&gt;Settings&lt;/em&gt; page and select &lt;em&gt;Apps &amp;gt; Security &amp;amp; Restrictions &amp;gt; Unknown sources&lt;/em&gt;. Turn on the toggle for [&lt;em&gt;Downloader by AFTVnews&lt;/em&gt; or] whichever file browser you decided to use [...].&lt;/p&gt; 
 &lt;p&gt;[&lt;a href=&quot;https://www.androidpolice.com/2021/02/07/how-to-sideload-any-apk-on-the-chromecast-with-android-tv/#install-the-apk&quot;&gt;source &amp;amp; picture guide&lt;/a&gt;]&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;After this, you can follow the &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#installation&quot;&gt;general installation guide&lt;/a&gt; above.&lt;/p&gt; 
&lt;h3&gt;Installation (Xiaomi devices with Chinese firmware)&lt;/h3&gt; 
&lt;p&gt;Xiaomi&#39;s &lt;strong&gt;Chinese firmware&lt;/strong&gt; might block the installation &lt;strong&gt;of the beta version&lt;/strong&gt;. The international firmware is not affected. Solutions:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Use SmartTube&#39;s &lt;strong&gt;stable version&lt;/strong&gt; instead (&lt;strong&gt;recommended&lt;/strong&gt;)&lt;/li&gt; 
 &lt;li&gt;Use the international firmware for your device&lt;/li&gt; 
 &lt;li&gt;(if your device is from 2020 or before) You can do a factory reset and then install SmartTube beta before doing any system updates. You can then safely update your system, SmartTube should continue working.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;Updating&lt;/h3&gt; 
&lt;p&gt;The app has a built-in updater. You only need to follow the installation procedure &lt;strong&gt;once&lt;/strong&gt;. A few seconds after launching SmartTube, it will notify you if there is any update and also show a changelog. You can disable automatic update checks or manually update in the settings under &quot;about&quot;.&lt;/p&gt; 
&lt;p&gt;If the installation fails, either your &lt;strong&gt;disk space is full&lt;/strong&gt; or the update didn&#39;t download correctly; clear up space and try updating again (&lt;em&gt;Settings &amp;gt; About &amp;gt; Check for updates&lt;/em&gt;).&lt;/p&gt; 
&lt;h2&gt;Compatibility&lt;/h2&gt; 
&lt;p&gt;SmartTube requires Android 4.3 or above. It does not work on non-Android devices (incl. LG or Samsung TVs). On unsupported TVs, you can use a TV stick or TV box. Though this app technically runs on smartphones and tablets, it is not optimized for such and offers no official support!&lt;/p&gt; 
&lt;p&gt;It has been successfully tested on TVs, TV boxes and TV sticks that are based on Android, including:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Android TVs &amp;amp; Google TVs (e.g. Philips, Sony)&lt;/li&gt; 
 &lt;li&gt;Chromecast with Google TV &amp;amp; TVs with &lt;em&gt;Chromecast built-in&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;Amazon FireTV stick (all generations)&lt;/li&gt; 
 &lt;li&gt;NVIDIA Shield&lt;/li&gt; 
 &lt;li&gt;TV boxes running Android (many cheap chinese no-name boxes)&lt;/li&gt; 
 &lt;li&gt;Xiaomi Mi Box&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;h3&gt;Interface&lt;/h3&gt; 
&lt;p&gt;SmartTube focuses on a clean and distraction-free interface for watching media content. The app does not include advertising UI elements and focuses on playback and browsing experience instead.&lt;/p&gt; 
&lt;h3&gt;SponsorBlock&lt;/h3&gt; 
&lt;p&gt;SmartTube includes optional SponsorBlock integration. From the &lt;a href=&quot;https://sponsor.ajay.app/&quot;&gt;SponsorBlock website&lt;/a&gt;:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;SponsorBlock is an open-source crowdsourced browser extension and open API for &lt;strong&gt;skipping sponsor segments&lt;/strong&gt; in YouTube videos. [...] the extension automatically skips sponsors &lt;strong&gt;it knows about&lt;/strong&gt; using a privacy preserving query system. It also supports skipping &lt;strong&gt;other categories&lt;/strong&gt;, such as intros, outros and reminders to subscribe [and non-music parts in music videos].&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;You can select which categories you want to skip in the settings. Unlike the browser addon, in SmartTube you cannot submit new segments (TVs and TV remotes aren&#39;t great devices for such precise operations). Note that SponsorBlock is a free and voluntary project based on user submissions, so don&#39;t expect it to 100% work every time. Sometimes, sponsor segments are not yet submitted to the database, sometimes the SponsorBlock servers are offline/overloaded.&lt;/p&gt; 
&lt;h3&gt;Casting&lt;/h3&gt; 
&lt;p&gt;To cast videos from your phone (or other devices), you must link that device to your TV. Unlike the original YouTube app, SmartTube does not automatically show up when you are in the same wifi network. How to link your smartphone and TV:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;open SmartTube and go to settings&lt;/li&gt; 
 &lt;li&gt;go to &quot;Remote control&quot; (2nd option)&lt;/li&gt; 
 &lt;li&gt;open your YouTube app on your phone, go to settings &amp;gt; General &amp;gt; watch on TV&lt;/li&gt; 
 &lt;li&gt;click on &lt;em&gt;connect using TV-code&lt;/em&gt; and enter the code from your TV&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://t.me/SmartTubeEN/8514&quot;&gt;&lt;strong&gt;Screenshot guide&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;Due to technical limitations, you need to open the app on the TV before casting; SmartTube cannot automatically wake up the TV.&lt;/p&gt; 
&lt;h3&gt;Picture-in-Picture (PiP)&lt;/h3&gt; 
&lt;p&gt;SmartTube supports playing videos in PiP mode. This needs to be enabled under &lt;em&gt;Settings &amp;gt; General &amp;gt; Background playback &amp;gt; Picture in picture&lt;/em&gt;. The video will go into PiP mode when you press home while playing a video, and also when you press &lt;em&gt;back&lt;/em&gt; if enabled in &lt;em&gt;Settings &amp;gt; General &amp;gt; Background playback (activation)&lt;/em&gt;.&lt;/p&gt; 
&lt;h3&gt;Adjust Speed&lt;/h3&gt; 
&lt;p&gt;You can adjust the playback speed pressing the speed-indicator icon (gauge) in the top row of the player. This is remembered across videos. Some speeds may cause frame drops, this is a known issue.&lt;/p&gt; 
&lt;h3&gt;Voice Search&lt;/h3&gt; 
&lt;p&gt;To enable global voice search, an additional app must be installed alongside SmartTube. This &lt;em&gt;bridge app&lt;/em&gt; allows the system voice search to open SmartTube instead of the default YouTube app. For this to work, you must uninstall the original YouTube app. We know this sucks, but you can always reinstall it if you change your mind. The &lt;em&gt;bridge app&lt;/em&gt; will not show up in your launcher and you cannot launch it directly; it is only used internally by the system&#39;s voice search. On some devices, you need to explicitly say &quot;Youtube&quot; when searching (e.g. say &quot;youtube cute cats&quot; instead of just &quot;cute cats&quot;).&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;On Amazon Fire TV&lt;/strong&gt;:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Uninstall the original YouTube app (no root required)&lt;/li&gt; 
 &lt;li&gt;Download and install the Amazon Bridge SmartTube app: &lt;a href=&quot;https://kutt.to/stn_bridge_amazon&quot;&gt;https://kutt.to/stn_bridge_amazon&lt;/a&gt; (e.g. via &lt;em&gt;Downloader by AFTVnews&lt;/em&gt;)&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;On Google Chromecast with Google TV&lt;/strong&gt;:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Uninstall the original YouTube app (no root required)&lt;/li&gt; 
 &lt;li&gt;Download and install the ATV Bridge SmartTube app: &lt;a href=&quot;https://kutt.to/stn_bridge_atv&quot;&gt;https://kutt.to/stn_bridge_atv&lt;/a&gt; (e.g. via &lt;em&gt;Downloader by AFTVnews&lt;/em&gt;)&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;On all other Android devices&lt;/strong&gt;, sadly root is required to enable this:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Root your device (search for a guide for your specific device)&lt;/li&gt; 
 &lt;li&gt;Uninstall the official YouTube app using root (&lt;code&gt;adb shell pm uninstall com.google.android.youtube.tv&lt;/code&gt;)&lt;/li&gt; 
 &lt;li&gt;Download and install the ATV Bridge SmartTube app: &lt;a href=&quot;https://kutt.to/stn_bridge_atv&quot;&gt;https://kutt.to/stn_bridge_atv&lt;/a&gt; (e.g. via &lt;em&gt;Downloader by AFTVnews&lt;/em&gt;)&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Donation&lt;/h2&gt; 
&lt;p&gt;If you want to support my developments you are welcome to buy me a cup of coffee 😃&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://www.patreon.com/smarttube&quot;&gt;&lt;strong&gt;Patreon (Visa, Mastercard, PayPal)&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;PayPal&lt;/strong&gt;: firsth
  &lt;!-- abc@def --&gt;ash@gmai
  &lt;!-- @abc.com --&gt;&lt;a href=&quot;http://l.com&quot;&gt;l.com&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;!-- &gt; [**Buy me a coffee**](https://www.buymeacoffee.com/stube) --&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;BTC&lt;/strong&gt;: 1JAT5VVWarVBkpVbNDn8UA8HXNdrukuBSx&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;LTC&lt;/strong&gt;: ltc1qgc24eq9jl9cq78qnd5jpqhemkajg9vudwyd8pw&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;ETH&lt;/strong&gt;: 0xe455E21a085ae195a097cd4F456051A9916A5064&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;ETC&lt;/strong&gt;: 0x209eCd33Fa61fA92167595eB3Aea92EE1905c815&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;TRX&lt;/strong&gt;: TJNPY794aSGZf3WGHTna2VCWm2G5Yua7E8&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;USDT (TRC20)&lt;/strong&gt;: TJNPY794aSGZf3WGHTna2VCWm2G5Yua7E8&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;USDT (BEP20)&lt;/strong&gt;: 0x64B28da787BE6ac5889D276A5638d4f077840eC5&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;USDT (ERC20)&lt;/strong&gt;: 0xe455e21a085ae195a097cd4f456051a9916a5064&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;TON&lt;/strong&gt;: UQAc9zgnnzwS8yb5wxAu5CB0RddmjPBjWI-n46oQ7XfCQrgI&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;XMR&lt;/strong&gt;: 48QsMjqfkeW54vkgKyRnjodtYxdmLk6HXfTWPSZoaFPEDpoHDwFUciGCe1QC9VAeGrgGw4PKNAksX9RW7myFqYJQDN5cHGT&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Support&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Please check the &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#faq&quot;&gt;FAQ&lt;/a&gt; first!&lt;/strong&gt; Also at least have a short look at the recent chat history.&lt;/p&gt; 
&lt;p&gt;You can report in our Telegram group or via &lt;a href=&quot;https://github.com/yuliskov/SmartTube/issues&quot;&gt;issue tracker on Github&lt;/a&gt; (account required).&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Telegram group (international)&lt;/strong&gt;: &lt;a href=&quot;http://t.me/SmartTubeEN&quot;&gt;@SmartTubeEN&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Discord group (international)&lt;/strong&gt;: &lt;a href=&quot;https://discord.gg/Wt8HDDej5z&quot;&gt;SmartTube Official&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Telegram group (RU/UA)&lt;/strong&gt;: &lt;a href=&quot;http://t.me/SmartTubeUA&quot;&gt;@SmartTubeUA&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Email&lt;/strong&gt;: firsth
  &lt;!-- abc@def --&gt;ash@gmai
  &lt;!-- @abc.com --&gt;&lt;a href=&quot;http://l.com&quot;&gt;l.com&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The international group is in &lt;strong&gt;English only&lt;/strong&gt;. But don&#39;t worry if your English is not perfect, we have a friendly international community.&lt;/p&gt; 
&lt;h2&gt;Team&lt;/h2&gt; 
&lt;p&gt;SmartTube is developed single-handedly; there is no larger team or company behind this. This is an open source, hobby project. Several others have helped with translations, some of which can be seen on &lt;a href=&quot;https://github.com/yuliskov/SmartTube/graphs/contributors&quot;&gt;Github&lt;/a&gt;, some have sent their translations directly to Yurii. There are also helpful people in the support chat.&lt;/p&gt; 
&lt;h2&gt;Build&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;NOTE: OpenJDK 14 or older (!) is required. Newer JDK could cause app crash!&lt;/strong&gt;&lt;br /&gt; To build and install debug version, run these commands:&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git clone https://github.com/yuliskov/SmartTube.git
cd SmartTube
git submodule update --init
adb connect &amp;lt;device_ip_address&amp;gt;
gradlew clean installStstableDebug
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Video codecs&lt;/h2&gt; 
&lt;p&gt;Video codecs are the algorithms used for video compression.&lt;/p&gt; 
&lt;h3&gt;Which codec to choose / overview&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;recommendation&lt;/th&gt; 
   &lt;th style=&quot;text-align:left&quot;&gt;hardware support&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;compression, bitrate*&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;quality&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;AV01&lt;/strong&gt; aka. AV1&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;best choice, &lt;strong&gt;if your device supports&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;first devices started coming in &lt;strong&gt;2020&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;best&lt;/strong&gt; &lt;small&gt;(e.g. 1.6 Mbps)&lt;/small&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;same&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;VP9&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;best choice on most devices&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;most devices &lt;strong&gt;since 2015&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;better&lt;/strong&gt; &lt;small&gt;(e.g. 2.1 Mbps)&lt;/small&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;same&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;AVC&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;only for old or slow hardware&lt;/td&gt; 
   &lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;all&lt;/strong&gt; devices&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;good &lt;small&gt;(e.g. 2.7 Mbps)&lt;/small&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;same&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;small&gt;* Examples taken from the video-only track at 1080p @ 25fps for this video: &lt;a href=&quot;https://youtube.com/watch?v=k2qgadSvNyU&quot;&gt;Dua Lipa - New Rules (Official Music Video)&lt;/a&gt;&lt;/small&gt;&lt;/p&gt; 
&lt;p&gt;At the same resolution, a &lt;strong&gt;lower bitrate is better!&lt;/strong&gt; YouTube explicitly targets the &lt;strong&gt;same quality&lt;/strong&gt; regardless of the codec. Older codecs have a higher bitrate only because they are less efficient. On Youtube, you &lt;strong&gt;do not&lt;/strong&gt; get better quality by simply choosing a higher bitrate. Newer codecs have a better compression = lower bitrate = use less bandwidth = save the environment. This is a feature, not a bug. You should use the newest codec that works smoothly on your device, not the least efficient one. AVC usually has the highest bitrate. This is bad, not good.&lt;/p&gt; 
&lt;h3&gt;Which quality to choose?&lt;/h3&gt; 
&lt;p&gt;Currently, there is no automatic mode based on your bandwidth. But you can configure a default video preset yourself under settings &amp;gt; video player &amp;gt; video presets. The first option (&quot;none&quot;) will remember your last selection within the video player. Any other preset is used initially for each video; if the selected profile is not available, the next best available option is used. You can still override the profile on each video individually within the player.&lt;/p&gt; 
&lt;p&gt;To decide the optional resolution / video quality for you, you need to consider a few limiting factors:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Your bandwidth (choose only up to the bitrate that your bandwidth can handle; you can do a speedtest using &lt;a href=&quot;https://fast.com&quot;&gt;fast.com&lt;/a&gt; by Netflix)&lt;/li&gt; 
 &lt;li&gt;Your TV&#39;s display resolution (the quality &lt;strong&gt;might slightly&lt;/strong&gt; improve, if you select the next higher resolution, e.g. 1080p on a 720p display; but don&#39;t expect a big difference)&lt;/li&gt; 
 &lt;li&gt;Your TV&#39;s capabilities (e.g. HDR, 60fps)&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Generally 60fps is an improvement, but if you personally don&#39;t notice (or mind) the difference, you can save bandwidth (and the environment) by not choosing 60fps.&lt;/p&gt; 
&lt;h3&gt;HDR&lt;/h3&gt; 
&lt;p&gt;HDR works only &lt;strong&gt;if your hardware supports it&lt;/strong&gt;. It&#39;s a complicated mess:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Your TV must support it&lt;/li&gt; 
 &lt;li&gt;If you use a TV box, that TV box &lt;strong&gt;and&lt;/strong&gt; your TV cable &lt;strong&gt;and&lt;/strong&gt; the TV must support HDR&lt;/li&gt; 
 &lt;li&gt;Yes, there truly are different HDMI cable versions with different HDR-support, it&#39;s complicated&lt;/li&gt; 
 &lt;li&gt;some devices (like the &lt;strong&gt;NVIDIA Shield&lt;/strong&gt;) generally support HDR, but &lt;strong&gt;not&lt;/strong&gt; the specific HDR format that is used on YouTube 😢&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If HDR videos look dim or washed out, then check &lt;a href=&quot;https://www.wired.com/story/hdr-too-dark-how-to-fix-it/&quot;&gt;this article&lt;/a&gt;. &lt;strong&gt;If HDR is not working&lt;/strong&gt;, it&#39;s probably not this app&#39;s fault. You might need to search on the web for &quot;HDR&quot; and your device name for any help.&lt;/p&gt; 
&lt;h2&gt;Liability&lt;/h2&gt; 
&lt;p&gt;We take no responsibility for the use of our tool, or external instances provided by third parties. We strongly recommend you abide by the valid official regulations in your country. Furthermore, we refuse liability for any inappropriate use of third-party services. This tool is provided to you in the spirit of free, open software.&lt;/p&gt; 
&lt;p&gt;You may view the LICENSE in which this software is provided to you &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/LICENSE&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;ol start=&quot;16&quot;&gt; 
  &lt;li&gt;Limitation of Liability.&lt;/li&gt; 
 &lt;/ol&gt; 
 &lt;p&gt;IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;FAQ&lt;/h2&gt; 
&lt;h3&gt;Q: Videos buffer a LOT&lt;/h3&gt; 
&lt;p&gt;A: Try to switch to encrypted DNS like NextDNS. You can set-up such DNS either automatically or manually. To automatic set-up you can use the &lt;a href=&quot;https://f-droid.org/en/packages/app.intra/&quot;&gt;Intra apk at fdroid&lt;/a&gt; and the &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.autostart&quot;&gt;&quot;AutoStart - No root&quot;&lt;/a&gt; apk to make it autolaunch after every TV restart. For manual set-up &lt;a href=&quot;https://www.reddit.com/r/MiBox/s/7esEVGtAAa&quot;&gt;use this guide&lt;/a&gt;.&lt;/p&gt; 
&lt;h3&gt;Q: There is no result for the search that I say (Android 11)&lt;/h3&gt; 
&lt;p&gt;A: They&#39;re some reports that the latest update for &quot;Google app for Android TV&quot; could cause this bug. Deleting the update should fix the problem.&lt;/p&gt; 
&lt;h3&gt;Q: AV01 does not play / Why is VP9 slow on my device?&lt;/h3&gt; 
&lt;p&gt;A: Because AV01 is very new, &lt;strong&gt;most&lt;/strong&gt; TVs and TV boxes &lt;strong&gt;do not&lt;/strong&gt; offer hardware support and &lt;strong&gt;cannot&lt;/strong&gt; play AV01 &lt;strong&gt;at all&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;If your device has hardware support for a codec, videos using that codec should play smoothly. High resolutions might also be slow in VP9 on cheap TV boxes that don&#39;t officially support 4k. Your device probably can play VP9 videos even without hardware support, however this requires a powerful CPU to run smoothly. Fixing AV01 without hardware support is technically possible, but currently not planned and probably not efficient enough.&lt;/p&gt; 
&lt;h3&gt;Q: Can you make SmartTube look like the original app?&lt;/h3&gt; 
&lt;p&gt;A: Compared to SmartTube&#39;s UI, Stock Youtube and YT Kids are far ahead. However, we&#39;d need someone who&#39;s skilled and willing to dedicate enough time and energy into making it. And into maintaining it longterm (incl. new features, bug fixes). All of this for free. If you are / got someone like that, please help. Not to mention that SmartTube follows Google&#39;s official template &amp;amp; recommendations for Android TV apps. It&#39;s Google&#39;s fault that the template is somewhat ugly. 😂&lt;/p&gt; 
&lt;h3&gt;Q: Can the search page be improved?&lt;/h3&gt; 
&lt;p&gt;A: It can be, but it takes someone to do it, similar to the above FAQ-entry. SmartTube is following Google&#39;s officially recommended design/template for TV apps and is using the official, preinstalled Android TV keyboard. Sadly, Google did a really bad job regarding the search page and keyboard. Maybe a future SmartTube update can add an embedded keyboard, similar to the original YouTube or other major Android TV apps. Maybe it can improve the looks to be as good or better than in the official YouTube app. But for now, it is the way it is due to lack of time and due to Google&#39;s official recommendations being bad.&lt;/p&gt; 
&lt;h3&gt;Q: Can I install this on a Samsung Tizen TV / LG webOS TV / Roku / iOS / toaster?&lt;/h3&gt; 
&lt;p&gt;A: No, this only works on &lt;strong&gt;Android&lt;/strong&gt; devices. If you look at an Android TV&#39;s product page, it usually says clearly that it&#39;s based on Android. The app &lt;strong&gt;cannot&lt;/strong&gt; easily be ported over to other platforms and we have no plans to even try. &lt;strong&gt;Please do not ask&lt;/strong&gt;. Instead, you can connect a separate TV stick or TV box to your TV.&lt;/p&gt; 
&lt;h3&gt;Q: Can I install this on a smartphone? / Can you add portrait mode? / Scrolling doesn&#39;t work.&lt;/h3&gt; 
&lt;p&gt;A: &lt;strong&gt;Big No&lt;/strong&gt;. This app is &lt;strong&gt;not&lt;/strong&gt; for smartphones, we offer &lt;strong&gt;zero support&lt;/strong&gt; for that.&lt;/p&gt; 
&lt;p&gt;You &lt;strong&gt;can cast&lt;/strong&gt; videos &lt;strong&gt;from&lt;/strong&gt; your smartphone to a TV / TV box running SmartTube, though. Just use the official YouTube app, &lt;a href=&quot;https://github.com/MorpheApp&quot;&gt;Morphe&lt;/a&gt; or &lt;a href=&quot;https://github.com/ReVanced&quot;&gt;ReVanced&lt;/a&gt;, see &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#casting&quot;&gt;the casting section&lt;/a&gt; for more information.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;There will not be a phone version.&lt;/strong&gt; You can use &lt;a href=&quot;https://github.com/MorpheApp&quot;&gt;Morphe&lt;/a&gt;, &lt;a href=&quot;https://github.com/ReVanced&quot;&gt;ReVanced&lt;/a&gt;, &lt;a href=&quot;https://play.google.com/store/apps/details?id=free.tube.premium.advanced.tuber&quot;&gt;Pure Tuber&lt;/a&gt;, &lt;a href=&quot;https://github.com/libre-tube/LibreTube&quot;&gt;LibreTube&lt;/a&gt;, &lt;a href=&quot;https://newpipe.schabi.org&quot;&gt;NewPipe&lt;/a&gt;, or &lt;a href=&quot;https://github.com/polymorphicshade/NewPipe#newpipe-x-sponsorblock&quot;&gt;NewPipe x SponsorBlock&lt;/a&gt; instead. Please go to their respective support chats for help.&lt;/p&gt; 
&lt;h3&gt;Q: Can I install this on a tablet / car screen / smartphone with docking station?&lt;/h3&gt; 
&lt;p&gt;Yes... maybe.. Requirements:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;It is an Android device&lt;/li&gt; 
 &lt;li&gt;It has a large screen&lt;/li&gt; 
 &lt;li&gt;It has a TV remote, controller, or keyboard &lt;strong&gt;Touch input is not supported.&lt;/strong&gt; Mouse/touchpad scrolling neither. You cannot properly use SmartTube with only touch or mouse input.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Some users reported great success (incl. on a &lt;a href=&quot;https://t.me/SmartTubeEN/6060&quot;&gt;car entertainment system&lt;/a&gt;). &lt;strong&gt;Please share your success stories with us.&lt;/strong&gt;&lt;/p&gt; 
&lt;h3&gt;Q: I get &quot;unknown codec&quot; / &quot;can&#39;t download video&quot; errors&lt;/h3&gt; 
&lt;p&gt;A: please wait 5 seconds for the video to play. If that doesn&#39;t help, press the play button. Some users reported, that this issue only appears when they have a USB audio device attached or if their disk storage is full.&lt;/p&gt; 
&lt;h3&gt;Q: I get &quot;the video profile is not supported&quot;&lt;/h3&gt; 
&lt;p&gt;A. Press the &quot;HQ&quot;-button in the bottom-left, select &lt;em&gt;video formats&lt;/em&gt; and select anything other than AV01. AV01 is &lt;strong&gt;not supported&lt;/strong&gt; on most devices (apparently including yours), so select VP9 instead. See &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#Video-codecs&quot;&gt;the section on video codecs&lt;/a&gt; for more information.&lt;/p&gt; 
&lt;h3&gt;Q: I get &quot;video unavailable&quot; when watching unlisted videos / my own videos&lt;/h3&gt; 
&lt;p&gt;A: Right, that&#39;s currently a bug.&lt;/p&gt; 
&lt;h3&gt;Q: It doesn&#39;t show up on my casting list&lt;/h3&gt; 
&lt;p&gt;A: Please read the &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#casting&quot;&gt;Casting&lt;/a&gt; section.&lt;/p&gt; 
&lt;h3&gt;Q: I get an error saying &quot;Sign in to confirm you&#39;re not a bot&quot;&lt;/h3&gt; 
&lt;p&gt;A: Your IP address range might be temporarily/permanently blocked by YouTube from watching videos if you not signed in to your account.&lt;/p&gt; 
&lt;h3&gt;Q: The video is buffering a lot&lt;/h3&gt; 
&lt;p&gt;A: The issue might not be specific to SmartTube, as other unofficial YouTube apps also report this issue. It seems uncommon nowadays, but was very present in the 2nd quarter of 2021. Some users or devices seem to be more affected than others. The official YouTube app &amp;amp; website are apparently only rarely affected. The root cause of the issue is currently unclear, but it appears to be a server-side thing on YouTube&#39;s end. Possibly, YouTube is discriminating 3rd party apps.&lt;/p&gt; 
&lt;p&gt;For now, try to see if it helps to:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Reduce the resolution (or change it back)&lt;/li&gt; 
 &lt;li&gt;Change the video format to AVC&lt;/li&gt; 
 &lt;li&gt;Increase the buffer in the settings&lt;/li&gt; 
 &lt;li&gt;Hit the back button and try playing the video again&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Q: The debug information says my display is 1080p, but I have a 4k/UHD display!&lt;/h3&gt; 
&lt;p&gt;A: Do not worry, &lt;strong&gt;the debug information is incorrect.&lt;/strong&gt; SmartTube works fine even above 1080p and you should be able to see that, when you play a video in 4k or UHD. Also do not worry if it says &quot;720p&quot; and you have a 1080p display.&lt;/p&gt; 
&lt;h3&gt;Q: Why does it not autoselect highest quality?&lt;/h3&gt; 
&lt;p&gt;A: &lt;strong&gt;It does&lt;/strong&gt; (by default). If you set a &lt;em&gt;video profile&lt;/em&gt; under settings, that acts as a maximum for automatic selection. Check if you configured a video profile, you can unset it by choosing &quot;none&quot;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Please do not confuse quality with bitrate&lt;/strong&gt;. See &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#Video-codecs&quot;&gt;the section on video codecs&lt;/a&gt; for more information.&lt;/p&gt; 
&lt;h3&gt;Q: Can I set a (maximum) resolution by default?&lt;/h3&gt; 
&lt;p&gt;A: SmartTube automatically select the highest available quality for your video, up to a maximum resolution that you can set in the settings under &quot;video profile&quot;. If available, SmartTube will pick the selected video profile, or otherwise the next best one available will be used. You can still always change the video profile while watching videos.&lt;/p&gt; 
&lt;h3&gt;Q: Can it set the resolution to &quot;auto&quot;, depending on my available bandwidth?&lt;/h3&gt; 
&lt;p&gt;A: This is planned, but not available yet (sorry 🙇‍♀️). However, you can set a maximum resolution to something that should work for your bandwidth. See above for details.&lt;/p&gt; 
&lt;h3&gt;Q: Why does it skip video segments?&lt;/h3&gt; 
&lt;p&gt;A: SmartTube has a feature called &lt;strong&gt;SponsorBlock&lt;/strong&gt;. You can select which categories should be skipped, if any. See the &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#sponsorblock&quot;&gt;SponsorBlock section&lt;/a&gt; for more details.&lt;/p&gt; 
&lt;h3&gt;Q: How to start the next video automatically / stop after every video?&lt;/h3&gt; 
&lt;p&gt;A: You can switch between different autoplay-modes using the loop-button 🔁&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://t.me/SmartTubeEN/24953&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/images/new/V3GHGvWprmdE1w.jpg&quot; alt=&quot;screenshot showing the loop-button&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Q: How to remove recommended videos (e.g. news) that are unrelated to me?&lt;/h3&gt; 
&lt;p&gt;A: Recommended videos are defined by YouTube and not by the app, we cannot change the algorithm. They are based on your country, which you can change in the settings. If you are logged in, they are based on your watch history, user profile data, and whatever else Google might use. If you are not logged in, you are like in &quot;incognito mode&quot;, so your watch history does not influence your recommendations. Maybe a future version will add optional user profiling without logging in.&lt;/p&gt; 
&lt;h3&gt;Q: Does HDR work?&lt;/h3&gt; 
&lt;p&gt;A: Yes, HDR works &lt;strong&gt;if your hardware&lt;/strong&gt; supports it. The &lt;strong&gt;NVIDIA Shield&lt;/strong&gt; does not. See &lt;a href=&quot;https://raw.githubusercontent.com/yuliskov/SmartTube/master/#HDR&quot;&gt;the section on HDR&lt;/a&gt; for more information.&lt;/p&gt; 
&lt;h3&gt;Q: Why do some updates say &quot;don&#39;t update if satisfied with the current version&quot; in the changelog?&lt;/h3&gt; 
&lt;p&gt;A: These updates change a lot of code, trying to fix bugs that only affect a few users/devices. Only the affected users should update. For anyone else, there is nothing to gain from updating; however there is the chance of causing new bugs. Do not worry if you updated anyways.&lt;/p&gt; 
&lt;h3&gt;Q: When playing at other speeds, frames are skipped!&lt;/h3&gt; 
&lt;p&gt;A: We currently cannot fix this, sorry.&lt;/p&gt; 
&lt;h3&gt;Q: What is AFR?&lt;/h3&gt; 
&lt;p&gt;A: &quot;Auto Frame Rate&quot;. It adjusts the refresh rate of your TV to match the content you&#39;re watching. It can slightly improve the smoothness, but the difference is very small; most people barely notice it. It does not work well on every hardware. If you don&#39;t know what it does and don&#39;t want to test it out yourself, you can safely keep it off.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; You can turn it on to see if it works on your device; if it causes issues (or if you don&#39;t care to test), turn it &lt;strong&gt;off&lt;/strong&gt;.&lt;/p&gt; 
&lt;h3&gt;Q: Should I choose high or low buffer?&lt;/h3&gt; 
&lt;p&gt;A: The higher your buffer, the more of a video will be preloaded ahead of your current position. A low buffer might minimally reduce your bandwidth usage, if you often close videos before they end. A high buffer can smooth out network issues and prevent the video from pausing to buffer. A higher buffer increases RAM usage, however this shouldn&#39;t be an issue.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Recommendation: high&lt;/strong&gt;.&lt;/p&gt; 
&lt;h3&gt;Q: Can I retain the buffer when seeking back?&lt;/h3&gt; 
&lt;p&gt;A: No, when you seek back (e.g. jump back 5 seconds), SmartTube will have to rebuffer. This might be improved in a future update.&lt;/p&gt; 
&lt;h3&gt;Q: My device freezes when watching YouTube&lt;/h3&gt; 
&lt;p&gt;A: That&#39;s a firmware or Android issue. If you are using a custom rom, maybe that rom is buggy. Because this issue is nearly impossible for the developer to debug, we cannot help you, sorry. You can try the usual workarounds: rebooting, clearing cache, reinstalling the app, or factory resetting the device.&lt;/p&gt; 
&lt;h3&gt;Q: Can I download videos?&lt;/h3&gt; 
&lt;p&gt;A: Not with SmartTube&lt;/p&gt; 
&lt;h3&gt;Q: Can updates be installed automatically?&lt;/h3&gt; 
&lt;p&gt;A: No, this is technically not possible. Only the preinstalled app manager (usually Google PlayStore, Amazon AppStore, etc) has the required permission. All other apps, incl. SmartTube can only show open installation prompt. A workaround using root would be possible, but hasn&#39;t been implemented yet.&lt;/p&gt; 
&lt;h3&gt;Q: Can I whitelist ads on some channels?&lt;/h3&gt; 
&lt;p&gt;A: No, this is not possible. SmartTube does not have any code to display ads. Adding this functionality would actually take time and effort, which is instead spent on adding useful features and fixing bugs.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/187779c5a5a40324eb6e8e8085369c0b62361ef1aca69f465626c9939f9627c4/yuliskov/SmartTube" medium="image" />
      
    </item>
    
    <item>
      <title>alphaXiv/OpenResearch</title>
      <link>https://github.com/alphaXiv/OpenResearch</link>
      <description>&lt;p&gt;Turn your coding agents into research agents&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://openresearch.sh/&quot;&gt;https://openresearch.sh/&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/openresearch.svg?sanitize=true&quot; alt=&quot;&quot; width=&quot;36&quot; /&gt; OpenResearch&lt;/h1&gt; 
 &lt;p&gt;&lt;strong&gt;The local-first workspace for research agents and autoresearch.&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;Turn &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/claude.svg?sanitize=true&quot; alt=&quot;&quot; width=&quot;16&quot; height=&quot;16&quot; align=&quot;texttop&quot; /&gt; Claude Code, &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/codex.svg?sanitize=true&quot; alt=&quot;&quot; width=&quot;16&quot; height=&quot;16&quot; align=&quot;texttop&quot; /&gt; Codex, &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/opencode.svg?sanitize=true&quot; alt=&quot;&quot; width=&quot;16&quot; height=&quot;16&quot; align=&quot;texttop&quot; /&gt; OpenCode, or &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/cursor.svg?sanitize=true&quot; alt=&quot;&quot; width=&quot;16&quot; height=&quot;16&quot; align=&quot;texttop&quot; /&gt; Cursor into research agents that can review literature, develop hypotheses, run experiments, and produce research artifacts.&lt;/p&gt; 
 &lt;p&gt; &lt;a href=&quot;https://github.com/alphaXiv/OpenResearch/releases/latest/download/OpenResearch.dmg&quot;&gt;
   &lt;picture&gt;
    &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;.github/readme-assets/download-macos-dark.svg&quot; /&gt;
    &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/download-macos.svg?sanitize=true&quot; alt=&quot;Download OpenResearch for macOS&quot; width=&quot;220&quot; height=&quot;44&quot; /&gt;
   &lt;/picture&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/alphaXiv/OpenResearch/releases/latest/download/openresearch-cli-x86_64-pc-windows-msvc.zip&quot;&gt;
   &lt;picture&gt;
    &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;.github/readme-assets/download-windows-dark.svg&quot; /&gt;
    &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/download-windows.svg?sanitize=true&quot; alt=&quot;Download OpenResearch for Windows (Beta)&quot; width=&quot;220&quot; height=&quot;44&quot; /&gt;
   &lt;/picture&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/#get-started&quot;&gt;
   &lt;picture&gt;
    &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;.github/readme-assets/install-linux-centered-dark.svg&quot; /&gt;
    &lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/install-linux-centered.svg?sanitize=true&quot; alt=&quot;Install OpenResearch for Linux&quot; width=&quot;220&quot; height=&quot;44&quot; /&gt;
   &lt;/picture&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;p&gt; &lt;a href=&quot;https://openresearch.sh/docs&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/action-documentation.svg?sanitize=true&quot; alt=&quot;Documentation&quot; width=&quot;132&quot; height=&quot;24&quot; /&gt;&lt;/a&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/action-separator.svg?sanitize=true&quot; alt=&quot; · &quot; width=&quot;12&quot; height=&quot;24&quot; /&gt; &lt;a href=&quot;https://github.com/alphaXiv/OpenResearch/releases&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/.github/readme-assets/action-releases.svg?sanitize=true&quot; alt=&quot;Releases&quot; width=&quot;78&quot; height=&quot;24&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;p&gt;&lt;sub&gt;macOS 11+ · Windows beta requires &lt;a href=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/docs/windows.md&quot;&gt;Git for Windows&lt;/a&gt;&lt;/sub&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://trendshift.io/repositories/89363&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/89363&quot; alt=&quot;GitHub Trending: #1 Repository of the Day&quot; width=&quot;250&quot; height=&quot;55&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;Get started&lt;/h2&gt; 
&lt;p&gt;Install the CLI on macOS or Linux, then launch OpenResearch:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;curl -LsSf https://openresearch.sh/install.sh | sh
orx up
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;On Windows, use the beta download above after installing &lt;a href=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/docs/windows.md&quot;&gt;Git for Windows&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;orx up&lt;/code&gt; opens the local dashboard at &lt;code&gt;http://127.0.0.1:4791&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alphaXiv/OpenResearch/main/docs/local-models.md&quot;&gt;Connect a local model&lt;/a&gt; to use LM Studio, oMLX, Ollama, or a custom endpoint with OpenCode.&lt;/p&gt; 
&lt;p&gt;Create an account at &lt;a href=&quot;https://openresearch.sh&quot;&gt;openresearch.sh&lt;/a&gt; to receive email updates and use managed OpenResearch compute.&lt;/p&gt; 
&lt;h2&gt;Built for research agents&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;OpenResearch gives you&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Parallel exploration&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Give each research direction an independent agent session and isolated git worktree.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Reproducible experiments&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Track variants in a git-native experiment tree; every run receives an immutable archive of its recorded commit.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Evidence in context&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Keep logs, diffs, files, results, and artifacts tied to the work that produced them.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Your choice of agent&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Use Claude Code, Codex, OpenCode, or Cursor, with the harness and model selected per session.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Your choice of compute&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Run locally, on your own infrastructure, or with managed OpenResearch compute.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Local ownership&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Keep projects, conversations, experiments, runs, logs, code, and artifacts on your machine.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Autoresearch&lt;/h3&gt; 
&lt;p&gt;OpenResearch can run the full loop autonomously: propose an idea, change the code, launch an experiment, inspect the evidence, and decide what to try next. Multiple agents can explore different directions in parallel while the experiment tree preserves their lineage.&lt;/p&gt; 
&lt;h2&gt;Run anywhere&lt;/h2&gt; 
&lt;p&gt;The same committed source snapshot can run locally, over SSH, or on Slurm, Kubernetes, Ray, Hugging Face Jobs, Modal, Tinker, and managed OpenResearch compute. Publishing the repository is not required.&lt;/p&gt; 
&lt;p&gt;Run the workspace next to remote GPUs while using the browser on your laptop:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;orx up --remote user@host
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;SSH config aliases and custom ports are supported. The remote service binds to loopback and has no application-level authentication, so other users on that host can reach it.&lt;/p&gt; 
&lt;h2&gt;CLI and agent integration&lt;/h2&gt; 
&lt;p&gt;Install the OpenResearch skill into supported coding agents:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;orx install-skills
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Common commands:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;orx projects
orx project view &amp;lt;project-id&amp;gt;
orx runs &amp;lt;project-id&amp;gt;
orx logs &amp;lt;run-id&amp;gt;
orx exp run &amp;lt;experiment-id&amp;gt;
orx discover keyword &amp;lt;query&amp;gt;
orx paper &amp;lt;arxiv-id-or-doi&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Run &lt;code&gt;orx --help&lt;/code&gt; or &lt;code&gt;orx &amp;lt;command&amp;gt; --help&lt;/code&gt; for the complete interface.&lt;/p&gt; 
&lt;h2&gt;Local by default&lt;/h2&gt; 
&lt;p&gt;OpenResearch runs on &lt;code&gt;127.0.0.1&lt;/code&gt; with a local SQLite store. Creating a project or launching a run does not publish your code. An &lt;a href=&quot;https://openresearch.sh&quot;&gt;openresearch.sh&lt;/a&gt; account is only used for service-owned capabilities such as organizations and managed compute.&lt;/p&gt; 
&lt;h2&gt;Usage analytics&lt;/h2&gt; 
&lt;p&gt;Official release builds send opt-out, coarse usage events tied to a random installation ID. They do not include code, prompts, file contents or paths, repository names, tokens, emails, or project and experiment identifiers.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;orx telemetry off
orx telemetry status
orx &amp;lt;command&amp;gt; --no-telemetry
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Source and development builds do not send analytics.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/21964d459dc99947998752e4da7c1a7ff48810f8288f57f2bf5611ac0fef41ad/alphaXiv/OpenResearch" medium="image" />
      
    </item>
    
    <item>
      <title>debpalash/VoiceStudio</title>
      <link>https://github.com/debpalash/VoiceStudio</link>
      <description>&lt;p&gt;VoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription &amp; audiobook creation in 646 languages.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://voicestudio.sh&quot;&gt;https://voicestudio.sh&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;h3&gt;NOTE: Electron Rewrite Ongoing: Please dont&#39;t create desktop app related issues and pr&lt;/h3&gt; 
 &lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/logo.png&quot; alt=&quot;VoiceStudio logo&quot; width=&quot;120&quot; height=&quot;120&quot; /&gt;&lt;/p&gt; 
 &lt;h1&gt;VoiceStudio&lt;/h1&gt; 
 &lt;p&gt; &lt;a href=&quot;https://trendshift.io/repositories/28176?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-28176&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;img src=&quot;https://trendshift.io/api/badge/repositories/28176&quot; alt=&quot;VoiceStudio ranking on Trendshift&quot; width=&quot;220&quot; height=&quot;48&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;p&gt;&lt;sub&gt;Previously OmniVoice-Studio&lt;/sub&gt;&lt;/p&gt; 
 &lt;h3&gt;Clone voices, dub video, dictate, and produce long-form audio on your own hardware.&lt;/h3&gt; 
 &lt;p&gt;16 TTS engines · 11 ASR engines · 646-language catalogue · macOS, Windows, Linux, and Docker&lt;/p&gt; 
 &lt;p&gt;No account, API key, subscription, or usage meter for the local workflow.&lt;/p&gt; 
 &lt;p&gt; &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#install&quot;&gt;Install&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#features&quot;&gt;Features&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#comparison&quot;&gt;Compare&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#requirements&quot;&gt;Requirements&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#hardware-recommendations&quot;&gt;Hardware&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#engines&quot;&gt;Engines&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#architecture&quot;&gt;Architecture&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#api&quot;&gt;API&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#documentation&quot;&gt;Docs&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/#faq&quot;&gt;FAQ&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/README_CN.md&quot;&gt;&lt;strong&gt;简体中文&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;p&gt; &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/actions/workflows/ci.yml&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/actions/workflow/status/debpalash/VoiceStudio/ci.yml?branch=main&amp;amp;style=flat-square&amp;amp;label=CI&quot; alt=&quot;CI status&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/debpalash/VoiceStudio?style=flat-square&amp;amp;color=f59e0b&quot; alt=&quot;GitHub stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/debpalash/VoiceStudio/total?style=flat-square&amp;amp;color=8b5cf6&amp;amp;label=downloads&quot; alt=&quot;Total downloads&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/debpalash/VoiceStudio?style=flat-square&amp;amp;color=10b981&quot; alt=&quot;Latest release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-AGPL--3.0-blue?style=flat-square&quot; alt=&quot;AGPL-3.0 license&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/bzQavDfVV9&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-Community-5865F2?style=flat-square&amp;amp;logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord community&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
 &lt;p&gt; &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Download-macOS_%C2%B7_Windows_%C2%B7_Linux-10b981?style=for-the-badge&quot; alt=&quot;Download VoiceStudio&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;/div&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;img src=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/media/0.5.0/quick-switch.gif&quot; alt=&quot;Switching TTS engines from the VoiceStudio status bar&quot; width=&quot;100%&quot; /&gt; 
&lt;/div&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Active beta.&lt;/strong&gt; Use the &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases/latest&quot;&gt;latest release&lt;/a&gt; for stable work. &lt;code&gt;main&lt;/code&gt; contains the newest fixes and may change between releases. Report problems through &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/issues&quot;&gt;GitHub Issues&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;At a glance&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;VoiceStudio&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Workflows&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Voice cloning and design, video dubbing, dictation, stories, audiobooks, batch generation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Language catalogue&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;646 TTS languages; actual coverage and quality depend on the selected engine&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Engines&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;16 TTS · 11 ASR · switch in Model Catalogue or with &lt;kbd&gt;Ctrl&lt;/kbd&gt;/&lt;kbd&gt;Cmd&lt;/kbd&gt;+&lt;kbd&gt;E&lt;/kbd&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Platforms&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;macOS 13.3+ on Apple Silicon · Windows 10/11 x64 · Linux x86_64 with glibc 2.39+&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Compute&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;CUDA · Apple Silicon MPS/MLX · ROCm on Linux · CPU · optional remote workers&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Interfaces&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Desktop app · local REST/SSE/WebSocket API · OpenAI-compatible audio API · MCP Server&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Voices, projects, settings, and outputs stay on the machine by default&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;License&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;AGPL-3.0 application; downloaded models keep their upstream terms&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;The Voice workspace starts with three tabs: &lt;strong&gt;From audio&lt;/strong&gt; for cloning, &lt;strong&gt;By design&lt;/strong&gt; for creating a voice, and &lt;strong&gt;Convert&lt;/strong&gt; for speech-to-speech conversion. Each tab displays its own workflow, with Synthesize Audio or Convert pinned below the scrolling form. The top-bar &lt;strong&gt;Engines&lt;/strong&gt; panel combines engine selection, loaded models, and unload/flush controls; &lt;kbd&gt;Ctrl&lt;/kbd&gt;/&lt;kbd&gt;Cmd&lt;/kbd&gt;+&lt;kbd&gt;E&lt;/kbd&gt; opens it. The searchable language picker shares Dubbing’s flags and language list layout, selects one output language, and retains Auto and the full cloning catalogue. Language options flow into multiple columns when space allows. Expand &lt;strong&gt;Workspaces&lt;/strong&gt; in the sidebar to reveal navigation labels; Escape collapses it.&lt;/p&gt; 
&lt;p&gt;Dubbing starts with file upload or URL import and nearby language choices. Its &lt;strong&gt;Projects&lt;/strong&gt; panel lists previous dubs so they can be reopened by clicking anywhere on a card; action buttons operate independently. Advanced import options include captions and optional YouTube sign-in. Dubbing places playback controls over the video with background blur and combines the waveform and timed transcript in one compact editing surface. Drag the zoomed waveform left or right to pan; click to seek. Translation language and ISO-code controls stay synchronized; Auto clears any previous language code and dialect. Transcript items group editable text, timing and status, and voice controls into three readable rows that wrap with the panel width. Output Options stays compact with the active settings shown in its summary; expand it to change output, timing, or voice matching. Transcript, glossary, and paste controls share a toolbar above the segment editor. Project details, workflow steps, and Generate/Verify/Export actions use an unfilled header.&lt;/p&gt; 
&lt;p&gt;The Audiobook Script editor fills the available workspace beneath its markup toolbar; Voices and Book settings stay in their own tabs.&lt;/p&gt; 
&lt;p&gt;Output settings use aligned rows; review status appears before the collapsible transcript and glossary. Glossary terms have labelled entry fields and an explicit edit action. Launchpad arranges recent files and saved voices side by side when space allows, with responsive card grids and visible Open actions.&lt;/p&gt; 
&lt;p&gt;The casting board shows icon-based voice cards and searchable selectors for each speaker. Drag a card onto a speaker or choose a voice from that speaker’s menu.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;install&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Install&lt;/h2&gt; 
&lt;p&gt;Download a package from the &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases/latest&quot;&gt;latest release&lt;/a&gt;, then follow the platform guide.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Platform&lt;/th&gt; 
   &lt;th&gt;Package&lt;/th&gt; 
   &lt;th&gt;Guide&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;macOS 13.3+&lt;/td&gt; 
   &lt;td&gt;Apple Silicon DMG&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/macos.md&quot;&gt;Install on macOS&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Windows 10/11&lt;/td&gt; 
   &lt;td&gt;x64 MSI; choose the current-user build when listed to install without admin access&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/windows.md#install-pre-built-msi&quot;&gt;Install on Windows&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Linux&lt;/td&gt; 
   &lt;td&gt;AppImage, x86_64 with glibc 2.39+&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/linux.md&quot;&gt;Install on Linux&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Docker&lt;/td&gt; 
   &lt;td&gt;Linux/AMD64 images; CUDA, ROCm, CPU, and worker-only GPU profiles&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/docker.md&quot;&gt;Run with Docker&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;First launch creates a managed Python environment and downloads the default model. Later launches reuse both.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-note&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-info mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Note&lt;/p&gt;
 &lt;p&gt;On macOS, first launch needs a one-time right-click, then &lt;strong&gt;Open&lt;/strong&gt; approval. Intel Macs cannot run the local Python backend; use a &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/macos.md&quot;&gt;remote backend&lt;/a&gt; instead.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h3&gt;Quick Docker run&lt;/h3&gt; 
&lt;p&gt;The published images are &lt;strong&gt;&lt;code&gt;linux/amd64&lt;/code&gt; only&lt;/strong&gt;. On Apple Silicon, use the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/macos.md&quot;&gt;native macOS app&lt;/a&gt; for GPU acceleration. ARM64 hosts should read the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/docker.md#architecture&quot;&gt;architecture requirements&lt;/a&gt; before pulling an image.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run -d -p 127.0.0.1:3900:3900 -v omnivoice-data:/app/omnivoice_data --name voicestudio palashdeb/omnivoice-studio:stable
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;First voice&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Launch VoiceStudio and open &lt;strong&gt;Voice Cloning&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Add a clean voice sample. Three seconds works; 5 to 15 seconds usually gives a better prompt.&lt;/li&gt; 
 &lt;li&gt;Enter text, choose a language, then select &lt;strong&gt;Generate&lt;/strong&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Tip&lt;/p&gt;
 &lt;p&gt;&lt;strong&gt;Try without installing:&lt;/strong&gt; Run VoiceStudio in the cloud via the &lt;a href=&quot;https://colab.research.google.com/github/debpalash/VoiceStudio/blob/main/notebooks/OmniVoice_Studio_Colab.ipynb&quot;&gt;Google Colab notebook&lt;/a&gt;. Explore audio quality comparisons in &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/benchmarks.md&quot;&gt;benchmarks&lt;/a&gt; and prompt design tips in &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/expressive-speech.md&quot;&gt;expressive speech&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;h3&gt;Audio samples&lt;/h3&gt; 
&lt;p&gt;Listen to sample outputs produced locally with VoiceStudio:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Workflow&lt;/th&gt; 
   &lt;th&gt;Prompt / Reference Audio&lt;/th&gt; 
   &lt;th&gt;Generated Audio&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Voice Cloning&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo_voice.wav&quot;&gt;demo_voice.wav&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo_clone_output.wav&quot;&gt;demo_clone_output.wav&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Voice Design&lt;/strong&gt; (US News Anchor)&lt;/td&gt; 
   &lt;td&gt;&lt;em&gt;&quot;Clear, authoritative American broadcast tone&quot;&lt;/em&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/voice_design/demo_voice_design_us_news_anchor.wav&quot;&gt;demo_voice_design_us_news_anchor.wav&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Voice Design&lt;/strong&gt; (UK Audiobook)&lt;/td&gt; 
   &lt;td&gt;&lt;em&gt;&quot;Warm, expressive British storytelling voice&quot;&lt;/em&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/voice_design/demo_voice_design_audiobook_uk_narrator.wav&quot;&gt;demo_voice_design_audiobook_uk_narrator.wav&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Video Dubbing&lt;/strong&gt; (Multilingual)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo/dubbing/source.src.wav&quot;&gt;source.src.wav&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo/dubbing/dubbed_es.src.wav&quot;&gt;Spanish&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo/dubbing/dubbed_fr.src.wav&quot;&gt;French&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo/dubbing/dubbed_ja.src.wav&quot;&gt;Japanese&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/backend/assets/samples/demo/dubbing/dubbed_zh.src.wav&quot;&gt;Chinese&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Run from source&lt;/h3&gt; 
&lt;p&gt;Install the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/.github/CONTRIBUTING.md#development-setup&quot;&gt;development prerequisites&lt;/a&gt; (Node 20+/Bun and Python 3.11+), then:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/debpalash/VoiceStudio.git
cd VoiceStudio
bun install
bun run desktop
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The desktop launcher configures Python dependencies on first run via &lt;code&gt;uv&lt;/code&gt; automatically. Use &lt;code&gt;bun run dev&lt;/code&gt; for the browser UI. See &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/.github/CONTRIBUTING.md&quot;&gt;Contributing&lt;/a&gt; for services, tests, and platform packages.&lt;/p&gt; 
&lt;h3&gt;If setup fails&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Run &lt;strong&gt;Settings → About → Run self-check&lt;/strong&gt; or &lt;code&gt;uv run python backend/main.py --diagnose --deep&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Check &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/troubleshooting.md&quot;&gt;install troubleshooting&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Save a scrubbed diagnostic bundle from the app when opening an issue.&lt;/li&gt; 
 &lt;li&gt;For slow generation, compare &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/benchmarks.md&quot;&gt;measured benchmarks&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/performance.md&quot;&gt;performance settings&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a id=&quot;features&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Features&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Area&lt;/th&gt; 
   &lt;th&gt;Included&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Voice Cloning&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Zero-shot synthesis from a short reference clip (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/README.md&quot;&gt;guide&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Voice Design&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Create a voice from age, accent, pitch, style, and delivery instructions (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/expressive-speech.md&quot;&gt;expressive speech&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Video Dubbing&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Transcribe, translate, preserve speakers, synthesize, and export video; compact translation settings include track selection, and completed dubs flag timing issues for review (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/dubbing/export.md&quot;&gt;export guide&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Stories and audiobooks&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Multi-voice scripts · EPUB/PDF import · chapter rendering · &lt;code&gt;.m4b&lt;/code&gt; export&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/features/dictation.md&quot;&gt;Dictation Widget&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;System-wide shortcut, live transcription, optional local-LLM cleanup&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Vocal Isolation&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Demucs speech/background separation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Speaker Diarization&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Pyannote and WhisperX speaker assignment (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/features/diarization.md&quot;&gt;guide&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Batch Queue&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Queue large sets of audio and video jobs with per-job progress, or watch a local folder for new videos&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Model Catalogue&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Install, remove, select, and route TTS, ASR, and LLM models (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/README.md&quot;&gt;catalogue&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Remote Model Downloads&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Install models on enrolled remote workers with live progress (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/downloading-models.md&quot;&gt;guide&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GPU Auto-Detect&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;CUDA, MPS, ROCm, and CPU routing with per-engine checks (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/performance.md&quot;&gt;performance&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;AI Watermark&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;AudioSeal embedding and detection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;MCP Server&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Synthesis and transcription tools for MCP clients (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/mcp.md&quot;&gt;guide&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Diagnostics&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Self-checks, error journal, logs, and scrubbed support bundles (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/troubleshooting.md&quot;&gt;troubleshooting&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Local-first&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Core creation stays local; network-backed features are explicit opt-ins&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Extensible&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Registry-based TTS, ASR, and plugin interfaces (&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engine-acceptance.md&quot;&gt;acceptance&lt;/a&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;table&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;td width=&quot;50%&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/media/0.5.0/catalogue.png&quot; alt=&quot;VoiceStudio Model Catalogue&quot; width=&quot;100%&quot; /&gt;&lt;/td&gt; 
   &lt;td width=&quot;50%&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/media/0.5.0/gallery-save.png&quot; alt=&quot;Saving a gallery voice as a local profile&quot; width=&quot;100%&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td align=&quot;center&quot;&gt;&lt;sub&gt;Model Catalogue: engine, device, and install state&lt;/sub&gt;&lt;/td&gt; 
   &lt;td align=&quot;center&quot;&gt;&lt;sub&gt;Gallery: save a shared voice as a local profile&lt;/sub&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;p&gt;&lt;a id=&quot;comparison&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Comparison&lt;/h2&gt; 
&lt;p&gt;VoiceStudio trades managed cloud compute for local control. This is the practical difference:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;strong&gt;VoiceStudio&lt;/strong&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;strong&gt;Typical hosted voice service&lt;/strong&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Best fit&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Private, offline, self-hosted, or high-volume work&lt;/td&gt; 
   &lt;td&gt;Fast setup without local model management&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Data path&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Local by default; remote features are opt-in&lt;/td&gt; 
   &lt;td&gt;Audio and text are processed by the provider&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Cost model&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Free software; you supply the hardware&lt;/td&gt; 
   &lt;td&gt;Subscription, credits, or metered API use&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Setup&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Install the app and model weights&lt;/td&gt; 
   &lt;td&gt;Create an account and use the web app or API&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Depends on your engine and hardware&lt;/td&gt; 
   &lt;td&gt;Provider manages compute and scaling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Offline use&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Yes, after required models are installed&lt;/td&gt; 
   &lt;td&gt;Usually requires a network connection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Customization&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Source, engines, models, API, and routing are open&lt;/td&gt; 
   &lt;td&gt;Limited to provider options&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;You manage updates, disk, and compute&lt;/td&gt; 
   &lt;td&gt;Provider manages infrastructure&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;a id=&quot;requirements&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Requirements&lt;/h2&gt; 
&lt;p&gt;Requirements vary by engine. These values cover the default local workflow.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;strong&gt;Minimum&lt;/strong&gt;&lt;/th&gt; 
   &lt;th&gt;&lt;strong&gt;Recommended&lt;/strong&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;OS&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Windows 10 x64 · macOS 13.3 Apple Silicon · Linux x86_64 with glibc 2.39+&lt;/td&gt; 
   &lt;td&gt;Current supported OS release&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;RAM&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;8 GB&lt;/td&gt; 
   &lt;td&gt;16 GB+&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Disk&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;10 GB free&lt;/td&gt; 
   &lt;td&gt;20 GB+ SSD&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;GPU&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Optional; CPU mode is supported&lt;/td&gt; 
   &lt;td&gt;NVIDIA CUDA or Apple Silicon&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;VRAM&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;4 GB when using a GPU&lt;/td&gt; 
   &lt;td&gt;8 GB+; large optional engines need more&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Python from source&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;3.11+&lt;/td&gt; 
   &lt;td&gt;3.11 or 3.12&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;ROCm is Linux-only and opt-in. Windows AMD/Ryzen AI uses CPU. Systems with limited VRAM offload work to CPU when required. See &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/performance.md&quot;&gt;performance&lt;/a&gt;, &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/benchmarks.md&quot;&gt;benchmarks&lt;/a&gt;, and &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/disk-usage.md&quot;&gt;engine disk usage&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;hardware-recommendations&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Recommended stack by hardware&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Hardware&lt;/th&gt; 
   &lt;th&gt;Recommended TTS&lt;/th&gt; 
   &lt;th&gt;Recommended ASR&lt;/th&gt; 
   &lt;th&gt;Why&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Apple Silicon (M1–M4)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/mlx-audio.md&quot;&gt;MLX-Audio&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/omnivoice.md&quot;&gt;OmniVoice&lt;/a&gt; (MPS)&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/mlx-whisper.md&quot;&gt;MLX Whisper&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/parakeet-mlx.md&quot;&gt;Parakeet MLX&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Native unified memory, lowest latency on macOS&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;NVIDIA GPU (8 GB+ VRAM)&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/omnivoice.md&quot;&gt;OmniVoice&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/cosyvoice.md&quot;&gt;CosyVoice 3&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/whisperx.md&quot;&gt;WhisperX&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;High-fidelity zero-shot cloning, word timestamps, diarization&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Low VRAM / CPU-only&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/pockettts.md&quot;&gt;PocketTTS&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/sherpa-onnx.md&quot;&gt;Sherpa-ONNX&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/kittentts.md&quot;&gt;KittenTTS&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/moonshine.md&quot;&gt;Moonshine&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/faster-whisper.md&quot;&gt;Faster-Whisper&lt;/a&gt; (&lt;code&gt;int8&lt;/code&gt;)&lt;/td&gt; 
   &lt;td&gt;Low memory footprint, optimized CPU inference&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;a id=&quot;engines&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Engines&lt;/h2&gt; 
&lt;p&gt;Engine support is capability-specific. Check cloning, language, platform, memory, and license before choosing one. Full setup guides: &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/README.md&quot;&gt;docs/engines&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;tts-engines&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Text to speech&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Engine&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Languages&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Clone&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Instruct&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Linux&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;macOS ARM&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Windows&lt;/th&gt; 
   &lt;th&gt;License&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/omnivoice.md&quot;&gt;&lt;strong&gt;VoiceStudio&lt;/strong&gt; (default, powered by k2-fsa/OmniVoice)&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;600+&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;MPS&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/LICENSE&quot;&gt;AGPL-3.0&lt;/a&gt; app · &lt;a href=&quot;https://huggingface.co/k2-fsa/OmniVoice#license&quot;&gt;Apache-2.0 code, CC-BY-NC weights&lt;/a&gt;³&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/cosyvoice.md&quot;&gt;&lt;strong&gt;CosyVoice 3&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;9 + 18 dialects&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/gpt-sovits.md&quot;&gt;&lt;strong&gt;GPT-SoVITS&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;5&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;MIT&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/voxcpm2.md&quot;&gt;&lt;strong&gt;VoxCPM2&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;30&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;MPS&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/moss-tts-nano.md&quot;&gt;&lt;strong&gt;MOSS-TTS-Nano&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;20&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/kittentts.md&quot;&gt;&lt;strong&gt;KittenTTS&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;English&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td&gt;MIT&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/mlx-audio.md&quot;&gt;&lt;strong&gt;MLX-Audio&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Model-dependent&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Varies&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Varies&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;MLX&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td&gt;Varies&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/sherpa-onnx.md&quot;&gt;&lt;strong&gt;Sherpa-ONNX&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;20+&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/indextts.md&quot;&gt;&lt;strong&gt;IndexTTS 2.5&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;ZH · EN · JA · ES · AR&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Bilibili model license¹&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/omnivoice-gguf.md&quot;&gt;&lt;strong&gt;OmniVoice GGUF&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;600+&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;MPS/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/LICENSE&quot;&gt;AGPL-3.0&lt;/a&gt; app · &lt;a href=&quot;https://huggingface.co/Serveurperso/OmniVoice-GGUF#license&quot;&gt;review the derivative model terms&lt;/a&gt;³&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/omnivoice-subprocess.md&quot;&gt;&lt;strong&gt;OmniVoice (subprocess; opt-in off MPS)&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;600+&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;MPS via default OmniVoice&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/LICENSE&quot;&gt;AGPL-3.0&lt;/a&gt; app · &lt;a href=&quot;https://huggingface.co/k2-fsa/OmniVoice#license&quot;&gt;Apache-2.0 code, CC-BY-NC weights&lt;/a&gt;³&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/pockettts.md&quot;&gt;&lt;strong&gt;PocketTTS&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;EN · FR · DE · PT · IT · ES&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td&gt;CC-BY-4.0, gated²&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/supertonic3.md&quot;&gt;&lt;strong&gt;Supertonic 3&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;31&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td&gt;OpenRAIL-M&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/moss-tts-v15.md&quot;&gt;&lt;strong&gt;MOSS-TTS-v1.5&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;31&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/dots-tts.md&quot;&gt;&lt;strong&gt;dots.tts&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;24&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/confucius4-tts.md&quot;&gt;&lt;strong&gt;Confucius4-TTS&lt;/strong&gt; ⚡&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;14&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CPU&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;CUDA/CPU&lt;/td&gt; 
   &lt;td&gt;Apache-2.0&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;⚡ Installed or registered on demand.&lt;/p&gt; 
&lt;p&gt;¹ IndexTTS 2.5 requires a separate written Bilibili license above 100 million monthly active users or RMB 1 billion annual revenue. Review the &lt;a href=&quot;https://huggingface.co/IndexTeam/IndexTTS-2.5/blob/main/LICENSE&quot;&gt;model license&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;² PocketTTS shows its gated-access and CC-BY-4.0 terms before first use.&lt;/p&gt; 
&lt;p&gt;³ The OmniVoice snapshot also includes an audio tokenizer under separate &lt;a href=&quot;https://huggingface.co/k2-fsa/OmniVoice/blob/main/audio_tokenizer/LICENSE&quot;&gt;Boson Higgs Audio 2 and Meta Llama community terms&lt;/a&gt;. VoiceStudio&#39;s application license does not replace model or tokenizer terms.&lt;/p&gt; 
&lt;p&gt;Clone-less engines cannot preserve a reference speaker in dubbing or pinned-voice batch jobs. VoiceStudio rejects those jobs instead of silently changing engines. Heavy engines have separate memory and platform limits; check their engine guide first.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;asr-engines&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;Speech to text&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Engine&lt;/th&gt; 
   &lt;th&gt;ID&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;Languages&lt;/th&gt; 
   &lt;th&gt;Best fit&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/whisperx.md&quot;&gt;&lt;strong&gt;WhisperX&lt;/strong&gt; (default)&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;whisperx&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;~100&lt;/td&gt; 
   &lt;td&gt;Dubbing, subtitles, word-level timing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/faster-whisper.md&quot;&gt;&lt;strong&gt;Faster-Whisper&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;faster-whisper&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;~100&lt;/td&gt; 
   &lt;td&gt;General cross-platform transcription&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/faster-whisper-isolated.md&quot;&gt;&lt;strong&gt;Faster-Whisper (isolated)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;faster-whisper-isolated&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;~100&lt;/td&gt; 
   &lt;td&gt;Crash-isolated batch transcription&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/mlx-whisper.md&quot;&gt;&lt;strong&gt;MLX Whisper&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;mlx-whisper&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;~100&lt;/td&gt; 
   &lt;td&gt;Apple Silicon&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/pytorch-whisper.md&quot;&gt;&lt;strong&gt;PyTorch Whisper&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;pytorch-whisper&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;~100&lt;/td&gt; 
   &lt;td&gt;CUDA, MPS, and CPU fallback&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/nemo-parakeet.md&quot;&gt;&lt;strong&gt;Parakeet TDT&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;nemo-parakeet&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;English + 25 EU&lt;/td&gt; 
   &lt;td&gt;Fast CPU/CUDA transcription&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/parakeet-mlx.md&quot;&gt;&lt;strong&gt;Parakeet TDT v3 (MLX)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;parakeet-mlx&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;25 EU&lt;/td&gt; 
   &lt;td&gt;Apple Silicon dictation and word timestamps&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/moonshine.md&quot;&gt;&lt;strong&gt;Moonshine&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;moonshine&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;English&lt;/td&gt; 
   &lt;td&gt;Low-power, low-latency ONNX&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/funasr.md&quot;&gt;&lt;strong&gt;FunASR&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;funasr&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;50+&lt;/td&gt; 
   &lt;td&gt;VAD and inline diarization&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/sherpa-onnx-asr.md&quot;&gt;&lt;strong&gt;sherpa-onnx&lt;/strong&gt; (live dictation)&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;sherpa-onnx-asr&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Model-dependent&lt;/td&gt; 
   &lt;td&gt;Streaming CPU dictation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/openai-compatible-asr.md&quot;&gt;&lt;strong&gt;OpenAI-compatible&lt;/strong&gt; ⚠️ configured server&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;openai-compat-asr&lt;/code&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Server-dependent&lt;/td&gt; 
   &lt;td&gt;Local gigastt/Qwen3-ASR or a remote endpoint; audio goes only to that server&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;WhisperX and Faster-Whisper retry with &lt;code&gt;int8&lt;/code&gt; when efficient &lt;code&gt;float16&lt;/code&gt; is unavailable. Pin &lt;code&gt;ASR_COMPUTE_TYPE=int8&lt;/code&gt; or &lt;code&gt;float32&lt;/code&gt; only if automatic selection still fails.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;architecture&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Architecture&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;Tauri v2 desktop shell (Rust)
        │ IPC
React + Vite UI
        │ HTTP · SSE · WebSocket on localhost:3900
FastAPI backend
        ├── TTS / ASR engine registries
        ├── dubbing / audio / long-form pipelines
        ├── OpenAI-compatible API and MCP server
        └── SQLite + Alembic → omnivoice_data/
&lt;/code&gt;&lt;/pre&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Layer&lt;/th&gt; 
   &lt;th&gt;Path&lt;/th&gt; 
   &lt;th&gt;Responsibility&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Desktop shell&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;frontend/src-tauri/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Window lifecycle, tray, shortcuts, updater, sidecar bootstrap&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Frontend&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;frontend/src/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;React UI, Zustand state, API and event clients, i18n&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;API&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;backend/api/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;REST routes, schemas, auth boundaries, streaming&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Core services&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;backend/services/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Generation, dubbing, audio processing, persistence&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Engines&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;backend/engines/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Isolated and optional engine adapters&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Worker system&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;backend/worker/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Authenticated remote compute and job transport&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Data&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;omnivoice_data/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Projects, voices, settings, logs, and SQLite state&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Delivery&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;scripts/&lt;/code&gt;, &lt;code&gt;deploy/&lt;/code&gt;, &lt;code&gt;.github/workflows/&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Development, packaging, containers, releases, CI&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Network boundary&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;The desktop talks to a loopback-only backend on &lt;code&gt;localhost:3900&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Loopback API calls need no server key. Remote access requires a share PIN or API key.&lt;/li&gt; 
 &lt;li&gt;Remote workers and OpenAI-compatible ASR are opt-in. Loopback ASR may use HTTP and keeps audio on the machine; non-loopback endpoints require HTTPS, and redirects are not followed.&lt;/li&gt; 
 &lt;li&gt;Analytics is off until consent. If enabled, it sends allowlisted, content-free usage metadata. It never sends text, audio, file names, or projects.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;a id=&quot;api&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Local speech platform and OpenAI-compatible API&lt;/h2&gt; 
&lt;p&gt;Point an OpenAI-compatible audio client at the local backend:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-diff&quot;&gt;- base_url=&quot;https://api.openai.com/v1&quot;
+ base_url=&quot;http://localhost:3900/v1&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Endpoint&lt;/th&gt; 
   &lt;th&gt;Purpose&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;POST /v1/audio/speech&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;TTS to &lt;code&gt;mp3&lt;/code&gt;, &lt;code&gt;opus&lt;/code&gt;, &lt;code&gt;aac&lt;/code&gt;, &lt;code&gt;flac&lt;/code&gt;, &lt;code&gt;wav&lt;/code&gt;, or &lt;code&gt;pcm&lt;/code&gt;; select a profile with &lt;code&gt;voice&lt;/code&gt; and an engine with &lt;code&gt;model&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;POST /v1/audio/transcriptions&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;STT to &lt;code&gt;json&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;verbose_json&lt;/code&gt;, &lt;code&gt;srt&lt;/code&gt;, or &lt;code&gt;vtt&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;WS /v1/audio/transcriptions/stream&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Live PCM/WebM transcription with partial, utterance, and session-final events&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GET /.well-known/voicestudio-speech&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Discover HTTP, WebSocket, MCP, and native dictation-control transports&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;GET /v1/audio/voices&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;List local voice profiles and engines&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;from openai import OpenAI

client = OpenAI(base_url=&quot;http://localhost:3900/v1&quot;, api_key=&quot;local&quot;)

with client.audio.speech.with_streaming_response.create(
    model=&quot;tts-1&quot;,
    voice=&quot;&amp;lt;profile-id&amp;gt;&quot;,
    input=&quot;Made on my own hardware.&quot;,
    response_format=&quot;wav&quot;,
) as response:
    response.stream_to_file(&quot;speech.wav&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Quick test via cURL
curl http://localhost:3900/v1/audio/speech \
  -H &quot;Content-Type: application/json&quot; \
  -d &#39;{&quot;model&quot;: &quot;tts-1&quot;, &quot;input&quot;: &quot;Made on my own hardware.&quot;, &quot;voice&quot;: &quot;default&quot;, &quot;response_format&quot;: &quot;wav&quot;}&#39; \
  --output speech.wav
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The bundled Rust control sidecar lets Herdr, coding agents, VS Code, desktop apps, and TUIs trigger the system-wide dictation flow or reuse its native text insertion. See the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/speech-platform.md&quot;&gt;speech platform guide&lt;/a&gt;. The full API reference is in &lt;strong&gt;Settings → OpenAPI Reference&lt;/strong&gt;. For LAN, Tailscale, or proxy access, read &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/api-auth.md&quot;&gt;API authentication&lt;/a&gt; before exposing the backend.&lt;/p&gt; 
&lt;h3&gt;Agent skills&lt;/h3&gt; 
&lt;p&gt;Install the VoiceStudio skills for Claude Code, Codex, Cursor, and other &lt;a href=&quot;https://skills.sh&quot;&gt;skills.sh&lt;/a&gt;-compatible agents:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npx skills add debpalash/VoiceStudio
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;omnivoice&lt;/code&gt;: synthesize speech and transcribe audio through local VoiceStudio.&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;oss-maintainer&lt;/code&gt;: the repository&#39;s open-source maintenance workflow.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Model Context Protocol (MCP)&lt;/h3&gt; 
&lt;p&gt;VoiceStudio mounts an MCP server at &lt;code&gt;http://localhost:3900/mcp&lt;/code&gt; for Claude Desktop, Cursor, and AI agents:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;voicestudio&quot;: {
      &quot;url&quot;: &quot;http://localhost:3900/mcp&quot;
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For clients requiring stdio transport, use the bundled local shim (&lt;code&gt;docs/mcp.json&lt;/code&gt;):&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;voicestudio&quot;: {
      &quot;command&quot;: &quot;python&quot;,
      &quot;args&quot;: [&quot;-m&quot;, &quot;backend.mcp_shim&quot;],
      &quot;cwd&quot;: &quot;/path/to/VoiceStudio&quot;
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;See the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/mcp.md&quot;&gt;MCP guide&lt;/a&gt; for tools (&lt;code&gt;generate_speech&lt;/code&gt;, &lt;code&gt;clone_voice&lt;/code&gt;, &lt;code&gt;transcribe&lt;/code&gt;), file streaming modes, and client bindings.&lt;/p&gt; 
&lt;h3&gt;Google Colab&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://colab.research.google.com/github/debpalash/VoiceStudio/blob/main/notebooks/OmniVoice_Studio_Colab.ipynb&quot;&gt;&lt;img src=&quot;https://colab.research.google.com/assets/colab-badge.svg?sanitize=true&quot; alt=&quot;Open in Colab&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;The &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/notebooks/OmniVoice_Studio_Colab.ipynb&quot;&gt;notebook&lt;/a&gt; runs the app and web UI on a Colab GPU. Colab is remote compute, so uploaded audio and project data do not remain local to your machine.&lt;/p&gt; 
&lt;p&gt;&lt;a id=&quot;documentation&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Need&lt;/th&gt; 
   &lt;th&gt;Read&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Install&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/macos.md&quot;&gt;macOS&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/windows.md&quot;&gt;Windows&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/linux.md&quot;&gt;Linux&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/docker.md&quot;&gt;Docker&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Fix setup&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/troubleshooting.md&quot;&gt;Troubleshooting&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/downloading-models.md&quot;&gt;model downloads&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/setup/huggingface-token.md&quot;&gt;Hugging Face token&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Choose an engine&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engines/README.md&quot;&gt;Engine guides&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/benchmarks.md&quot;&gt;benchmarks&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/expressive-speech.md&quot;&gt;expressive speech&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Tune hardware&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/performance.md&quot;&gt;Performance&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/remote-workers.md&quot;&gt;remote workers&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Build integrations&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/speech-platform.md&quot;&gt;Speech platform&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/production-private-api.md&quot;&gt;Private production API&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/api-auth.md&quot;&gt;API auth&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/mcp.md&quot;&gt;MCP&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/examples/README.md&quot;&gt;examples&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Build VoiceStudio&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/.github/CONTRIBUTING.md&quot;&gt;Contributing&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/engine-acceptance.md&quot;&gt;engine acceptance&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Track changes&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/CHANGELOG.md&quot;&gt;Changelog&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/ROADMAP.md&quot;&gt;roadmap&lt;/a&gt; · &lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases/latest&quot;&gt;latest release&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Remove everything&lt;/td&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/uninstall.md&quot;&gt;Uninstall guide&lt;/a&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;a id=&quot;faq&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;FAQ&lt;/h2&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Does it work on Apple Silicon and Intel Macs?&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;Apple Silicon is supported with MPS and MLX options. Intel Macs cannot run the local backend because current PyTorch wheels are unavailable; they can connect to a remote backend. See &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/macos.md&quot;&gt;macOS installation&lt;/a&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;How much VRAM do I need?&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;A GPU is optional. Use 4 GB VRAM as the minimum for accelerated work and 8 GB+ for the default multi-stage workflow. Large optional engines can require 12 to 16 GB or more. Check the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/benchmarks.md&quot;&gt;benchmarks&lt;/a&gt; and engine guide.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Why does a longer reference clip not always improve the clone?&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;Cloning is zero-shot: the clip is a prompt, not training data. Use 5 to 15 seconds of one speaker, close to the microphone, without music, noise, or reverb. Match the tone and pace you want in the output. For training, see &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/data_preparation.md&quot;&gt;data preparation&lt;/a&gt; and &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/training.md&quot;&gt;training&lt;/a&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Can I use generated audio commercially?&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;VoiceStudio&#39;s application license does not restrict generated audio, but it does not grant rights under a model&#39;s separate terms. The default OmniVoice repository labels its pretrained weights CC-BY-NC and includes a tokenizer under separate community terms. Review the selected model terms before commercial use.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;Does VoiceStudio collect data?&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;Not unless you opt in. Analytics is off by default and skipping consent keeps it off. When enabled, the app sends allowlisted, content-free usage metadata. Text, audio, file names, voices, and projects are excluded. Change this at &lt;strong&gt;Settings → Privacy&lt;/strong&gt;.&lt;/p&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;&lt;strong&gt;How do I remove VoiceStudio and its data?&lt;/strong&gt;&lt;/summary&gt; 
 &lt;p&gt;Use &lt;code&gt;scripts/uninstall.sh&lt;/code&gt; on macOS/Linux or &lt;code&gt;scripts\uninstall.ps1&lt;/code&gt; on Windows. Both show a dry run before deletion. See the &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/docs/install/uninstall.md&quot;&gt;uninstall guide&lt;/a&gt; for every path.&lt;/p&gt; 
&lt;/details&gt; 
&lt;h2&gt;Community and contributing&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/debpalash/VoiceStudio/issues&quot;&gt;GitHub Issues&lt;/a&gt; for reproducible bugs and feature requests.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://discord.gg/bzQavDfVV9&quot;&gt;Discord&lt;/a&gt; for setup help and project discussion.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/debpalash/VoiceStudio/labels/good%20first%20issue&quot;&gt;Good first issues&lt;/a&gt; for a scoped starting point.&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/.github/CONTRIBUTING.md&quot;&gt;Contributing guide&lt;/a&gt; for setup, tests, and pull requests.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://star-history.com/#debpalash/VoiceStudio&amp;amp;Date&quot;&gt; &lt;img src=&quot;https://api.star-history.com/svg?repos=debpalash/VoiceStudio&amp;amp;type=Date&quot; alt=&quot;Star History Chart&quot; width=&quot;100%&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;h2&gt;Support development&lt;/h2&gt; 
&lt;p&gt;VoiceStudio is free and has no paid tier. Donations fund development and infrastructure.&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://ko-fi.com/debpalash&quot;&gt;Ko-fi&lt;/a&gt; · &lt;a href=&quot;https://paypal.me/palashCoder&quot;&gt;PayPal&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/SPONSORS.md&quot;&gt;Sponsorship details&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Responsible use and safety&lt;/h2&gt; 
&lt;p&gt;VoiceStudio enables zero-shot voice cloning and speech generation on personal hardware. Please use it responsibly:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Consent:&lt;/strong&gt; Only clone or synthesize voices with explicit permission from the speaker.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Audio provenance:&lt;/strong&gt; VoiceStudio integrates &lt;a href=&quot;https://github.com/facebookresearch/audioseal&quot;&gt;AudioSeal&lt;/a&gt; imperceptible watermarking by default to detect and identify synthetic speech without altering sound quality.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Local privacy:&lt;/strong&gt; For the default local workflow, audio recordings, transcripts, voices, and projects remain strictly on your local disk; data leaves your device only when you explicitly configure remote workers or external ASR endpoints.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;VoiceStudio is licensed under &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/LICENSE&quot;&gt;AGPL-3.0&lt;/a&gt;. You may run it, modify it, and use it internally. The application license itself does not restrict selling generated audio, but downloaded model and tokenizer terms may. If you modify VoiceStudio and provide that modified version as a network service, AGPL requires you to offer the corresponding source under the same license. A commercial license for VoiceStudio-owned code is available for proprietary embedding; it does not relicense third-party models. Contact &lt;strong&gt;VoiceStudio@palash.dev&lt;/strong&gt;. See &lt;a href=&quot;https://raw.githubusercontent.com/debpalash/VoiceStudio/main/LICENSE-NOTICE.md&quot;&gt;LICENSE-NOTICE.md&lt;/a&gt; for the plain-language scope.&lt;/p&gt; 
&lt;p&gt;Optional engines and downloaded models retain their own licenses. The bundled &lt;code&gt;omnivoice/&lt;/code&gt; Python code is Apache-2.0 upstream; the default downloaded weights and audio tokenizer use separate terms.&lt;/p&gt; 
&lt;h2&gt;Acknowledgments&lt;/h2&gt; 
&lt;p&gt;VoiceStudio builds on &lt;a href=&quot;https://github.com/k2-fsa/OmniVoice&quot;&gt;OmniVoice&lt;/a&gt;, &lt;a href=&quot;https://github.com/m-bain/whisperX&quot;&gt;WhisperX&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebookresearch/demucs&quot;&gt;Demucs&lt;/a&gt;, &lt;a href=&quot;https://github.com/pyannote/pyannote-audio&quot;&gt;Pyannote&lt;/a&gt;, &lt;a href=&quot;https://github.com/OpenNMT/CTranslate2&quot;&gt;CTranslate2&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebookresearch/audioseal&quot;&gt;AudioSeal&lt;/a&gt;, &lt;a href=&quot;https://tauri.app&quot;&gt;Tauri&lt;/a&gt;, &lt;a href=&quot;https://huggingface.co/Supertone/supertonic-3&quot;&gt;Supertonic&lt;/a&gt;, &lt;a href=&quot;https://github.com/k2-fsa/sherpa-onnx&quot;&gt;Sherpa-ONNX&lt;/a&gt;, &lt;a href=&quot;https://github.com/RVC-Boss/GPT-SoVITS&quot;&gt;GPT-SoVITS&lt;/a&gt;, and &lt;a href=&quot;https://kyutai.org&quot;&gt;PocketTTS&lt;/a&gt;.&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;strong&gt;&lt;a href=&quot;https://github.com/debpalash/VoiceStudio/releases/latest&quot;&gt;Download VoiceStudio&lt;/a&gt;&lt;/strong&gt; · 
 &lt;a href=&quot;https://github.com/debpalash/VoiceStudio&quot;&gt;Star the project&lt;/a&gt; · 
 &lt;a href=&quot;https://discord.gg/bzQavDfVV9&quot;&gt;Join Discord&lt;/a&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/1206390571/fd6851a0-4e36-4541-a76c-2ad84935d0bc" medium="image" />
      
    </item>
    
    <item>
      <title>SnailSploit/Claude-Red</title>
      <link>https://github.com/SnailSploit/Claude-Red</link>
      <description>&lt;p&gt;claude-red is a curated library of offensive security skills designed for the Claude skills system. Each skill is a structured SKILL.md file that primes Claude with expert-level methodology for a specific attack surface — from SQLi to shellcode, EDR evasion to exploit development.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/assets/banner.png&quot; alt=&quot;claude-red banner&quot; /&gt;&lt;/p&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;h1&gt;claude-red&lt;/h1&gt; 
 &lt;p&gt;&lt;strong&gt;Offensive security skills for Claude — drop-in &lt;code&gt;SKILL.md&lt;/code&gt; files that turn Claude into a context-aware red team operator.&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-MIT-blue.svg?sanitize=true&quot; alt=&quot;License: MIT&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#skill-index&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/skills-78-red.svg?sanitize=true&quot; alt=&quot;Skills&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#categories&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/categories-23-orange.svg?sanitize=true&quot; alt=&quot;Categories&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/SnailSploit/claude-red&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/SnailSploit/claude-red?style=social&quot; alt=&quot;Stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/SnailSploit/claude-red/network/members&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/forks/SnailSploit/claude-red?style=social&quot; alt=&quot;Forks&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#overview&quot;&gt;Overview&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#quickstart&quot;&gt;Quickstart&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#categories&quot;&gt;Categories&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#skill-index&quot;&gt;Skill Index&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#roadmap&quot;&gt;Roadmap&lt;/a&gt; • &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#contributing&quot;&gt;Contributing&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Overview&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;claude-red&lt;/code&gt; is a curated library of offensive security skills for the &lt;a href=&quot;https://docs.claude.com&quot;&gt;Claude Skills system&lt;/a&gt;. Each skill is a structured &lt;code&gt;SKILL.md&lt;/code&gt; file that primes Claude with expert-level methodology for a specific attack surface — from SQL injection to shellcode, EDR evasion to ADCS abuse.&lt;/p&gt; 
&lt;p&gt;Drop a skill into your Claude environment and it behaves like a domain specialist: it knows the techniques, the tooling, the edge cases, and the escalation paths. Skills load on demand based on conversational triggers — you don&#39;t pay context for skills you aren&#39;t using.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Use cases:&lt;/strong&gt; authorized red team engagements, bug bounty triage, security research, CTF preparation, operator training, and methodical attack surface exploration.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Quickstart&lt;/h2&gt; 
&lt;h3&gt;Claude Skills System (Recommended)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/SnailSploit/claude-red ~/.claude/skills/claude-red
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Claude auto-loads matching skills based on conversational triggers (e.g., mentioning SQL injection loads &lt;code&gt;offensive-sqli&lt;/code&gt;).&lt;/p&gt; 
&lt;p&gt;To install a single category:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone --filter=blob:none --sparse https://github.com/SnailSploit/claude-red
cd claude-red &amp;amp;&amp;amp; git sparse-checkout set Skills/web Skills/active-directory
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Claude Code&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cat Skills/web/offensive-sqli/SKILL.md | claude --system-file -

cat Skills/active-directory/**/SKILL.md | claude --system-file -
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;&lt;a href=&quot;http://Claude.ai&quot;&gt;Claude.ai&lt;/a&gt; (Manual)&lt;/h3&gt; 
&lt;p&gt;Paste the contents of a &lt;code&gt;SKILL.md&lt;/code&gt; into a Project&#39;s system prompt or prepend it to your conversation.&lt;/p&gt; 
&lt;h3&gt;Install Script&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;./install.sh                           # interactive
./install.sh --target ~/.claude/skills # explicit target
./install.sh --category web            # single category
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Categories&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Category&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;Skills&lt;/th&gt; 
   &lt;th&gt;Focus&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#web-application&quot;&gt;Web Application&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;16&lt;/td&gt; 
   &lt;td&gt;OWASP Top 10, business logic, advanced web vulnerability classes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#auth--identity&quot;&gt;Auth &amp;amp; Identity&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;JWT exploitation, OAuth/OIDC abuse&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#active-directory&quot;&gt;Active Directory&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt; 
   &lt;td&gt;On-prem AD attack methodology&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#wireless&quot;&gt;Wireless&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;14&lt;/td&gt; 
   &lt;td&gt;802.11, WPA2/3, EAP, WPS, evil-twin, BLE, Zigbee, Z-Wave, LoRa, sub-GHz&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#cloud&quot;&gt;Cloud&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt; 
   &lt;td&gt;AWS, Azure, GCP attack paths&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#mobile&quot;&gt;Mobile&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt; 
   &lt;td&gt;Android and iOS application testing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#iot--embedded&quot;&gt;IoT &amp;amp; Embedded&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt; 
   &lt;td&gt;Hardware, firmware, RTOS, ICS/OT&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#infrastructure--red-team&quot;&gt;Infrastructure &amp;amp; Red Team&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;7&lt;/td&gt; 
   &lt;td&gt;Initial access, EDR evasion, advanced red team operations, Windows internals&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#exploit-development&quot;&gt;Exploit Development&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;6&lt;/td&gt; 
   &lt;td&gt;Stack/heap corruption, ROP, mitigations, crash analysis, TOCTOU&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#fuzzing--vulnerability-research&quot;&gt;Fuzzing &amp;amp; Vulnerability Research&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;4&lt;/td&gt; 
   &lt;td&gt;libFuzzer, AFL++, coverage-guided fuzzing, vulnerability taxonomy&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#reconnaissance&quot;&gt;Reconnaissance&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;OSINT tooling and structured intelligence collection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#api-security&quot;&gt;API Security&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;REST/gRPC/WebSocket testing, business logic abuse&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#container--kubernetes&quot;&gt;Container &amp;amp; Kubernetes&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Container escape, Kubernetes cluster exploitation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#cicd--pipeline&quot;&gt;CI/CD &amp;amp; Pipeline&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Pipeline exploitation, secrets extraction&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#cryptography&quot;&gt;Cryptography&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Cryptographic implementation attacks, TLS/SSL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#privilege-escalation&quot;&gt;Privilege Escalation&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Linux and Windows privilege escalation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#post-exploitation&quot;&gt;Post-Exploitation&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;3&lt;/td&gt; 
   &lt;td&gt;Lateral movement, persistence mechanisms, data exfiltration&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#forensics--c2&quot;&gt;Forensics &amp;amp; C2&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Anti-forensics tradecraft, C2 framework operations&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#supply-chain&quot;&gt;Supply Chain&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Supply chain attacks, dependency confusion&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#social-engineering&quot;&gt;Social Engineering&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Phishing campaigns, physical/vishing/smishing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#network-attacks&quot;&gt;Network Attacks&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt; 
   &lt;td&gt;Layer 2/3 attacks, MITM, protocol poisoning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#ai-security&quot;&gt;AI Security&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;1&lt;/td&gt; 
   &lt;td&gt;Prompt injection, jailbreaking, RAG poisoning&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/#utility&quot;&gt;Utility&lt;/a&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;2&lt;/td&gt; 
   &lt;td&gt;Fast triage checklists, professional reporting&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Skill Index&lt;/h2&gt; 
&lt;h3&gt;Web Application&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/web/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-sqli/SKILL.md&quot;&gt;&lt;code&gt;offensive-sqli&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;SQL injection — error-based, blind, OOB, DB-specific payloads, ORM CVEs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-xss/SKILL.md&quot;&gt;&lt;code&gt;offensive-xss&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Cross-site scripting — stored, reflected, DOM-based, mutation XSS&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-ssrf/SKILL.md&quot;&gt;&lt;code&gt;offensive-ssrf&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Server-side request forgery — cloud metadata pivots, filter bypass&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-ssti/SKILL.md&quot;&gt;&lt;code&gt;offensive-ssti&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Server-side template injection — engine fingerprinting, RCE chains&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-xxe/SKILL.md&quot;&gt;&lt;code&gt;offensive-xxe&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;XML external entity — OOB exfiltration, blind XXE techniques&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-idor/SKILL.md&quot;&gt;&lt;code&gt;offensive-idor&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Insecure direct object references — enumeration, authorization bypass&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-file-upload/SKILL.md&quot;&gt;&lt;code&gt;offensive-file-upload&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;File upload — extension bypass, polyglot files, webshell deployment&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-rce/SKILL.md&quot;&gt;&lt;code&gt;offensive-rce&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Remote code execution — command injection, deserialization chains&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-deserialization/SKILL.md&quot;&gt;&lt;code&gt;offensive-deserialization&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Insecure deserialization — Java, PHP, .NET gadget chains&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-race-condition/SKILL.md&quot;&gt;&lt;code&gt;offensive-race-condition&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Race conditions — TOCTOU, single-packet attacks, limit bypass&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-request-smuggling/SKILL.md&quot;&gt;&lt;code&gt;offensive-request-smuggling&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;HTTP request smuggling — CL.TE, &lt;a href=&quot;http://TE.CL&quot;&gt;TE.CL&lt;/a&gt;, H2 desync&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-open-redirect/SKILL.md&quot;&gt;&lt;code&gt;offensive-open-redirect&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Open redirect — OAuth token theft, phishing, SSRF pivots&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-parameter-pollution/SKILL.md&quot;&gt;&lt;code&gt;offensive-parameter-pollution&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;HTTP parameter pollution — WAF bypass, logic confusion&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-graphql/SKILL.md&quot;&gt;&lt;code&gt;offensive-graphql&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;GraphQL — introspection abuse, batching attacks, alias-based IDOR&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-waf-bypass/SKILL.md&quot;&gt;&lt;code&gt;offensive-waf-bypass&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;WAF bypass — encoding tricks, chunked transfer, case mutation&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/web/offensive-business-logic/SKILL.md&quot;&gt;&lt;code&gt;offensive-business-logic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Business logic — workflow bypass, pricing abuse, multi-step chains&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Auth &amp;amp; Identity&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/auth/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/auth/offensive-jwt/SKILL.md&quot;&gt;&lt;code&gt;offensive-jwt&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;JWT attacks — alg:none, key confusion, secret cracking, claim tampering&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/auth/offensive-oauth/SKILL.md&quot;&gt;&lt;code&gt;offensive-oauth&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;OAuth/OIDC — redirect URI abuse, token leakage, PKCE bypass&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Active Directory&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/active-directory/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/active-directory/offensive-active-directory/SKILL.md&quot;&gt;&lt;code&gt;offensive-active-directory&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;AD methodology — Kerberoast, ASREProast, ACL abuse, ADCS ESC1-15, delegation, hybrid AAD&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Wireless&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/wireless/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-wifi/SKILL.md&quot;&gt;&lt;code&gt;offensive-wifi&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;802.11 overview — entrypoint for wireless assessments&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-wifi-recon/SKILL.md&quot;&gt;&lt;code&gt;offensive-wifi-recon&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Adapter configuration, monitor mode, multi-band airspace mapping&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-wpa2-psk/SKILL.md&quot;&gt;&lt;code&gt;offensive-wpa2-psk&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;WPA2-PSK — handshake capture, PMKID extraction, hashcat cracking&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-wpa3-sae/SKILL.md&quot;&gt;&lt;code&gt;offensive-wpa3-sae&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;WPA3-SAE — transition-mode downgrade, Dragonblood, side-channel attacks&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-wpa-enterprise/SKILL.md&quot;&gt;&lt;code&gt;offensive-wpa-enterprise&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;802.1X/EAP — credential relay, evil-twin RADIUS, certificate abuse&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-wps/SKILL.md&quot;&gt;&lt;code&gt;offensive-wps&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;WPS — Pixie Dust offline attack, online PIN brute force, vendor PIN prediction&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-evil-twin/SKILL.md&quot;&gt;&lt;code&gt;offensive-evil-twin&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Evil twin — KARMA, Mana, captive portal credential capture, MITM&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-krack-fragattacks/SKILL.md&quot;&gt;&lt;code&gt;offensive-krack-fragattacks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;KRACK and FragAttacks — supplicant vulnerability testing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-deauth-disassoc/SKILL.md&quot;&gt;&lt;code&gt;offensive-deauth-disassoc&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Deauthentication — targeted/broadcast frames, PMF awareness&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-bluetooth-ble/SKILL.md&quot;&gt;&lt;code&gt;offensive-bluetooth-ble&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Bluetooth LE — GATT enumeration, pairing downgrade, sniffing, MITM&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-bluetooth-classic/SKILL.md&quot;&gt;&lt;code&gt;offensive-bluetooth-classic&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Bluetooth BR/EDR — SDP probing, KNOB attack, BlueBorne, HID spoofing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-zigbee-thread-matter/SKILL.md&quot;&gt;&lt;code&gt;offensive-zigbee-thread-matter&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;802.15.4 mesh — KillerBee, Touchlink commissioning abuse, ZCL injection&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-z-wave/SKILL.md&quot;&gt;&lt;code&gt;offensive-z-wave&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Z-Wave — S0 key derivation, S2 commissioning attacks, hub pivots&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/wireless/offensive-lorawan-sub-ghz/SKILL.md&quot;&gt;&lt;code&gt;offensive-lorawan-sub-ghz&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;LoRaWAN and sub-GHz — ABP/OTAA attacks, KeeLoq, fixed-code replay, TPMS&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Cloud&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/cloud/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/cloud/offensive-cloud/SKILL.md&quot;&gt;&lt;code&gt;offensive-cloud&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Multi-cloud — privilege escalation, IMDS abuse, cross-account pivots, CSPM evasion&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Mobile&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/mobile/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/mobile/offensive-mobile/SKILL.md&quot;&gt;&lt;code&gt;offensive-mobile&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Android and iOS — Frida hooking, certificate pinning bypass, storage, biometric flaws&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;IoT &amp;amp; Embedded&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/iot/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/iot/offensive-iot/SKILL.md&quot;&gt;&lt;code&gt;offensive-iot&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;IoT/OT — hardware interfaces, firmware extraction, RTOS, ICS protocols, MQTT/CoAP&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Infrastructure &amp;amp; Red Team&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/infrastructure/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-initial-access/SKILL.md&quot;&gt;&lt;code&gt;offensive-initial-access&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Initial access — phishing payloads, drive-by delivery, supply chain vectors (TA0001)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-advanced-redteam/SKILL.md&quot;&gt;&lt;code&gt;offensive-advanced-redteam&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Full kill chain — C2 infrastructure, OPSEC, lateral movement, persistence&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-edr-evasion/SKILL.md&quot;&gt;&lt;code&gt;offensive-edr-evasion&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;EDR evasion — userland unhooking, indirect syscalls, PPID spoofing&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-shellcode/SKILL.md&quot;&gt;&lt;code&gt;offensive-shellcode&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Shellcode — writing, encoding, injection techniques, position-independent code&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-keylogger-arch/SKILL.md&quot;&gt;&lt;code&gt;offensive-keylogger-arch&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Input capture — keylogger architecture, hooking mechanisms&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-windows-mitigations/SKILL.md&quot;&gt;&lt;code&gt;offensive-windows-mitigations&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Windows mitigations — ACG, CIG, CFG, CET bypass techniques&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/infrastructure/offensive-windows-boundaries/SKILL.md&quot;&gt;&lt;code&gt;offensive-windows-boundaries&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Windows boundary defeat — sandbox escape, integrity level bypass&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Exploit Development&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/exploit-dev/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/exploit-dev/offensive-exploit-development/SKILL.md&quot;&gt;&lt;code&gt;offensive-exploit-development&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Exploit development — stack/heap corruption, ROP chains, mitigation bypass&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/exploit-dev/offensive-exploit-dev-course/SKILL.md&quot;&gt;&lt;code&gt;offensive-exploit-dev-course&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Structured exploit development curriculum&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/exploit-dev/offensive-basic-exploitation/SKILL.md&quot;&gt;&lt;code&gt;offensive-basic-exploitation&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Linux binary exploitation — beginner to intermediate, mitigations disabled&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/exploit-dev/offensive-crash-analysis/SKILL.md&quot;&gt;&lt;code&gt;offensive-crash-analysis&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Crash triage — exploitability assessment, root-cause analysis&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/exploit-dev/offensive-mitigations/SKILL.md&quot;&gt;&lt;code&gt;offensive-mitigations&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Modern mitigations — ASLR, CFG, CET, PAC analysis and bypass&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/exploit-dev/offensive-toctou/SKILL.md&quot;&gt;&lt;code&gt;offensive-toctou&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;TOCTOU race conditions — binary, kernel, web, and container contexts&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Fuzzing &amp;amp; Vulnerability Research&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/fuzzing/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/fuzzing/offensive-fuzzing/SKILL.md&quot;&gt;&lt;code&gt;offensive-fuzzing&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Fuzzing — libFuzzer, AFL++, coverage-guided strategies, mutation engines&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/fuzzing/offensive-fuzzing-course/SKILL.md&quot;&gt;&lt;code&gt;offensive-fuzzing-course&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Vulnerability discovery through fuzzing — structured curriculum&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/fuzzing/offensive-bug-identification/SKILL.md&quot;&gt;&lt;code&gt;offensive-bug-identification&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Bug identification — code review patterns, static analysis triggers&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/fuzzing/offensive-vuln-classes/SKILL.md&quot;&gt;&lt;code&gt;offensive-vuln-classes&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Vulnerability taxonomy — real-world examples, classification frameworks&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Reconnaissance&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/recon/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/recon/offensive-osint/SKILL.md&quot;&gt;&lt;code&gt;offensive-osint&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;OSINT tooling — recon-ng, theHarvester, Maltego, Spiderfoot&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/recon/offensive-osint-methodology/SKILL.md&quot;&gt;&lt;code&gt;offensive-osint-methodology&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;OSINT methodology — structured intelligence collection and analysis&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;API Security&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/api/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/api/offensive-api-security/SKILL.md&quot;&gt;&lt;code&gt;offensive-api-security&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;API testing — OWASP API Top 10, BOLA, BFLA, mass assignment, rate limiting&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/api/offensive-api-abuse/SKILL.md&quot;&gt;&lt;code&gt;offensive-api-abuse&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;API business logic — endpoint chaining, batching abuse, webhook hijacking&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Container &amp;amp; Kubernetes&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/container/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/container/offensive-container-escape/SKILL.md&quot;&gt;&lt;code&gt;offensive-container-escape&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Container breakout — privileged mode, Docker socket, capabilities, runc CVEs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/container/offensive-k8s-attacks/SKILL.md&quot;&gt;&lt;code&gt;offensive-k8s-attacks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Kubernetes attacks — RBAC abuse, etcd access, kubelet API, pod escape, CRD exploitation&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;CI/CD &amp;amp; Pipeline&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/cicd/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/cicd/offensive-cicd-pipeline/SKILL.md&quot;&gt;&lt;code&gt;offensive-cicd-pipeline&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;CI/CD exploitation — GitHub Actions injection, Jenkins RCE, GitLab CI abuse&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/cicd/offensive-cicd-secrets/SKILL.md&quot;&gt;&lt;code&gt;offensive-cicd-secrets&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;CI/CD secrets — environment variable extraction, vault misconfigs, runner token abuse&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Cryptography&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/crypto/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/crypto/offensive-crypto-attacks/SKILL.md&quot;&gt;&lt;code&gt;offensive-crypto-attacks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Cryptographic attacks — padding oracle, ECB manipulation, hash extension, weak PRNG&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/crypto/offensive-tls-attacks/SKILL.md&quot;&gt;&lt;code&gt;offensive-tls-attacks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;TLS/SSL attacks — POODLE, DROWN, Heartbleed, pinning bypass, 0-RTT replay&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Privilege Escalation&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/privesc/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/privesc/offensive-linux-privesc/SKILL.md&quot;&gt;&lt;code&gt;offensive-linux-privesc&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Linux privilege escalation — SUID, capabilities, sudo, cron, kernel exploits&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/privesc/offensive-windows-privesc/SKILL.md&quot;&gt;&lt;code&gt;offensive-windows-privesc&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Windows privilege escalation — Potato family, service misconfigs, DLL hijacking, UAC bypass&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Post-Exploitation&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/post-exploitation/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/post-exploitation/offensive-lateral-movement/SKILL.md&quot;&gt;&lt;code&gt;offensive-lateral-movement&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Lateral movement — PTH, PTT, NTLM relay, WMI/WinRM/DCOM, tunneling&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/post-exploitation/offensive-persistence/SKILL.md&quot;&gt;&lt;code&gt;offensive-persistence&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Persistence — registry, scheduled tasks, WMI subscriptions, ticket forgery, PAM backdoors&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/post-exploitation/offensive-data-exfiltration/SKILL.md&quot;&gt;&lt;code&gt;offensive-data-exfiltration&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Data exfiltration — DNS/HTTPS/ICMP tunneling, cloud staging, steganography&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Forensics &amp;amp; C2&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/forensics/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/forensics/offensive-anti-forensics/SKILL.md&quot;&gt;&lt;code&gt;offensive-anti-forensics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Anti-forensics — log manipulation, timestomping, ADS abuse, memory cleanup&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/forensics/offensive-c2-frameworks/SKILL.md&quot;&gt;&lt;code&gt;offensive-c2-frameworks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;C2 tradecraft — Cobalt Strike, Sliver, Mythic, Havoc, redirectors, domain fronting&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Supply Chain&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/supply-chain/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/supply-chain/offensive-supply-chain/SKILL.md&quot;&gt;&lt;code&gt;offensive-supply-chain&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Supply chain attacks — dependency confusion, typosquatting, build system compromise&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/supply-chain/offensive-dependency-confusion/SKILL.md&quot;&gt;&lt;code&gt;offensive-dependency-confusion&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Dependency confusion — npm/PyPI/NuGet/Maven namespace attacks, safe PoC methodology&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Social Engineering&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/social-engineering/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/social-engineering/offensive-phishing/SKILL.md&quot;&gt;&lt;code&gt;offensive-phishing&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Phishing — GoPhish, EvilGinx2, payload delivery, email authentication bypass&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/social-engineering/offensive-social-engineering/SKILL.md&quot;&gt;&lt;code&gt;offensive-social-engineering&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Social engineering — pretexting, vishing, smishing, physical SE, USB drops&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Network Attacks&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/network/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/network/offensive-network-attacks/SKILL.md&quot;&gt;&lt;code&gt;offensive-network-attacks&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Network layer attacks — ARP spoofing, LLMNR/NBT-NS poisoning, VLAN hopping, MITM&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;AI Security&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/ai/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/ai/offensive-ai-security/SKILL.md&quot;&gt;&lt;code&gt;offensive-ai-security&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;AI/ML security — prompt injection, jailbreaking, RAG poisoning, model extraction&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Utility&lt;/h3&gt; 
&lt;p&gt;&lt;code&gt;Skills/utility/&lt;/code&gt;&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Skill&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/utility/offensive-fast-checking/SKILL.md&quot;&gt;&lt;code&gt;offensive-fast-checking&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Fast triage — quick-win identification checklists&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/utility/offensive-reporting/SKILL.md&quot;&gt;&lt;code&gt;offensive-reporting&lt;/code&gt;&lt;/a&gt;&lt;/td&gt; 
   &lt;td&gt;Professional reporting — CVSS scoring, evidence standards, executive summaries&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Roadmap&lt;/h2&gt; 
&lt;p&gt;The library is being expanded across multiple phases. See &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/CHANGELOG.md&quot;&gt;CHANGELOG.md&lt;/a&gt; for release history.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Phase&lt;/th&gt; 
   &lt;th&gt;Focus&lt;/th&gt; 
   &lt;th style=&quot;text-align:right&quot;&gt;Skills&lt;/th&gt; 
   &lt;th&gt;Status&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;1&lt;/td&gt; 
   &lt;td&gt;Internal AD/Windows — split into focused skills&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+16&lt;/td&gt; 
   &lt;td&gt;Planned&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;2&lt;/td&gt; 
   &lt;td&gt;Cloud Identity — Entra, ADFS, Okta, M365&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+10&lt;/td&gt; 
   &lt;td&gt;Planned&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;3&lt;/td&gt; 
   &lt;td&gt;Wireless — WPA2/3, EAP, BLE, Zigbee, Z-Wave, LoRa, sub-GHz&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+12&lt;/td&gt; 
   &lt;td&gt;Complete&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;4&lt;/td&gt; 
   &lt;td&gt;IoT — UART/JTAG, flash extraction, fault injection, RTOS, ICS&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+10&lt;/td&gt; 
   &lt;td&gt;Planned&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;5&lt;/td&gt; 
   &lt;td&gt;Web Fundamentals — recon, auth bypass, access control, CSRF, CORS&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+8&lt;/td&gt; 
   &lt;td&gt;Planned&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;6&lt;/td&gt; 
   &lt;td&gt;Web Advanced — proto pollution, SAML, OIDC, WebSocket, SSI/ESI&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+10&lt;/td&gt; 
   &lt;td&gt;Planned&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;7&lt;/td&gt; 
   &lt;td&gt;Documentation and tooling polish&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;—&lt;/td&gt; 
   &lt;td&gt;Complete&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;8&lt;/td&gt; 
   &lt;td&gt;New categories — 10 new domains with 20 skills&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;+20&lt;/td&gt; 
   &lt;td&gt;Complete&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;9&lt;/td&gt; 
   &lt;td&gt;Deep rewrites — deserialization, GraphQL, advanced red team, SSTI&lt;/td&gt; 
   &lt;td style=&quot;text-align:right&quot;&gt;—&lt;/td&gt; 
   &lt;td&gt;Complete&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Target: ~130 skills across 23+ categories.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;Contributions welcome. See &lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for the skill template, frontmatter standard, and review process. Focused, single-surface skills are preferred over monolithic overviews.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/LICENSE&quot;&gt;MIT&lt;/a&gt; — use freely, attribution appreciated.&lt;/p&gt; 
&lt;h2&gt;Acknowledgements&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Author:&lt;/strong&gt; &lt;a href=&quot;https://snailsploit.com&quot;&gt;Kai Aizen&lt;/a&gt; (SnailSploit) — GenAI security research&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Original Checklists:&lt;/strong&gt; &lt;a href=&quot;https://github.com/sahar042/offensive-checklist&quot;&gt;Sahar Shlichov&lt;/a&gt; — the offensive checklist collection that many of these skills build on&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Community:&lt;/strong&gt; Pull requests and feedback that keep the library aligned with the evolving threat landscape&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;p&gt;&lt;em&gt;Give Claude the right skill and it stops being a chatbot — it becomes an operator.&lt;/em&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;a href=&quot;https://snailsploit.com&quot;&gt;snailsploit.com&lt;/a&gt; • &lt;a href=&quot;https://github.com/SnailSploit&quot;&gt;GitHub&lt;/a&gt; • &lt;a href=&quot;https://snailsploit.com/research&quot;&gt;Research&lt;/a&gt; • &lt;a href=&quot;https://x.com/SnailSploit&quot;&gt;X&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/94a2440bf1505128c0849a43140b2f74882f2f2512594da6b7b41e9fc8d48374/SnailSploit/Claude-Red" medium="image" />
      
    </item>
    
    <item>
      <title>alibaba/open-code-review</title>
      <link>https://github.com/alibaba/open-code-review</link>
      <description>&lt;p&gt;Fast, efficient, battle-tested at Alibaba&#39;s scale. Hybrid architecture code review tool: deterministic pipelines + LLM Agent, precise line-level comments, built-in multi-language ruleset (NPE, thread-safety, XSS, SQL injection), OpenAI &amp; Anthropic compatible.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://open-codereview.ai&quot;&gt;https://open-codereview.ai&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://open-codereview.ai&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/imgs/logo-core.svg?sanitize=true&quot; alt=&quot;OpenCodeReview logo&quot; width=&quot;180&quot; /&gt; &lt;/a&gt; 
 &lt;h1&gt;OpenCodeReview&lt;/h1&gt; 
&lt;/div&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://trendshift.io/repositories/41087?utm_source=repository-badge&amp;amp;utm_medium=badge&amp;amp;utm_campaign=badge-repository-41087&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt; &lt;img src=&quot;https://trendshift.io/api/badge/repositories/41087&quot; alt=&quot;alibaba%2Fopen-code-review | Trendshift&quot; style=&quot;width: 280px; height: 60px;&quot; width=&quot;280&quot; height=&quot;60&quot; /&gt; &lt;/a&gt; &lt;a href=&quot;https://trendshift.io/repositories/41087&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://trendshift.io/api/badge/trendshift/repositories/41087/weekly?language=Go&quot; alt=&quot;alibaba%2Fopen-code-review | Trendshift&quot; style=&quot;width: 280px; height: 60px;&quot; width=&quot;280&quot; height=&quot;60&quot; /&gt; &lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://www.npmjs.com/package/@alibaba-group/open-code-review&quot;&gt;&lt;img alt=&quot;npm&quot; src=&quot;https://img.shields.io/npm/v/@alibaba-group/open-code-review?style=flat-square&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/alibaba/open-code-review/actions/workflows/release.yml&quot;&gt;&lt;img alt=&quot;Build status&quot; src=&quot;https://img.shields.io/github/actions/workflow/status/alibaba/open-code-review/release.yml?style=flat-square&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/alibaba/open-code-review/raw/main/LICENSE&quot;&gt;&lt;img alt=&quot;License&quot; src=&quot;https://img.shields.io/github/license/alibaba/open-code-review?style=flat-square&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://deepwiki.com/alibaba/open-code-review&quot;&gt;&lt;img alt=&quot;Ask DeepWiki&quot; src=&quot;https://deepwiki.com/badge.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://www.bestpractices.dev/projects/13328&quot;&gt;&lt;img alt=&quot;OpenSSF Best Practices&quot; src=&quot;https://img.shields.io/badge/OpenSSF-Gold-D4AF37?style=flat-square&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/#supported-platforms&quot;&gt;&lt;img alt=&quot;Windows&quot; src=&quot;https://img.shields.io/badge/Windows-supported-blue.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/#supported-platforms&quot;&gt;&lt;img alt=&quot;macOS&quot; src=&quot;https://img.shields.io/badge/macOS-supported-blue.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/#supported-platforms&quot;&gt;&lt;img alt=&quot;Linux&quot; src=&quot;https://img.shields.io/badge/Linux-supported-blue.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/#supported-agents&quot;&gt;&lt;img alt=&quot;Claude Code&quot; src=&quot;https://img.shields.io/badge/Claude_Code-supported-blueviolet.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/#supported-agents&quot;&gt;&lt;img alt=&quot;Codex&quot; src=&quot;https://img.shields.io/badge/Codex-supported-blueviolet.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/#supported-agents&quot;&gt;&lt;img alt=&quot;Cursor&quot; src=&quot;https://img.shields.io/badge/Cursor-supported-blueviolet.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; English | &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/README.zh-CN.md&quot;&gt;简体中文&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/README.ja-JP.md&quot;&gt;日本語&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/README.ko-KR.md&quot;&gt;한국어&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/README.ru-RU.md&quot;&gt;Русский&lt;/a&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;What is Open Code Review?&lt;/h2&gt; 
&lt;p&gt;Open Code Review is an AI-powered code review CLI tool. It originated as Alibaba Group&#39;s internal official AI code review assistant — over the past two years, it has served tens of thousands of developers and identified millions of code defects. After thorough validation at massive scale, we incubated it into an open source project for the community. Simply configure a model endpoint to get started.&lt;/p&gt; 
&lt;p&gt;It reads Git diffs, sends changed files to a configurable LLM via an agent with tool-use capabilities, and generates structured review comments with line-level precision. The agent can read full file contents, search the codebase, inspect other changed files for context, and produce deep reviews — not just surface-level diff feedback. Beyond diff review, &lt;code&gt;ocr scan&lt;/code&gt; reviews entire files for auditing unfamiliar codebases or directories that have no meaningful diff.&lt;/p&gt; 
&lt;p&gt;Visit the &lt;a href=&quot;https://open-codereview.ai&quot;&gt;official website&lt;/a&gt; for more details.&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/imgs/highlights-en.png&quot; alt=&quot;Highlights&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Benchmark&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;Compared to general-purpose agents (Claude Code), Open Code Review achieves significantly higher &lt;strong&gt;Precision&lt;/strong&gt; and &lt;strong&gt;F1&lt;/strong&gt; with the same underlying model, while consuming only &lt;strong&gt;~1/9 of the tokens&lt;/strong&gt; and completing reviews faster. Note that its Recall is lower than general-purpose agents — a deliberate trade-off favoring precision over noise.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;A real-world code review benchmark built from &lt;strong&gt;50&lt;/strong&gt; popular open-source repositories, &lt;strong&gt;200&lt;/strong&gt; real Pull Requests, and &lt;strong&gt;10&lt;/strong&gt; programming languages — cross-validated by 80+ senior engineers (&lt;strong&gt;1,505&lt;/strong&gt; annotated ground-truth issues).&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://huggingface.co/datasets/Alibaba-Aone/aacr-bench&quot;&gt;&lt;img src=&quot;https://huggingface.co/favicon.ico&quot; alt=&quot;Hugging Face&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Explore the AACR-Bench dataset on Hugging Face&lt;/a&gt;.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Metric&lt;/th&gt; 
   &lt;th&gt;What it measures&lt;/th&gt; 
   &lt;th&gt;Why it matters&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;F1&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Harmonic mean of precision and recall&lt;/td&gt; 
   &lt;td&gt;Best single number for overall review quality&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Precision&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Proportion of reported issues that are real defects&lt;/td&gt; 
   &lt;td&gt;Higher = fewer false alarms to triage&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Recall&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Proportion of real defects that are found&lt;/td&gt; 
   &lt;td&gt;Higher = fewer issues slip through review&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Avg Time&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Wall-clock time per review&lt;/td&gt; 
   &lt;td&gt;Matters for CI pipeline latency&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Avg Token&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Total tokens consumed per review&lt;/td&gt; 
   &lt;td&gt;Directly impacts API cost&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/imgs/benchmark-en.png&quot; alt=&quot;Benchmark&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Why Open Code Review?&lt;/h2&gt; 
&lt;h3&gt;The Problem with General-Purpose Agents&lt;/h3&gt; 
&lt;p&gt;If you&#39;ve used general-purpose agents like Claude Code with Skills for code review, you&#39;ve likely encountered these pain points:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Incomplete coverage&lt;/strong&gt; — On larger changesets, agents tend to &quot;cut corners,&quot; selectively reviewing only some files and missing others.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Position drift&lt;/strong&gt; — Reported issues frequently don&#39;t match the actual code location, with line numbers or file references drifting off target.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Unstable quality&lt;/strong&gt; — Natural-language-driven Skills are hard to debug, and review quality fluctuates significantly with minor prompt variations.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;The root cause: a purely language-driven architecture lacks hard constraints on the review process.&lt;/p&gt; 
&lt;h3&gt;Core Design: Deterministic Engineering × Agent Hybrid&lt;/h3&gt; 
&lt;p&gt;Open Code Review&#39;s core philosophy is to combine deterministic engineering with an agent, each handling what it does best.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Deterministic Engineering — Hard Constraints&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;For review steps that &lt;em&gt;must not go wrong&lt;/em&gt;, engineering logic — not the language model — guarantees correctness:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Precise file selection&lt;/strong&gt; — Determines exactly which files need review and which should be filtered, ensuring no important change is missed.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Smart file bundling&lt;/strong&gt; — Groups related files into a single review unit (e.g., &lt;code&gt;message_en.properties&lt;/code&gt; and &lt;code&gt;message_zh.properties&lt;/code&gt; are bundled together). Each bundle runs as a sub-agent with isolated context — a divide-and-conquer strategy that stays stable on very large changesets and naturally supports concurrent review.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Fine-grained rule matching&lt;/strong&gt; — Matches review rules to each file&#39;s characteristics, keeping the model&#39;s attention sharply focused and eliminating information noise at the source. Compared to purely language-driven rule guidance, template-engine-based rule matching is more stable and predictable.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;External positioning and reflection modules&lt;/strong&gt; — Independent comment-positioning and comment-reflection modules systematically improve both the location accuracy and content accuracy of AI feedback.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;Agent — Dynamic Decision-Making&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;The agent&#39;s strengths are concentrated where they matter most — dynamic decisions and dynamic context retrieval:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Scenario-tuned prompts&lt;/strong&gt; — Prompt templates deeply optimized for code review, improving effectiveness while reducing token consumption.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Scenario-tuned toolset&lt;/strong&gt; — Distilled from deep analysis of tool-call traces in large-scale production data — including call frequency distributions, per-tool repetition rates, and the impact of new tools on the overall call chain — resulting in a purpose-built toolset that is more stable and predictable for code review than a generic agent toolkit.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;How to Use&lt;/h2&gt; 
&lt;h3&gt;Prerequisites&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Git &amp;gt;= 2.41&lt;/strong&gt; — Open Code Review relies on Git for diff generation, code search, and repository operations.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;CLI&lt;/h3&gt; 
&lt;h4&gt;Install&lt;/h4&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;npm install -g @alibaba-group/open-code-review
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;After installation, the &lt;code&gt;ocr&lt;/code&gt; command is available globally.&lt;/p&gt; 
&lt;p&gt;For other installation methods (install script, GitHub Release binary, from source), see &lt;a href=&quot;https://open-codereview.ai/docs/installation&quot;&gt;Installation&lt;/a&gt;.&lt;/p&gt; 
&lt;h4&gt;Quick Start&lt;/h4&gt; 
&lt;p&gt;&lt;strong&gt;1. Configure LLM&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;You must configure an LLM before reviewing code, unless you use &lt;a href=&quot;https://open-codereview.ai/docs/delegate&quot;&gt;Delegation Mode&lt;/a&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ocr config provider          # Select a built-in provider or add a custom one
ocr config model             # Pick a model for the active provider
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/imgs/providers.jpg&quot; alt=&quot;Provider setup&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;The interactive UI guides you through provider selection, API key entry, and model configuration, then automatically tests connectivity.&lt;/p&gt; 
&lt;p&gt;For CLI setup, environment variables, custom providers, and other advanced configuration, see &lt;a href=&quot;https://open-codereview.ai/docs/configuration&quot;&gt;Configuration&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;2. Review&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd your-project

# Workspace mode — review all staged, unstaged, and untracked changes
ocr review

# Branch range — reviews feature-branch&#39;s changes since it diverged from main (merge-base mode)
ocr review --from main --to feature-branch

# Single commit
ocr review --commit abc123

# Resume an interrupted range or commit review
ocr session list
ocr review --from main --to feature-branch --resume &amp;lt;session-id&amp;gt;

# Full-file scan — review whole files instead of a diff (no git history needed)
ocr scan                          # scan the entire repository
ocr scan --path internal/agent    # scan a directory or specific files
ocr scan --resume &amp;lt;session-id&amp;gt;   # resume an interrupted full-file scan

# Save results to a file (recommended for AI host agents)
ocr review --format json --output result.json

# Delegation mode — let your AI coding agent perform the review itself
# OCR handles file selection and rule resolution; no LLM configuration needed
ocr delegate preview
ocr delegate rule src/main.go src/handler.go
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Documentation&lt;/h2&gt; 
&lt;p&gt;Full documentation lives at &lt;strong&gt;&lt;a href=&quot;https://open-codereview.ai/docs&quot;&gt;open-codereview.ai/docs&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/quickstart&quot;&gt;Quickstart&lt;/a&gt; — install and run your first review&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/installation&quot;&gt;Installation&lt;/a&gt; — all platforms and package managers&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/cli-reference&quot;&gt;CLI Reference&lt;/a&gt; — every command and flag&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/review-rules&quot;&gt;Review Rules&lt;/a&gt; — customize review rules with path filtering and targeting&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/configuration&quot;&gt;Configuration&lt;/a&gt; — config keys and environment variables&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/mcp&quot;&gt;MCP Server&lt;/a&gt; — extend the review agent with external tools&lt;/li&gt; 
 &lt;li&gt;Coding Agent Integrations — choose the platform you use 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/README.md#claude-code&quot;&gt;Claude Code&lt;/a&gt; — install a plugin with review slash commands&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/README.md#codex&quot;&gt;Codex&lt;/a&gt; — install a plugin with callable review skills&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/README.md#cursor&quot;&gt;Cursor&lt;/a&gt; — install a plugin with portable review skills&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/opencode/README.md&quot;&gt;OpenCode&lt;/a&gt; — install native review tools and slash commands&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/plugins/open-code-review/qca/README.md&quot;&gt;QCA Forward&lt;/a&gt; — run delegation mode with the QCA host model and a ready-to-publish template&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/agent-skill&quot;&gt;Skill-compatible agents&lt;/a&gt; — install the portable agent skill&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Review Execution Modes — after integration, choose which LLM performs the review 
  &lt;ul&gt; 
   &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/configuration&quot;&gt;Default (OCR-managed)&lt;/a&gt; — OCR runs the review using its configured LLM&lt;/li&gt; 
   &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/delegate&quot;&gt;Delegation Mode&lt;/a&gt; — your coding agent runs the review using its own LLM; no OCR API key required&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/cicd&quot;&gt;CI/CD Integration&lt;/a&gt; — GitHub Actions, GitLab CI, GitFlic CI, and Gerrit integration&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/viewer&quot;&gt;Session Viewer&lt;/a&gt; — browse and replay review sessions in browser, mark comments as fixed or ignored and hide them while you work through the findings&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/telemetry&quot;&gt;Telemetry&lt;/a&gt; — OpenTelemetry integration for observability&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://open-codereview.ai/docs/faq&quot;&gt;FAQ&lt;/a&gt; — common questions and troubleshooting&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Contributing&lt;/h2&gt; 
&lt;p&gt;This project exists thanks to all the people who contribute. See &lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/CONTRIBUTING.md&quot;&gt;CONTRIBUTING.md&lt;/a&gt; for development setup, coding guidelines, and how to submit pull requests.&lt;/p&gt; 
&lt;a href=&quot;https://github.com/alibaba/open-code-review/graphs/contributors&quot;&gt; &lt;img src=&quot;https://contrib.rocks/image?repo=alibaba/open-code-review&quot; /&gt; &lt;/a&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/alibaba/open-code-review/main/LICENSE&quot;&gt;Apache-2.0&lt;/a&gt; — Copyright 2026 Alibaba&lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/1241960226/27bf01cb-17df-44d5-9b7b-bcf17c970c6d" medium="image" />
      
    </item>
    
    <item>
      <title>jihe520/MathModelAgent</title>
      <link>https://github.com/jihe520/MathModelAgent</link>
      <description>&lt;p&gt;🤖📐专为数学建模设计的 Agent &amp; skills ,自动完成数学建模，生成一份完整的可以直接提交的论文。 An Agent Designed for Mathematical Modeling ,Automatically complete mathmodel and generate a complete paper ready for submission.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://mathmodel.top/home&quot;&gt;https://mathmodel.top/home&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;h1 align=&quot;center&quot;&gt;🤖 MathModelAgent 📐&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/icon.png&quot; height=&quot;250px&quot; /&gt; &lt;/p&gt; 
&lt;h4 align=&quot;center&quot;&gt; 专为数学建模设计的 Agent&lt;br /&gt; 自动完成数学建模，生成一份完整的可以直接提交的论文。 &lt;/h4&gt; 
&lt;h5 align=&quot;center&quot;&gt;简体中文 | &lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/README_EN.md&quot;&gt;English&lt;/a&gt;&lt;/h5&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/jihe520/MathModelAgent/releases/latest&quot;&gt;&lt;b&gt;⬇️ 下载最新桌面版（推荐）&lt;/b&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; 🎨 姊妹项目：&lt;a href=&quot;https://github.com/jihe520/sci-box&quot;&gt;&lt;b&gt;sci-box&lt;/b&gt;&lt;/a&gt; —— 科研图表 &amp;amp; 流程图 SKILL 合集 &lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🖥️ 桌面版（推荐使用方式）&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;不想折腾环境？直接下载桌面版，开箱即用。&lt;/strong&gt;&lt;/p&gt; 
 &lt;p&gt;👉 &lt;strong&gt;&lt;a href=&quot;https://github.com/jihe520/MathModelAgent/releases/latest&quot;&gt;前往 Releases 下载最新版本&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;桌面版已内置 Claude Code 与全套 MathModelAgent SKILLS，无需安装 Python / Node.js / Redis，也无需手动配置 SKILL，装好填一个模型 API Key 即可开始建模。&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;系统&lt;/th&gt; 
   &lt;th&gt;下载文件&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;macOS（Apple 芯片 M 系列）&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;mathmodel-&amp;lt;version&amp;gt;-arm64.dmg&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;macOS（Intel 芯片）&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;mathmodel-&amp;lt;version&amp;gt;-x64.dmg&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Windows 64 位&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;mathmodel-&amp;lt;version&amp;gt;-x64.exe&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;macOS 安装包已 Developer ID 签名并通过 Apple 公证。&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Tip&lt;/p&gt;
 &lt;p&gt;不确定自己的 Mac 是哪种芯片？点击左上角 → 关于本机，看「芯片」一栏：显示 Apple M 系列选 arm64，显示 Intel 选 x64。&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-alert mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Warning&lt;/p&gt;
 &lt;p&gt;Windows 安装包当前未签名，首次安装或运行时可能出现 Microsoft Defender SmartScreen 提示，请选择「更多信息」→「仍要运行」，并务必从官方 &lt;a href=&quot;https://github.com/jihe520/MathModelAgent/releases/latest&quot;&gt;Releases 页面&lt;/a&gt; 下载。&lt;/p&gt; 
&lt;/div&gt; 
&lt;p&gt;安装后应用会自动检查更新（macOS 支持自动更新，Windows 待代码签名证书配置完成后启用）。&lt;/p&gt; 
&lt;p&gt;如果你是开发者，想自行部署或参与贡献，请继续阅读下方的 &lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/#skills&quot;&gt;SKILLS&lt;/a&gt; 与 &lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/#-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B&quot;&gt;使用教程&lt;/a&gt;。&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🌟 愿景：&lt;/h2&gt; 
&lt;p&gt;3 天的比赛时间变为 1 小时 自动完整一份可以获奖级别的建模论文&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/chat.png&quot; /&gt; &lt;img src=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/coder.png&quot; /&gt; &lt;/p&gt; 
&lt;h2&gt;✨ 功能特性&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;🔍 自动分析问题，数学建模，编写代码，纠正错误，撰写论文&lt;/li&gt; 
 &lt;li&gt;💻 Code Interpreter 
  &lt;ul&gt; 
   &lt;li&gt;local Interpreter: 基于 jupyter , 代码保存为 notebook 方便再编辑&lt;/li&gt; 
   &lt;li&gt;云端 code interpreter: &lt;a href=&quot;https://e2b.dev/&quot;&gt;E2B&lt;/a&gt; 和 &lt;a href=&quot;https://app.daytona.io/&quot;&gt;daytona&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;📝 生成一份编排好格式的论文&lt;/li&gt; 
 &lt;li&gt;🤝 multi-agents: 建模手，代码手，论文手等&lt;/li&gt; 
 &lt;li&gt;🔄 multi-llms: 每个 agent 设置不同的、合适的模型&lt;/li&gt; 
 &lt;li&gt;🤖 支持所有模型: &lt;a href=&quot;https://docs.litellm.ai/docs/providers&quot;&gt;litellm&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;💰 成本低：workflow agentless，不依赖 agent 框架&lt;/li&gt; 
 &lt;li&gt;🧩 自定义模板：prompt inject 为每个 subtask 单独设置需求&lt;/li&gt; 
 &lt;li&gt;🌐 Web Search: Agent 自主搜索互联网获取真实数据（Tavily API）&lt;/li&gt; 
 &lt;li&gt;📚 RAG 知识库: 从本地知识库检索建模方法、代码模板、论文写作参考（ChromaDB + Rerank）&lt;/li&gt; 
 &lt;li&gt;🤝 HIL 人机协作: 关键节点暂停等待用户审批，支持 6 种决策动作（confirm / edit / regenerate / ask / skip / abort）&lt;/li&gt; 
 &lt;li&gt;🛡️ 四层容错: 有限重试 → Fallback Hand Off → Evaluator Shadow Mode → Feedback Rerun&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;hr /&gt; 
&lt;p&gt;我在平台中托管了一个在线版本，方便使用，欢迎体验：&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://mathmodel.top/home&quot;&gt;https://mathmodel.top/home&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;SKILLS&lt;/h2&gt; 
&lt;p&gt;项目蒸馏成完全由 SKILLS 驱动 不再做 Harness 层&lt;/p&gt; 
&lt;h3&gt;Intro&lt;/h3&gt; 
&lt;p&gt;MathModelAgent SKILL —— 直接在 Harness 中驱动的数学建模自动化方案.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;💰 开源免费，接入任意模型&lt;/strong&gt; 完全开源免费，可接入任何模型。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;🧠 端到端自动化&lt;/strong&gt; 从问题分析、建模、编码、绘图到论文排版和验收，一条 &lt;code&gt;/1start-mathmodel&lt;/code&gt; 命令全自动完成，中间阶段自动串联，无需人工干预。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;📄 17 套 Typst 论文模板&lt;/strong&gt; 内置中英文主流赛事模板（国赛、华数杯、华为杯、MCM/ICM 等），自动匹配赛事类型，生成排版精良、可直接提交的 PDF 论文。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;📐 内置建模知识库&lt;/strong&gt; 包含完整的建模规范、模型选择决策树（AHP、TOPSIS、ARIMA、GA 等）、常见易错模式和 MCM/ICM 评分标准，每个阶段自动参考，降低模型幻觉。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;✅ 9 步自动验收&lt;/strong&gt; 文本泄漏检测 → 数值一致性校验 → Typst 编译 → PDF 可视化检查，确保论文零低级错误。&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;🔧 可组合、可扩展&lt;/strong&gt; 每个阶段是独立 Skill，可单独调用（如只跑分析、只写论文）；模板和知识库可自由扩展；支持 Typst 生态排版。&lt;/p&gt; 
&lt;h3&gt;🎨 姊妹项目：sci-box（科研图表 &amp;amp; 流程图）&lt;/h3&gt; 
&lt;p&gt;科研绘图和流程图模板已独立成仓库 &lt;strong&gt;&lt;a href=&quot;https://github.com/jihe520/sci-box&quot;&gt;jihe520/sci-box&lt;/a&gt;&lt;/strong&gt;，可单独安装、单独使用：&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;SKILL&lt;/th&gt; 
   &lt;th&gt;内容&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;scibox-figure&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;SHAP / ROC / Taylor / 云雨图 / 和弦图 / 环形热图等科研图表复刻模板（Python + Matplotlib，导出 PNG / PDF / SVG）&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;scibox-diagram&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;可编辑的 &lt;a href=&quot;http://draw.io&quot;&gt;draw.io&lt;/a&gt; 模板：五层技术路线图、三栏研究框架、三栏流程图、横向任务流水线&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;pre&gt;&lt;code&gt;npx skills add jihe520/sci-box
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/figure_templates.png&quot; alt=&quot;figure&quot; /&gt;&lt;/p&gt; 
&lt;h3&gt;Install &amp;amp; Usage&lt;/h3&gt; 
&lt;p&gt;安装 SKILL&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;npx skills add jihe520/MathModelAgent --all
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;运行&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;// claude
claude --dangerously-skip-permissions
claude: /1start-mathmodel 完成这个数学建模任务

// codex
codex --yolo
codex: $start-mathmodel 完成这个数学建模任务
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;其他命令&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/doctor:  检查环境配置
/typst-author: typst 知识
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;What Can You Contribute?&lt;/h3&gt; 
&lt;p&gt;项目以后只会做 SKLLS 层的迭代和优化，不会再做其他部分。&lt;/p&gt; 
&lt;p&gt;如果你希望寻找 Agent 开发岗位，你可以研究该项目 Agent 设计并贡献，我会尽量合并.&lt;/p&gt; 
&lt;p&gt;你能做什么：&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;优化贡献比赛 typst Template , 你可以找一些 LaTeX 转成 typst&lt;/li&gt; 
 &lt;li&gt;优化 SKILL Workflow&lt;/li&gt; 
 &lt;li&gt;在不同的 Harness 上测试 不同的 LLM, 提供反馈和案例放在 example 仓库&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Harness SKILL 的优化需要大量黑盒测试和调优.&lt;/p&gt; 
&lt;h3&gt;Thinking&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;两年前，我做了一个 Mulit-Agent 的数学建模项目并开源出来，收到了社区的欢迎和很多 star, 感谢大家支持。&lt;/li&gt; 
 &lt;li&gt;感谢开源的 latex 模板，我在此基础上转化为 typst 模板&lt;/li&gt; 
 &lt;li&gt;此 SKILL 是一个基础模板，你可以基于此构建更适合你自己的 MathModel SKILL&lt;/li&gt; 
 &lt;li&gt;For Agent DEVs : 两年前，我都是自己实现一套 Agent 框架，现在和以后更多的 Agent 产品直接基于 Harness 如 Codex / Claude Code / Pi + SKILLS 来构建&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;hr /&gt; 
&lt;h2&gt;🚀 后期计划&lt;/h2&gt; 
&lt;ul class=&quot;task-list&quot;&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_0&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_0&quot;&gt; 添加并完成 webui、cli&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_1&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_1&quot;&gt; 完善的教程、文档&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_2&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_2&quot;&gt; 提供 web 服务&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_3&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_3&quot;&gt; 英文支持（美赛）&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_4&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_4&quot;&gt; 集成 latex 模板&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_5&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_5&quot;&gt; 接入视觉模型&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_6&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_6&quot;&gt; 添加正确文献引用&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_7&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_7&quot;&gt; 更多测试案例&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_8&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_8&quot;&gt; docker 部署&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_9&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_9&quot;&gt; human in loop ( HIL ): 关键节点暂停等待用户审批，支持 6 种决策动作（confirm/edit/regenerate/ask/skip/abort）&lt;/label&gt;
  &lt;!-- TODO: 数据模型已实现，但工作流集成不完整 --&gt; &lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_10&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_10&quot;&gt; feedback: 评估器评分 + 反馈注入重跑，先 Writer 后 Coder&lt;/label&gt;
  &lt;!-- TODO: 核心逻辑未实现，仅有 Agent 基类中的 TODO 注释 --&gt; &lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_11&quot; checked=&quot;true&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_11&quot;&gt; codeinterpreter 接入云端 如 e2b 等供应商..&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_12&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_12&quot;&gt; 多语言: R 语言, matlab&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_13&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_13&quot;&gt; 绘图 napki,&lt;a href=&quot;http://draw.io&quot;&gt;draw.io&lt;/a&gt;,plantuml,svg, mermaid.js&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_14&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_14&quot;&gt; 添加 benchmark&lt;/label&gt;&lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_15&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_15&quot;&gt; web search tool: Tavily API 搜索互联网获取真实数据&lt;/label&gt;
  &lt;!-- NOTE: 原计划 Tavily API 未实现，当前使用 OpenAlex 替代 --&gt; &lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_16&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_16&quot;&gt; RAG 知识库: ChromaDB + Rerank 检索建模方法、代码模板、论文写作参考&lt;/label&gt;
  &lt;!-- TODO: 仅配置项存在，核心检索逻辑未实现 --&gt; &lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_17&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_17&quot;&gt; A2A hand off: Fallback 自动切换备用模型 + 有限重试 + Evaluator Shadow Mode&lt;/label&gt;
  &lt;!-- TODO: 配置项和核心逻辑均未实现，仅有基础重试机制 --&gt; &lt;/li&gt; 
 &lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_18&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_18&quot;&gt; chat / agent mode&lt;/label&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;视频demo&lt;/h2&gt; 
&lt;p&gt;
 &lt;video src=&quot;https://github.com/user-attachments/assets/954cb607-8e7e-45c6-8b15-f85e204a0c5d&quot;&gt;&lt;/video&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-caution&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-stop mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Caution&lt;/p&gt;
 &lt;p&gt;项目处于实验探索迭代demo阶段，有许多需要改进优化改进地方，我(项目作者)很忙，有时间会优化更新 欢迎贡献&lt;/p&gt; 
&lt;/div&gt; 
&lt;h2&gt;📖 使用教程&lt;/h2&gt; 
&lt;p&gt;提供三种部署方式，请选择最适合你的方案：&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/#-%E6%96%B9%E6%A1%88%E4%B8%80docker-%E9%83%A8%E7%BD%B2%E6%8E%A8%E8%8D%90%E6%9C%80%E7%AE%80%E5%8D%95&quot;&gt;docker(最简单)&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/#-%E6%96%B9%E6%A1%88%E4%BA%8C-%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2&quot;&gt;本地部署&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/#-%E6%96%B9%E6%A1%88%E4%B8%89%E8%87%AA%E5%8A%A8%E8%84%9A%E6%9C%AC%E9%83%A8%E7%BD%B2%E6%9D%A5%E8%87%AA%E7%A4%BE%E5%8C%BA&quot;&gt;脚本本地部署(社区)&lt;/a&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;下载项目&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/jihe520/MathModelAgent.git # 克隆项目
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;如果你想运行 命令行版本 cli 切换到 &lt;a href=&quot;https://github.com/jihe520/MathModelAgent/tree/master&quot;&gt;master&lt;/a&gt; 分支,部署更简单，但未来不会更新&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h3&gt;🐳 方案一：Docker 部署（推荐：安全简单）&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;确保电脑安装了 docker 环境&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;ol&gt; 
 &lt;li&gt;启动服务&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;在项目文件夹下运行:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;访问&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;现在你可以访问：&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;前端界面：&lt;a href=&quot;http://localhost:5173&quot;&gt;http://localhost:5173&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;后端API：&lt;a href=&quot;http://localhost:8000&quot;&gt;http://localhost:8000&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li&gt;配置&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;侧边栏 -&amp;gt; 头像 -&amp;gt; API Key&lt;/p&gt; 
&lt;h3&gt;💻 方案二: 本地部署（推荐项目开发者部署）&lt;/h3&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;确保电脑中安装好 Python, Nodejs, &lt;strong&gt;Redis&lt;/strong&gt; 环境&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h4&gt;step1:安装依赖&lt;/h4&gt; 
&lt;ol&gt; 
 &lt;li&gt;下载Redis(记得设置环境变量redis_path)&lt;/li&gt; 
&lt;/ol&gt; 
&lt;ul&gt; 
 &lt;li&gt;windows 下载地址：&lt;a href=&quot;https://github.com/tporadowski/redis/releases&quot;&gt;https://github.com/tporadowski/redis/releases&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;linux or mac 下载地址：&lt;a href=&quot;https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/&quot;&gt;https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;安装后端依赖&lt;/li&gt; 
&lt;/ol&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# ============ 安装依赖 ============
# 1. 切换到 backend 目录
cd backend
# 2. 安装 uv 包管理器（推荐）
pip install uv
# 3. 同步项目依赖
uv sync
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# ============ MacOS / Linux 安装命令 ============
# 1. 设置环境变量
export ENV=DEV
export REDIS_URL=redis://localhost:6379/0
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;# ============ Windows PowerShell 安装命令 ============
# 1. 设置环境变量
$env:ENV=&quot;DEV&quot;
$env:REDIS_URL=&quot;redis://localhost:6379/0&quot;
# 2. 设置 PowerShell 执行策略策略为 RemoteSigned
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# 3. 创建虚拟环境
python -m venv venv
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;3.安装前端依赖&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd frontend # 切换到 frontend 目录下
npm install -g pnpm
pnpm i
&lt;/code&gt;&lt;/pre&gt; 
&lt;h4&gt;step2:启动项目&lt;/h4&gt; 
&lt;p&gt;&lt;strong&gt;windows用户直接双击运行项目中的win_start.bat 即可启动项目&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;1.启动 Redis&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;redis-server
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;2.启动后端&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# ============ MacOS / Linux 安装命令 ============
# 1. 激活虚拟环境
source .venv/bin/activate
# 2. 启动后端服务（激活后可直接使用 uvicorn 命令）
uvicorn app.main:app --host 0.0.0.0 --port 8000 --ws-ping-interval 60 --ws-ping-timeout 120 --reload
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# ============ Windows PowerShell 安装命令 ============
# 1. 切换到 backend 目录
cd .\backend\
# 2. 激活虚拟环境
.\venv\Scripts\Activate.ps1
# 3. 启动后端服务
uvicorn app.main:app --host 0.0.0.0 --port 8000 --ws-ping-interval 60 --ws-ping-timeout 120 --reload
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;3.启动前端&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cd .\frontend\
pnpm run dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;修改 backend/.env.dev 的环境变量 &lt;strong&gt;REDIS_URL&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;配置API Key&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;使用 WebUI &amp;nbsp;侧边栏 -&amp;gt; 头像 -&amp;gt; API Key&lt;/li&gt; 
 &lt;li&gt;修改 backend/.env.dev 文件 &amp;nbsp;先将.env.example文件 改为.env.dev &amp;nbsp;然后在.env.dev中 修改各 Agent API 配置&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h3&gt;🚀 方案三：自动脚本部署（来自社区）&lt;/h3&gt; 
&lt;p&gt;有没有自动部署的脚本 ？ &lt;a href=&quot;https://github.com/Fitia-UCAS/mmaAutoSetupRun&quot;&gt;mmaAutoSetupRun&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/md/tutorial.md&quot;&gt;教程&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;运行的结果和产生在&lt;code&gt;backend/project/work_dir/xxx/*&lt;/code&gt;目录下&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;notebook.ipynb: 保存运行过程中产生的代码&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://res.md&quot;&gt;res.md&lt;/a&gt;: 保存最后运行产生的结果为 markdown 格式&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;需要自定义自定义提示词模板 template ？ Prompt Inject : &lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/backend/app/config/md_template.toml&quot;&gt;prompt&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;网络状况太差难以配置Docker等设置？ 网络不畅时的配置过程示例：&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/md/%E7%BD%91%E7%BB%9C%E7%8E%AF%E5%A2%83%E6%9E%81%E5%B7%AE%E6%97%B6%E7%9A%84MathModelAgent%E9%85%8D%E7%BD%AE%E8%BF%87%E7%A8%8B.md&quot;&gt;网络环境极差时的MathModelAgent配置过程&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;⚙️ 新功能配置&lt;/h2&gt; 
&lt;p&gt;MathModelAgent 支持以下可选功能，默认已关闭，开启后未配置外部依赖时自动降级跳过。详见 &lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/%E5%8D%87%E7%BA%A7%E8%AF%B4%E6%98%8E.md&quot;&gt;升级说明&lt;/a&gt;。&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;功能&lt;/th&gt; 
   &lt;th&gt;配置开关&lt;/th&gt; 
   &lt;th&gt;说明&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Web Search&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;SEARCH_ENABLED&lt;/code&gt; + &lt;code&gt;TAVILY_API_KEY&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Agent 自主联网搜索真实数据（Tavily API）&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;RAG 知识库&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;RAG_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;从本地知识库检索建模方法和代码模板（ChromaDB + Rerank）&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;HIL 人机协作&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;HIL_ENABLED&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;关键节点暂停等待用户审批，支持 6 种决策动作&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Fallback Hand Off&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;FALLBACK_*&lt;/code&gt; 系列&lt;/td&gt; 
   &lt;td&gt;主模型故障自动切换备用模型&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Evaluator + Feedback&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;EVALUATOR_*&lt;/code&gt; 系列&lt;/td&gt; 
   &lt;td&gt;输出质量评估 + 反馈重跑&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;快速启用 Web Search：注册 &lt;a href=&quot;https://tavily.com&quot;&gt;Tavily&lt;/a&gt; 获取 API Key，在 &lt;code&gt;backend/.env.dev&lt;/code&gt; 中设置 &lt;code&gt;TAVILY_API_KEY=tvly-xxx&lt;/code&gt;。&lt;/p&gt; 
&lt;h2&gt;🤝 贡献和开发&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://deepwiki.com/jihe520/MathModelAgent&quot;&gt;DeepWiki&lt;/a&gt; | &lt;a href=&quot;https://zread.ai/jihe520/MathModelAgent&quot;&gt;Zread&lt;/a&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Tip&lt;/p&gt;
 &lt;p&gt;如果你有跑出来好的案例可以提交 PR 在该仓库下: &lt;a href=&quot;https://github.com/jihe520/MathModelAgent-Example&quot;&gt;MathModelAgent-Example&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;ul&gt; 
 &lt;li&gt;项目处于&lt;strong&gt;开发实验阶段&lt;/strong&gt;（我有时间就会更新），变更较多，还存在许多 Bug，我正着手修复。&lt;/li&gt; 
 &lt;li&gt;希望大家一起参与，让这个项目变得更好&lt;/li&gt; 
 &lt;li&gt;非常欢迎使用和提交 &lt;strong&gt;PRs&lt;/strong&gt; 和 issues&lt;/li&gt; 
 &lt;li&gt;需求参考 后期计划&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;clone 项目后，下载 &lt;strong&gt;Todo Tree&lt;/strong&gt; 插件，可以查看代码中所有具体位置的 todo&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;.cursor/*&lt;/code&gt; 有项目整体架构、rules、mcp 可以方便开发使用&lt;/p&gt; 
&lt;h2&gt;📄 版权License&lt;/h2&gt; 
&lt;p&gt;个人免费使用，请勿商业用途，商业用途联系我（作者）&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/md/License.md&quot;&gt;License&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;🙏 Reference&lt;/h2&gt; 
&lt;p&gt;Thanks to the following projects:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/OpenCodeInterpreter/OpenCodeInterpreter/tree/main&quot;&gt;OpenCodeInterpreter&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/microsoft/TaskWeaver&quot;&gt;TaskWeaver&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/MrGreyfun/Local-Code-Interpreter/tree/main&quot;&gt;Code-Interpreter&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/Veni222987/MathModelingLatexTemplate/tree/main&quot;&gt;Latex&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/SamuelSchmidgall/AgentLaboratory&quot;&gt;Agent Laboratory&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/Simpleyyt/ai-manus&quot;&gt;ai-manus&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;其他&lt;/h2&gt; 
&lt;h3&gt;💖 Sponsor&lt;/h3&gt; 
&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/md/sponser.md&quot;&gt;☕️ 给作者买一杯咖啡&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://linux.do/&quot;&gt;https://linux.do/&lt;/a&gt;&lt;/p&gt; 
&lt;h4&gt;企业&lt;/h4&gt; 
&lt;div align=&quot;center&quot;&gt; 
 &lt;a href=&quot;https://share.302.ai/UoTruU&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/jihe520/MathModelAgent/main/docs/302ai.jpg&quot; /&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;a href=&quot;https://share.302.ai/UoTruU&quot;&gt;302.AI&lt;/a&gt; 是一个按用量付费的企业级AI资源平台，提供市场上最新、最全面的AI模型和API，以及多种开箱即用的在线AI应用&lt;/p&gt; 
&lt;h4&gt;用户&lt;/h4&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/danmo-tyc&quot;&gt;danmo-tyc&lt;/a&gt;&lt;/p&gt; 
&lt;h3&gt;👥 GROUP&lt;/h3&gt; 
&lt;p&gt;有问题可以进群问&lt;/p&gt; 
&lt;p&gt;点击链接加入腾讯频道【MathModelAgent】：&lt;a href=&quot;https://pd.qq.com/s/7rfbai3au&quot;&gt;https://pd.qq.com/s/7rfbai3au&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;点击链接加入群聊 779159301【MathModelAgent】：&lt;a href=&quot;https://qm.qq.com/q/Fw2cCJPoki&quot;&gt;https://qm.qq.com/q/Fw2cCJPoki&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://discord.gg/3Jmpqg5J&quot;&gt;Discord&lt;/a&gt;&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-caution&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-stop mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Caution&lt;/p&gt;
 &lt;p&gt;免责声明: 注意，AI 生成仅供参考，目前水平直接参加国赛获奖是不可能的，但我相信 AI 和 该项目未来的成长。&lt;/p&gt; 
&lt;/div&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/9ce024cca3d269cfc019151530c414599db201b64472c0807e6d238bc8916b9e/jihe520/MathModelAgent" medium="image" />
      
    </item>
    
    <item>
      <title>tonhowtf/omniget</title>
      <link>https://github.com/tonhowtf/omniget</link>
      <description>&lt;p&gt;Download Udemy and Hotmart courses, YouTube videos, music and books — 1,800+ sites, no terminal. Free open-source desktop app for Windows, macOS and Linux, with a built-in course player, PDF/EPUB reader and music library. Powered by yt-dlp. Your files stay on your computer.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://tonho.wtf&quot;&gt;https://tonho.wtf&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/hero.svg?sanitize=true&quot; alt=&quot;OmniGet: paste a link, get the file. Downloads, tools and a study library in one desktop app for Windows, macOS and Linux.&quot; width=&quot;100%&quot; /&gt; &lt;/p&gt; 
&lt;h1 align=&quot;center&quot;&gt;OmniGet&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;b&gt;English&lt;/b&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/README_pt_br.md&quot;&gt;Português (BR)&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/README.ru.md&quot;&gt;Русский&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/README_zh_CN.md&quot;&gt;简体中文&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;b&gt;Download Udemy and Hotmart courses, YouTube, Instagram, X, Pinterest, TikTok and 1,800+ other sites.&lt;br /&gt;Then transcribe, convert, read and study what you saved. One free desktop app, no terminal.&lt;/b&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/tonhowtf/omniget/releases/latest&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/v/release/tonhowtf/omniget?style=for-the-badge&amp;amp;label=release&amp;amp;color=F28500&quot; alt=&quot;Latest release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/tonhowtf/omniget/releases&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/downloads/tonhowtf/omniget/total?style=for-the-badge&amp;amp;label=downloads&amp;amp;color=1E6FE8&quot; alt=&quot;Total downloads&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/tonhowtf/omniget/stargazers&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/stars/tonhowtf/omniget?style=for-the-badge&amp;amp;color=FFD426&quot; alt=&quot;GitHub stars&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/LICENSE&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/license-GPL--3.0-2AA845?style=for-the-badge&quot; alt=&quot;License GPL-3.0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://discord.gg/jgdxyPy7Vn&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Discord-community-5865F2?style=for-the-badge&amp;amp;logo=discord&amp;amp;logoColor=white&quot; alt=&quot;Discord community&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://hosted.weblate.org/engage/omniget/&quot;&gt;&lt;img src=&quot;https://hosted.weblate.org/widget/omniget/frontend-json/svg-badge.svg?sanitize=true&quot; alt=&quot;Translation status&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#download-and-install&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/Download_for_Windows,_macOS_or_Linux-%E2%86%92-F28500?style=for-the-badge&quot; alt=&quot;Download OmniGet&quot; height=&quot;40&quot; /&gt;&lt;/a&gt; &amp;nbsp; &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#the-tools-section-108-tools-in-16-categories&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/See_the_108_tools-%E2%86%92-3D5BF0?style=for-the-badge&quot; alt=&quot;See the Tools section&quot; height=&quot;40&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;sub&gt;Free. Open source under GPL-3.0. No account, no ads, no telemetry on what you download. Your files stay on your computer.&lt;/sub&gt;&lt;br /&gt; &lt;sub&gt;9,500+ GitHub stars. The most starred repository in the &lt;a href=&quot;https://github.com/topics/udemy-downloader&quot;&gt;udemy-downloader&lt;/a&gt;, &lt;a href=&quot;https://github.com/topics/hotmart-downloader&quot;&gt;hotmart-downloader&lt;/a&gt; and &lt;a href=&quot;https://github.com/topics/course-downloader&quot;&gt;course-downloader&lt;/a&gt; topics.&lt;/sub&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/home.png&quot; alt=&quot;OmniGet home screen: paste a URL, magnet link or .torrent and the file lands in your folder&quot; width=&quot;900&quot; /&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contents&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#why-omniget&quot;&gt;Why OmniGet&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#download-and-install&quot;&gt;Download and install&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#your-first-download-in-one-minute&quot;&gt;Your first download in one minute&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#what-omniget-downloads&quot;&gt;What OmniGet downloads&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#the-browser-extension-step-by-step&quot;&gt;The browser extension, step by step&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#the-tools-section-108-tools-in-16-categories&quot;&gt;The Tools section: 108 tools in 16 categories&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#plugins-courses-study-telegram-convert&quot;&gt;Plugins: Courses, Study, Telegram, Convert&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#built-in-chat-off-by-default&quot;&gt;Built-in chat, off by default&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#for-league-of-legends-players&quot;&gt;For League of Legends players&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#everything-else-in-the-box&quot;&gt;Everything else in the box&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#privacy-and-what-omniget-refuses-to-do&quot;&gt;Privacy and what OmniGet refuses to do&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#frequently-asked-questions&quot;&gt;Frequently asked questions&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#command-line&quot;&gt;Command line&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#build-from-source&quot;&gt;Build from source&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#contributing-and-translations&quot;&gt;Contributing and translations&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Why OmniGet&lt;/h2&gt; 
&lt;p&gt;You bought a course and want it on your disk before the platform pulls it. You keep a yt-dlp cheat sheet because the flags never stick. You have one site for Instagram stories, another for X videos, a Chrome extension for Pinterest, a Python script for subtitles, and none of them remember your login.&lt;/p&gt; 
&lt;p&gt;OmniGet puts all of that behind one text box. Paste a link, see a preview with quality options, click download. The same window then plays the course, reads the PDF, transcribes the audio and backs up the Pinterest board. yt-dlp and FFmpeg install themselves and stay updated, so there is nothing to configure and no terminal to open.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/workflow.svg?sanitize=true&quot; alt=&quot;How OmniGet works: paste a link or press the hotkey, OmniGet detects the site and fetches with yt-dlp or a native extractor, the file lands in your folder and opens in the built-in player, reader or tools.&quot; width=&quot;100%&quot; /&gt; &lt;/p&gt; 
&lt;h3&gt;How it compares&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&lt;/th&gt; 
   &lt;th&gt;OmniGet&lt;/th&gt; 
   &lt;th&gt;yt-dlp alone&lt;/th&gt; 
   &lt;th&gt;Single-site web downloaders&lt;/th&gt; 
   &lt;th&gt;Paid course downloaders&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Sites&lt;/td&gt; 
   &lt;td&gt;Courses, Instagram, X, Pinterest, Bilibili, Telegram, torrents natively, plus 1,800+ through yt-dlp&lt;/td&gt; 
   &lt;td&gt;1,800+&lt;/td&gt; 
   &lt;td&gt;One&lt;/td&gt; 
   &lt;td&gt;One or two platforms&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Setup&lt;/td&gt; 
   &lt;td&gt;Download one file, open it&lt;/td&gt; 
   &lt;td&gt;Python, PATH, FFmpeg, flags&lt;/td&gt; 
   &lt;td&gt;None&lt;/td&gt; 
   &lt;td&gt;Installer, license key&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Logged-in content&lt;/td&gt; 
   &lt;td&gt;Cookies from your browser through the extension&lt;/td&gt; 
   &lt;td&gt;Manual &lt;code&gt;--cookies&lt;/code&gt; export&lt;/td&gt; 
   &lt;td&gt;Rarely&lt;/td&gt; 
   &lt;td&gt;Sometimes&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Queue&lt;/td&gt; 
   &lt;td&gt;Resume, retry with backoff, rules, followed channels&lt;/td&gt; 
   &lt;td&gt;One command at a time&lt;/td&gt; 
   &lt;td&gt;No&lt;/td&gt; 
   &lt;td&gt;Varies&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;After the download&lt;/td&gt; 
   &lt;td&gt;Player, reader, flashcards, notes, 108 tools&lt;/td&gt; 
   &lt;td&gt;Files&lt;/td&gt; 
   &lt;td&gt;Files, often re-encoded&lt;/td&gt; 
   &lt;td&gt;Files&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Price and license&lt;/td&gt; 
   &lt;td&gt;Free, GPL-3.0&lt;/td&gt; 
   &lt;td&gt;Free, Unlicense&lt;/td&gt; 
   &lt;td&gt;Free with ads&lt;/td&gt; 
   &lt;td&gt;Subscription&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;yt-dlp is the engine OmniGet runs on, and OmniGet would not exist without it. If you live in a terminal and only want files, yt-dlp alone is the right tool.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Download and install&lt;/h2&gt; 
&lt;p&gt;Pick your system. Every build is published on the &lt;a href=&quot;https://github.com/tonhowtf/omniget/releases/latest&quot;&gt;Releases page&lt;/a&gt;. Updates arrive inside the app.&lt;/p&gt; 
&lt;table&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;th align=&quot;left&quot;&gt;System&lt;/th&gt; 
   &lt;th align=&quot;left&quot;&gt;What to download&lt;/th&gt; 
   &lt;th align=&quot;left&quot;&gt;Other ways&lt;/th&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;Windows 10 / 11&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;omniget_x.y.z_x64-setup.exe&lt;/code&gt; (installer)&lt;br /&gt;&lt;code&gt;omniget_x.y.z_x64-portable.exe&lt;/code&gt; (no install, runs from anywhere)&lt;br /&gt;&lt;code&gt;omniget_x.y.z_x64_en-US.msi&lt;/code&gt; (for IT deployments)&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;winget install -e --id tonhowtf.OmniGet&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;macOS 10.15+&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;omniget_x.y.z_aarch64.dmg&lt;/code&gt; for Apple Silicon (M1 and later)&lt;br /&gt;&lt;code&gt;omniget_x.y.z_x64.dmg&lt;/code&gt; for Intel Macs&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;brew install --cask tonhowtf/tap/omniget&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;b&gt;Linux&lt;/b&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;.deb&lt;/code&gt; for Debian and Ubuntu (amd64 and arm64)&lt;br /&gt;&lt;code&gt;.rpm&lt;/code&gt; for Fedora, openSUSE and RHEL family (x86_64 and aarch64)&lt;br /&gt;&lt;code&gt;.AppImage&lt;/code&gt; for everything else (amd64 and aarch64)&lt;/td&gt; 
   &lt;td&gt;AppImage self-updates through the &lt;code&gt;.zsync&lt;/code&gt; files&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;h3&gt;The first launch warning, and how to clear it&lt;/h3&gt; 
&lt;p&gt;OmniGet is not signed with a paid certificate, so each system shows a warning the first time. This is normal for open source desktop apps and you handle it once.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Windows.&lt;/strong&gt; SmartScreen shows a blue box. Click &lt;strong&gt;More info&lt;/strong&gt;, then &lt;strong&gt;Run anyway&lt;/strong&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;macOS.&lt;/strong&gt; Gatekeeper refuses to open the app and may say it is &quot;damaged&quot;. After you drag OmniGet into Applications, open Terminal (Spotlight, type &quot;Terminal&quot;) and paste these two lines:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;xattr -cr /Applications/omniget.app
codesign --force --deep --sign - /Applications/omniget.app
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Then open OmniGet from Launchpad as usual.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Linux, AppImage on Debian 12+ or Ubuntu 24.04+.&lt;/strong&gt; Those releases ship without FUSE 2, which AppImage needs. If the file fails with a libfuse error, run &lt;code&gt;sudo apt install libfuse2&lt;/code&gt;, or launch it with &lt;code&gt;./omniget.AppImage --appimage-extract-and-run&lt;/code&gt;. The &lt;code&gt;.deb&lt;/code&gt; avoids this entirely.&lt;/p&gt; 
&lt;h3&gt;Portable mode&lt;/h3&gt; 
&lt;p&gt;Create an empty file named &lt;code&gt;portable.txt&lt;/code&gt; (or &lt;code&gt;.portable&lt;/code&gt;) next to the Windows &lt;code&gt;.exe&lt;/code&gt; and relaunch. Settings, the database, cookies, plugins, caches, yt-dlp and FFmpeg all move to a &lt;code&gt;data&lt;/code&gt; folder next to the executable. Nothing touches &lt;code&gt;AppData&lt;/code&gt;, so the whole install fits on a USB stick.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Your first download in one minute&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt;Open OmniGet. The setup screen asks for your language and theme, then installs yt-dlp and FFmpeg with one click. yt-dlp is checked against its SHA-256 before it runs.&lt;/li&gt; 
 &lt;li&gt;Copy any link: a YouTube video, an Instagram reel, an X post, a Pinterest board, a magnet, a direct file URL.&lt;/li&gt; 
 &lt;li&gt;Paste it in the box on the home screen. OmniGet detects the site and shows the title, thumbnail and available qualities. Pick one and press Enter.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;The Downloads page shows speed, phase and ETA read straight from the downloader, so a stalled download looks stalled instead of frozen at &quot;3 seconds left&quot;. Interrupted downloads resume where they stopped. Rate-limited sites get retried with backoff, and connections per site adapt on their own, so YouTube gets up to 16 parallel fragments while a site that answers 429 gets fewer. When a Python 3.10 or newer is present, yt-dlp runs as a zipapp on it and starts in under a second instead of unpacking the bundled binary on every launch.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/downloads.png&quot; alt=&quot;OmniGet Downloads page with an active 4K YouTube download showing phase, speed, ETA and the exact yt-dlp command, plus queued and finished items&quot; width=&quot;900&quot; /&gt; &lt;/p&gt; 
&lt;h3&gt;Skip the window entirely&lt;/h3&gt; 
&lt;p&gt;Copy a link anywhere on your system and press &lt;strong&gt;Ctrl+Shift+D&lt;/strong&gt; (&lt;strong&gt;Cmd+Shift+D&lt;/strong&gt; on macOS). OmniGet reads the clipboard and starts the download in the background. A second hotkey, &lt;strong&gt;Ctrl+Shift+M&lt;/strong&gt;, grabs audio only, so a YouTube link becomes an MP3 without opening anything. It is off until you enable it, and both shortcuts can be rebound in &lt;strong&gt;Settings → Downloads → Clipboard &amp;amp; hotkeys&lt;/strong&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;What OmniGet downloads&lt;/h2&gt; 
&lt;p&gt;OmniGet has native extractors for the platforms people use most, and hands everything else to &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt;, which covers roughly 1,800 sites.&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Category&lt;/th&gt; 
   &lt;th&gt;Sites and formats&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Online courses&lt;/td&gt; 
   &lt;td&gt;Hotmart, Udemy, Kiwify, Rocketseat and Meta-Analysis Academy through the Courses plugin. Every lesson, section selection, attachments, resume where you stopped.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Video and audio&lt;/td&gt; 
   &lt;td&gt;YouTube (videos, playlists, channels, live from start, chapters, SponsorBlock), Instagram, TikTok, X/Twitter, Reddit, Twitch (VODs, clips, live), Vimeo, Bluesky, Threads, Pinterest, Douyin&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Bilibili, signed in&lt;/td&gt; 
   &lt;td&gt;4K, HDR, Dolby Vision, Hi-Res lossless and Dolby Atmos according to your subscription. Danmaku comments as XML, ASS or JSON, NFO files for Kodi and Jellyfin, custom naming templates, 11 URL types including bangumi, courses, favorites, watch later and history&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Image galleries&lt;/td&gt; 
   &lt;td&gt;Whole galleries and profiles from 250+ sites through gallery-dl (DeviantArt, Pixiv, ArtStation, Flickr, Tumblr, Imgur, Kemono and more)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Bulk&lt;/td&gt; 
   &lt;td&gt;Paste many links or load a &lt;code&gt;.txt&lt;/code&gt;, download whole subreddits, Reddit and X profiles, Instagram and Pinterest profiles&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Files and transfer&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;.torrent&lt;/code&gt; files and magnet links with a built-in BitTorrent client, direct HTTP files, HLS and DASH manifests, and person-to-person transfer between two OmniGet installs with a short word code&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Telegram&lt;/td&gt; 
   &lt;td&gt;Photos, videos, files and audio from any channel or group you belong to, through the Telegram plugin&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Options you set once and forget: default quality, audio-only format (MP3, M4A, Opus, FLAC or WAV), subtitle languages and format (SRT, VTT, ASS, embedded or sidecar), thumbnail and metadata embedding, filename template, organize by platform, skip existing files, split by chapters, speed limit, concurrent downloads, proxy. Rules send a given channel or host to a folder and quality of your choice without asking again. Followed channels are checked in the background and can download new uploads automatically with a tray notification.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/settings.png&quot; alt=&quot;OmniGet settings: grouped sidebar with Appearance, Downloads, Network, Cookies, Channels, AI, Plugins and Advanced, and a download section with Output, Quality, Subtitles, Clipboard and hotkeys, Per-platform options&quot; width=&quot;900&quot; /&gt; &lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;The browser extension, step by step&lt;/h2&gt; 
&lt;p&gt;The extension does two jobs. On sites it recognizes (YouTube, Instagram, TikTok, X, Reddit, Twitch, Pinterest, Bluesky, Telegram, Vimeo, Udemy, Hotmart, Rocketseat, Bilibili, SoundCloud) it sends the page to OmniGet with one click or with &lt;strong&gt;Alt+O&lt;/strong&gt;. On any other site it watches network traffic for MP4, HLS, DASH, WebM and audio streams and lists them in its popup. In both cases it forwards your cookies and referer, which is what lets OmniGet download private content you are logged into, such as Instagram stories, a paid course, or a members-only video. Cookies are grouped by real site, so a Brazilian &lt;code&gt;.com.br&lt;/code&gt; domain gets its own entry instead of sharing one with every other &lt;code&gt;.com.br&lt;/code&gt; site. The popup also has a &lt;strong&gt;Force H.264&lt;/strong&gt; switch for YouTube, for computers that stutter on VP9 and AV1.&lt;/p&gt; 
&lt;p&gt;Pick the level that matches how comfortable you are.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/extension.svg?sanitize=true&quot; alt=&quot;Pairing flow: install the extension in Chrome, click Pair extension in OmniGet Settings, the extension finds the app on localhost and connects. From then on every download carries your cookies.&quot; width=&quot;100%&quot; /&gt; &lt;/p&gt; 
&lt;h3&gt;Level 1: from inside the app (no downloads, no zip files)&lt;/h3&gt; 
&lt;ol&gt; 
 &lt;li&gt;Open OmniGet and install it if you have not. Launch it once.&lt;/li&gt; 
 &lt;li&gt;Go to &lt;strong&gt;Settings → Plugins → Browser extension&lt;/strong&gt;. Click &lt;strong&gt;Update / Install&lt;/strong&gt; next to Chrome. OmniGet copies the extension that ships inside it to a folder and opens that folder for you.&lt;/li&gt; 
 &lt;li&gt;Open Chrome (Edge, Brave and other Chromium browsers work the same way) and type &lt;code&gt;chrome://extensions&lt;/code&gt; in the address bar.&lt;/li&gt; 
 &lt;li&gt;Turn on &lt;strong&gt;Developer mode&lt;/strong&gt; with the switch in the top right corner.&lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;Load unpacked&lt;/strong&gt; and pick the folder OmniGet just opened.&lt;/li&gt; 
 &lt;li&gt;The OmniGet icon appears in the toolbar. An options page opens on its own and says it is looking for the app.&lt;/li&gt; 
 &lt;li&gt;Back in OmniGet, still in &lt;strong&gt;Settings → Plugins → Browser extension&lt;/strong&gt;, click &lt;strong&gt;Pair extension&lt;/strong&gt;. Within a few seconds the app says &quot;Extension connected&quot; and the options page turns green. Done.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;From now on, visit any supported page and click the icon. The page, its cookies and its title go to OmniGet and the download starts. Your cookies also show up in &lt;strong&gt;Settings → Cookies&lt;/strong&gt;, where the Courses plugin and the Instagram, X and Pinterest tools reuse them.&lt;/p&gt; 
&lt;h3&gt;Level 2: from the release zip&lt;/h3&gt; 
&lt;p&gt;Every release ships &lt;code&gt;omniget-chrome-extension-vX.Y.Z.zip&lt;/code&gt;. Download it from the &lt;a href=&quot;https://github.com/tonhowtf/omniget/releases/latest&quot;&gt;latest release&lt;/a&gt;, unzip it, then follow steps 3 to 7 above pointing &lt;strong&gt;Load unpacked&lt;/strong&gt; at the unzipped folder. Use this if you keep the app on one machine and the browser on another, or if you are installing for someone else.&lt;/p&gt; 
&lt;h3&gt;Level 3: Firefox, other browsers and manual pairing&lt;/h3&gt; 
&lt;p&gt;Firefox: &lt;strong&gt;Settings → Plugins → Browser extension → Update / Install&lt;/strong&gt; next to Firefox, then open &lt;code&gt;about:debugging#/runtime/this-firefox&lt;/code&gt;, click &lt;strong&gt;Load Temporary Add-on&lt;/strong&gt; and pick &lt;code&gt;manifest.json&lt;/code&gt; in the exported folder. Firefox drops temporary add-ons on restart, so repeat this until the extension is published on AMO. Safari is not supported yet because Safari extensions must ship through the App Store.&lt;/p&gt; 
&lt;p&gt;Manual pairing: if &lt;strong&gt;Pair extension&lt;/strong&gt; times out, open the extension&#39;s options page (right-click the icon → Options), then in OmniGet reveal and copy the &lt;strong&gt;Pairing token&lt;/strong&gt; and paste it into the options page. The endpoint URL is detected automatically. The app listens on &lt;code&gt;127.0.0.1&lt;/code&gt; ports 47720 to 47729 and the token is generated per install, so nothing leaves your machine.&lt;/p&gt; 
&lt;p&gt;If the extension is installed but OmniGet is closed, clicks fall back to the &lt;code&gt;omniget://&lt;/code&gt; link scheme, which still queues the URL but cannot carry cookies. Tick &quot;Always allow&quot; the first time Chrome asks.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;The Tools section: 108 tools in 16 categories&lt;/h2&gt; 
&lt;p&gt;Tools is the part of OmniGet that grew beyond downloading. Each tile is one job: an isolated Rust command with JSON in and JSON out, which is also what lets AI agents drive them through the built-in MCP server. The hub has a search box that understands English and Portuguese (&quot;legenda&quot; finds subtitle tools) and a platform filter, and tools that only run on Windows say so on the tile and stay hidden elsewhere.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/tools.png&quot; alt=&quot;OmniGet Tools hub with 16 categories: YouTube, Speech and subtitles, Video editing, Instagram, X, Pinterest, Spotify, PDF, Documents, Images, System, Files, Downloads, Automation, Phone and AI&quot; width=&quot;900&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;Status legend: no mark means ready, &lt;strong&gt;beta&lt;/strong&gt; means it works but has not been tested against every account type, &lt;strong&gt;planned&lt;/strong&gt; means the tile exists so you can see where things are going and does nothing yet.&lt;/p&gt; 
&lt;table&gt; 
 &lt;tbody&gt;
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/tools-instagram.png&quot; alt=&quot;Instagram tools in OmniGet: download post, bulk download, reel audio, stories, highlights, story viewers, profile viewer, HD avatar, profile download, unfollowers, fans, mutuals, who unfollowed, ghost followers, whitelist, data export, analytics, compare profiles, hashtag explorer, comments, likers, giveaway picker, publish and schedule&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/tools-x.png&quot; alt=&quot;X / Twitter tools in OmniGet: download post, unroll thread, post to image, profile X-ray, profile media, advanced search, export bookmarks, who doesn&#39;t follow back, your X archive and Grok&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/tools-pinterest.png&quot; alt=&quot;Pinterest tools in OmniGet: download pin, board backup, profile backup, search without AI or ads, similar pins, find the source, duplicates, color palette, offline gallery and keyword ideas&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/tools-speech.png&quot; alt=&quot;Speech and subtitles tools in OmniGet: transcribe with whisper.cpp, text to speech, translate subtitles, dub from subtitles, and planned voice cloning, voice design, vocal isolation and dictation&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt;
&lt;/table&gt; 
&lt;h3&gt;YouTube (11)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Download video.&lt;/strong&gt; Paste a link and pick quality, format and subtitles. Same engine as the home screen.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Metadata.&lt;/strong&gt; Save the info, description and thumbnail without the video.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Thumbnails.&lt;/strong&gt; Browse every cover image and save it at any resolution.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Subtitles.&lt;/strong&gt; Download subtitles, or merge two languages into one bilingual file.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Comments and chapters.&lt;/strong&gt; Fetch comments or chapter markers, filter them, export JSON or CSV.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Live chat.&lt;/strong&gt; Save the chat replay of a stream as JSON or CSV.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Subtitle workshop.&lt;/strong&gt; Edit, translate and re-time SRT, VTT and ASS files with a waveform, two-point sync, find and replace, an auto fix, and AI grammar and translation.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;SponsorBlock.&lt;/strong&gt; See sponsor, intro and outro segments and get the yt-dlp flags to skip them.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Dislikes.&lt;/strong&gt; Likes, dislikes and rating from Return YouTube Dislike.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Real thumbnail.&lt;/strong&gt; The frames the CDN already has at 25, 50 and 75 percent, instead of the clickbait cover.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Force H.264.&lt;/strong&gt; A switch in the browser extension that keeps YouTube on H.264 instead of VP9 and AV1, for machines that stutter on newer codecs.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Speech and subtitles (8)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Transcribe.&lt;/strong&gt; Audio or video to subtitles with whisper.cpp, offline. Models download on demand, Metal acceleration on macOS.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Text to speech.&lt;/strong&gt; Natural voices from Microsoft Edge, free, with a synced subtitle file.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Translate subtitles.&lt;/strong&gt; Translate an SRT with your AI provider or a LibreTranslate server, keeping the timing.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Dub from subtitles.&lt;/strong&gt; Turn an SRT into a voice track that fits each line and optionally replace the video&#39;s audio. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Clone a voice&lt;/strong&gt;, &lt;strong&gt;Design a voice&lt;/strong&gt; and &lt;strong&gt;Isolate vocals&lt;/strong&gt; through a VoiceStudio install running on your machine. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Dictation.&lt;/strong&gt; Press a global shortcut, speak, and whisper types the text where your cursor is. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Video editing (6)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Cut a clip.&lt;/strong&gt; Pick a video on disk and cut out a section. The result lands in the downloads queue.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Convert.&lt;/strong&gt; Change container, codec or resolution, or compress, through the Convert plugin.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Auto captions&lt;/strong&gt; and &lt;strong&gt;Text to speech&lt;/strong&gt; open the speech tools above.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Record screen.&lt;/strong&gt; Screen and system audio through FFmpeg, with a replay buffer that saves what just happened. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Timeline editor.&lt;/strong&gt; &lt;em&gt;planned&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Instagram (24)&lt;/h3&gt; 
&lt;p&gt;All of these run on your own Instagram session captured by the browser extension, so stories, close friends and your own lists work. Reads are paced and write actions stop on the first sign of a rate limit.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Download post.&lt;/strong&gt; Photo, video, reel, IGTV or carousel from a link, best quality.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Download many links.&lt;/strong&gt; Paste a list or a &lt;code&gt;.txt&lt;/code&gt; and get everything.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Reel audio.&lt;/strong&gt; Keep only the sound, as M4A or MP3.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Stories.&lt;/strong&gt; Download stories, including close friends, without marking them as seen.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Highlights.&lt;/strong&gt; One highlight or every highlight of a profile.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Who viewed my story.&lt;/strong&gt; List and export viewers of each active story.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Profile viewer.&lt;/strong&gt; Bio, counts, HD photo and whether the account follows you.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Profile picture in HD.&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Download a profile.&lt;/strong&gt; All posts, reels, tagged or saved posts, with a limit you choose.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Who doesn&#39;t follow back.&lt;/strong&gt; Compare followers and following, protect accounts with a whitelist, unfollow at a safe pace.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Fans.&lt;/strong&gt; Accounts that follow you but you don&#39;t follow back, with the option to remove them.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Mutuals.&lt;/strong&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Who unfollowed me.&lt;/strong&gt; Snapshots of your lists over time show who left and who arrived.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Ghost followers.&lt;/strong&gt; Followers who never like or comment, and the ones who engage the most.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Whitelist.&lt;/strong&gt; Accounts never suggested for unfollowing.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Data export.&lt;/strong&gt; Read Meta&#39;s &quot;Download your information&quot; zip offline: pending requests, close friends, blocked and more.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Profile analytics.&lt;/strong&gt; Engagement rate, cadence, best days and hours, hashtags and top posts of any public profile.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Compare profiles.&lt;/strong&gt; Up to six profiles side by side.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Hashtag explorer.&lt;/strong&gt; Post count, recent and top posts, related hashtags, download.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Export comments.&lt;/strong&gt; All comments of a post as CSV, with filter.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Who liked.&lt;/strong&gt; List and export the accounts that liked a post.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Giveaway picker.&lt;/strong&gt; Draw winners among the comments with rules for mentions, keyword and one entry per person.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Publish.&lt;/strong&gt; Photo, carousel, reel, video or story through your session or the official Graph API. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Schedule posts.&lt;/strong&gt; Queue posts for a date and time. OmniGet publishes them while it is open. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;X / Twitter (10)&lt;/h3&gt; 
&lt;p&gt;Public data comes through the FxTwitter API without login. Anything private (bookmarks, your follows, Grok on X) uses your X session from the cookie manager.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Download post.&lt;/strong&gt; Videos, images and GIFs from any post.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Unroll thread.&lt;/strong&gt; The whole thread on one page, exported as Markdown, HTML or text.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Post to image.&lt;/strong&gt; A clean PNG card of a post for sharing anywhere.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Profile X-ray.&lt;/strong&gt; Engagement, best time to post, top posts and hashtags of any account.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Profile media.&lt;/strong&gt; Every photo and video from a profile, original quality, in one go.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Advanced search.&lt;/strong&gt; Build queries with X operators, see trends, export results.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Export bookmarks.&lt;/strong&gt; All bookmarks with folders, to JSON, CSV, Markdown or HTML. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Who doesn&#39;t follow back.&lt;/strong&gt; Audit following vs. followers and unfollow safely with a whitelist. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Your X archive.&lt;/strong&gt; Open the data zip offline: stats, top posts, likes and follow lists.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Grok.&lt;/strong&gt; Ask Grok with live X search or summarize a thread, through the xAI API or your X session. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Pinterest (10)&lt;/h3&gt; 
&lt;p&gt;Works without login for anything public. Cookies are only needed for secret boards and for unsaving.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Download pin.&lt;/strong&gt; Image in original quality, video as MP4, GIF, carousel or story pages.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Board backup.&lt;/strong&gt; Every pin of a board or section with originals, videos, CSV/JSON and incremental sync.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Profile backup.&lt;/strong&gt; All public boards of a profile, one folder per board, plus created pins.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Search without AI or ads.&lt;/strong&gt; Filters that hide AI images, promoted pins and videos, then download.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Similar pins.&lt;/strong&gt; The &quot;More like this&quot; of any pin, filterable and downloadable.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Find the source.&lt;/strong&gt; Destination link, creator, dead-link check, Wayback Machine and reverse image search.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Duplicates in a board.&lt;/strong&gt; Identical and near-identical pins, with optional unsave.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Color palette.&lt;/strong&gt; Palette of a board or pin as hex, CSS or JSON.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Offline gallery, PDF, CSV.&lt;/strong&gt; A board as a searchable HTML gallery, a PDF moodboard or a spreadsheet.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Keyword ideas.&lt;/strong&gt; Search suggestions, refinements and the words top pins use.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Spotify (2)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Themes and colors.&lt;/strong&gt; Customize the Spotify client with Spicetify themes. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Extensions.&lt;/strong&gt; Install Spicetify extensions and custom apps from its Marketplace. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;PDF (6)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Merge.&lt;/strong&gt; Join several PDFs into one, in the order you choose.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Split.&lt;/strong&gt; Extract pages or break a PDF into parts.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Compress.&lt;/strong&gt; Shrink a PDF while keeping it readable.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Convert.&lt;/strong&gt; PDF to images or Word, and back.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;OCR.&lt;/strong&gt; Make scanned PDFs searchable. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Safe PDF.&lt;/strong&gt; Rebuild a PDF from pixels to strip scripts and forms.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Documents (5)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;SlideShare to PDF.&lt;/strong&gt; Every slide at the largest size, assembled into one PDF.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Google Docs export.&lt;/strong&gt; Public Docs, Slides and Sheets as PDF, DOCX, PPTX or XLSX.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Calameo pages.&lt;/strong&gt; Save the pages of a Calameo publication as SVG or JPG. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Image galleries.&lt;/strong&gt; Whole galleries and profiles from 250+ sites with gallery-dl.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Scribd.&lt;/strong&gt; Save readable books as PDF using your own session. &lt;em&gt;planned&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Images (3)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Upscale.&lt;/strong&gt; Real-ESRGAN on any Vulkan GPU, 2x, 3x or 4x. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Resize images.&lt;/strong&gt; Batch resize by width, height, fit or percent, converting the format if you want.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;OCR.&lt;/strong&gt; Copy the text out of images and slides. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Files (4)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Duplicates.&lt;/strong&gt; Find identical files by hash and free space safely.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Bulk rename.&lt;/strong&gt; Regex, counters and case changes with a preview before applying.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Find files.&lt;/strong&gt; Instant search with Everything on Windows, Spotlight on macOS or fd on Linux.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Keep awake.&lt;/strong&gt; Stop the computer from sleeping during long jobs.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Downloads (2)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Accelerated download.&lt;/strong&gt; Big files with 16 connections, resume and checksum via aria2.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;HLS / DASH manifest.&lt;/strong&gt; Paste a &lt;code&gt;.m3u8&lt;/code&gt; or &lt;code&gt;.mpd&lt;/code&gt; with Referer and cookie. FFmpeg saves an MP4.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Phone (1)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Send to phone.&lt;/strong&gt; Files, links and text to a paired KDE Connect device.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;System (9, Windows-only items marked)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Clean caches.&lt;/strong&gt; Temp files, logs and app caches with rules per operating system. You review the list before anything is deleted.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Disk analyzer.&lt;/strong&gt; What takes space, as a treemap plus the largest files, with a send-to-trash button.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Startup manager.&lt;/strong&gt; See what launches with the system and switch items off. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Uninstaller.&lt;/strong&gt; Remove apps and the leftovers they leave behind. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Privacy shield.&lt;/strong&gt; Control Windows telemetry, ad ID and tracking settings. Windows. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Harden Windows.&lt;/strong&gt; Macros, AutoRun, script host, UAC and Defender settings from hardentools, reversible. Windows. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Debloat Windows.&lt;/strong&gt; Remove preinstalled Store apps. Windows. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Registry cleaner.&lt;/strong&gt; Orphaned entries, with a &lt;code&gt;.reg&lt;/code&gt; backup before removal. Windows. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Software updater.&lt;/strong&gt; Update programs in bulk through winget, Chocolatey and Scoop. Windows. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Automation (1)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Auto clicker.&lt;/strong&gt; Click at the exact speed you set, with a global hotkey, limits and random ranges. Windows, macOS and Linux. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;AI (6)&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Compare prices.&lt;/strong&gt; The cost of the same model across providers, with prices from LiteLLM and models.dev.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;AI spending.&lt;/strong&gt; How much OmniGet spent on AI, by day, model and task, from a local ledger.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Local models (Ollama).&lt;/strong&gt; See, download and remove local models and use them as a free provider.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Humanize text.&lt;/strong&gt; Rewrite AI-sounding text so it reads like a person wrote it, without changing what it says. Runs on the AI provider you configured. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;API keys.&lt;/strong&gt; A local vault for keys and accounts, with a connection test, balance for OpenRouter, DeepSeek, SiliconFlow and New API, and export to Claude Code, Codex, Cherry Studio, opencode or a &lt;code&gt;.env&lt;/code&gt; file.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;MCP server.&lt;/strong&gt; OmniGet&#39;s tools exposed over the Model Context Protocol on the local bridge, 31 tools behind the same token the extension uses, with ready-made config snippets for Claude Code, Claude Desktop, Cursor, VS Code, Goose and Codex. &lt;em&gt;beta&lt;/em&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Every tool that talks to an AI uses the provider you set in &lt;strong&gt;Settings → AI&lt;/strong&gt;: OpenAI, Anthropic, or any OpenAI-compatible local endpoint such as Ollama or LM Studio. The key is stored locally and never logged. The auto clicker, dictation and the replay buffer can each get a global shortcut of their own.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Plugins: Courses, Study, Telegram, Convert&lt;/h2&gt; 
&lt;p&gt;Plugins are separate Rust libraries loaded at startup. OmniGet installs its official set on first launch and updates them by itself. The Marketplace page shows what is installed, what each plugin is allowed to do (events, notifications, settings, download folders, proxy, managed tools, download queue), and lets you hide, disable or uninstall any of them.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/assets/readme/marketplace.png&quot; alt=&quot;OmniGet Marketplace listing the Courses, Study, Telegram and Convert plugins with version, author, permissions and enable switches&quot; width=&quot;900&quot; /&gt; &lt;/p&gt; 
&lt;h3&gt;Courses&lt;/h3&gt; 
&lt;p&gt;Sign in to &lt;strong&gt;Hotmart&lt;/strong&gt;, &lt;strong&gt;Udemy&lt;/strong&gt;, &lt;strong&gt;Kiwify&lt;/strong&gt;, &lt;strong&gt;Rocketseat&lt;/strong&gt; or &lt;strong&gt;Meta-Analysis Academy&lt;/strong&gt; through a browser window inside the app, with saved cookies from the extension, or with email and password where the platform allows it. OmniGet lists your purchases, opens the course outline so you can tick the sections you want (it tells you how many lectures are DRM-protected and will be skipped), and downloads every lesson and attachment with continuous lecture numbers if you want them. Hotmart uses the current OIDC login flow, so it keeps working after Hotmart&#39;s 2026 auth change, and free courses and courses delivered outside Hotmart Club are listed too. Downloaded courses appear in Study automatically.&lt;/p&gt; 
&lt;h3&gt;Study&lt;/h3&gt; 
&lt;p&gt;Study turns the folder of files you downloaded into something you can actually finish.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Library and player. Point Study at your course folders (nothing is copied or moved). The player resumes to the second, and pressing &lt;strong&gt;N&lt;/strong&gt; captures a note at the current timestamp that jumps back there when clicked.&lt;/li&gt; 
 &lt;li&gt;Reader. PDF, EPUB, DJVU, MOBI, AZW3, FB2, CBZ, CBR, TXT, RTF and HTML, with highlights, bookmarks, collections, a focus mode and a paper-like theme. Covers, titles and authors are pulled from the files.&lt;/li&gt; 
 &lt;li&gt;Notes. A Markdown and LaTeX editor with links between pages, a daily journal, templates, tags, a knowledge graph, and export to &lt;code&gt;.md&lt;/code&gt; or PDF. Any note can become a flashcard.&lt;/li&gt; 
 &lt;li&gt;Anki. Spaced repetition decks with import from &lt;code&gt;.apkg&lt;/code&gt;, &lt;code&gt;.txt&lt;/code&gt; and CSV, filtered decks, presets, note types, tags, media, stats and a review log.&lt;/li&gt; 
 &lt;li&gt;Focus. Pomodoro and deep-work timers with daily and weekly targets that pause the player when the session ends.&lt;/li&gt; 
 &lt;li&gt;Progress and achievements. Streaks, daily goals, a year heatmap and local XP with no leaderboard.&lt;/li&gt; 
 &lt;li&gt;Music. Your local library with covers, artists and albums, synced lyrics, favorites, history, playlists, genres, transcoding, and browsers for Spotify, SoundCloud and YouTube Music so playlists and likes sit next to your files.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Telegram&lt;/h3&gt; 
&lt;p&gt;Sign in with a QR code or your phone number. Browse every channel and group you belong to, filter by photo, video, document or audio, search files, and download one item or the whole chat with a progress list. Videos from channels can be imported straight into the Study library.&lt;/p&gt; 
&lt;h3&gt;Convert&lt;/h3&gt; 
&lt;p&gt;FFmpeg conversions with GPU acceleration where the machine has it: container, codec, resolution, bitrate and compression for video and audio, no internet required.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Built-in chat, off by default&lt;/h2&gt; 
&lt;p&gt;OmniGet ships a Discord-style chat called OmniDisc for servers you host yourself with &lt;a href=&quot;https://github.com/tonhowtf/omnidisc-server&quot;&gt;omnidisc-server&lt;/a&gt;. Text channels, direct messages, friends, roles and permissions, pins, search, voice, video and screen sharing. Direct messages and the files sent in them are end-to-end encrypted with MLS, and the key for an encrypted call is derived from the same group, so the server operator cannot listen in. Voice runs in Rust rather than the web view and screen sharing uses the machine&#39;s hardware encoder. Files sent through chat are encrypted at rest and deleted from the server after thirty minutes.&lt;/p&gt; 
&lt;p&gt;It is experimental and does nothing until you turn it on in &lt;strong&gt;Settings → Advanced → Chat (OmniDisc)&lt;/strong&gt; and add a server.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;For League of Legends players&lt;/h2&gt; 
&lt;p&gt;A League menu sits in the sidebar. It reads your running League client locally, with no account and no third-party build site, and does nothing until the client is open. If you never play, switch it off in &lt;strong&gt;Settings → Advanced → League of Legends&lt;/strong&gt; and the menu disappears.&lt;/p&gt; 
&lt;p&gt;Match scouting for both teams with rank, recent form, KDA and the champions each player actually plays. Win probability that shrinks win rates toward the baseline by sample size and always shows a range. Live gold, CS and level for all ten players. Goals per role you can edit. Runes and summoner spells recommended by the client itself, applied in one click and only ever replacing the page OmniGet created. Champion tiers by role. Player search by Riot ID. Opt-in automation: accept matches, pick and ban from your priority list, grab a champion off the ARAM bench. Every automation has its own switch.&lt;/p&gt; 
&lt;p&gt;New and marked beta or experimental: a &lt;strong&gt;Profile&lt;/strong&gt; tab that edits what other players see (rank shown in chat, challenge medals and title, banner and crest, chat icon, bulk friend management); a &lt;strong&gt;skin, chroma and ward roulette&lt;/strong&gt; that rolls an owned skin the moment you lock in, with rerolls; a &lt;strong&gt;champion and lane raffle&lt;/strong&gt; for when you want the queue to decide, plus an optional random pick in champion select; full &lt;strong&gt;match history and ranked stats for any player&lt;/strong&gt; through the client&#39;s own backend gateway, with replay download; and an &lt;strong&gt;AI coach&lt;/strong&gt; that reviews a game, spots trends over your last matches or answers a question about the current champ select, using your configured AI provider and &lt;a href=&quot;http://OP.GG&quot;&gt;OP.GG&lt;/a&gt;&#39;s public data.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Everything else in the box&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;Command palette (&lt;strong&gt;Ctrl+K&lt;/strong&gt; or &lt;strong&gt;Cmd+K&lt;/strong&gt;) that jumps to any page, setting or tool.&lt;/li&gt; 
 &lt;li&gt;Clipboard detection that offers to download a copied link with one click on a toast.&lt;/li&gt; 
 &lt;li&gt;Cookie manager that keeps sessions per site, captured by the extension or imported from a &lt;code&gt;cookies.txt&lt;/code&gt;, with a test button per domain.&lt;/li&gt; 
 &lt;li&gt;Video summaries: paste a URL in &lt;strong&gt;Settings → AI&lt;/strong&gt;, OmniGet fetches the subtitles and summarizes them in the length and language you choose.&lt;/li&gt; 
 &lt;li&gt;Send a file to someone: pick a file, share the word code, the other person pastes it in their OmniGet.&lt;/li&gt; 
 &lt;li&gt;Discord Rich Presence showing what you are listening to, watching or reading. Downloads stay private.&lt;/li&gt; 
 &lt;li&gt;Tray icon, start with system, start minimized, prevent sleep during downloads.&lt;/li&gt; 
 &lt;li&gt;Every download keeps the exact yt-dlp command it ran. Open it, edit a flag, retry.&lt;/li&gt; 
 &lt;li&gt;14 themes, including Catppuccin (four flavors), Dracula, One Dark Pro, three e-ink variants and three Nyxvamp variants.&lt;/li&gt; 
 &lt;li&gt;11 languages: English, Portuguese, Spanish, French, Italian, Greek, Russian, Japanese, Persian, Simplified and Traditional Chinese.&lt;/li&gt; 
 &lt;li&gt;Runs on Windows, macOS (Apple Silicon and Intel) and Linux (x86_64 and ARM64).&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Privacy and what OmniGet refuses to do&lt;/h2&gt; 
&lt;p&gt;Everything runs on your computer. There is no account, no server of ours in the middle, and no telemetry about what you download. Cookies and API keys live in your local profile. The only network calls OmniGet makes on its own are to the sites you asked it to download from, to GitHub for updates and plugins, and to the AI provider you configured, when you use an AI tool.&lt;/p&gt; 
&lt;p&gt;OmniGet downloads what your own logged-in session can already open. It does not bypass DRM, break paywalls, or share credentials, and DRM-protected lectures are skipped and reported. You are responsible for respecting copyright and each platform&#39;s terms of service. The full text is in the app under &lt;strong&gt;About → Terms and ethics&lt;/strong&gt;.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Frequently asked questions&lt;/h2&gt; 
&lt;p&gt;&lt;strong&gt;Is OmniGet free?&lt;/strong&gt; Yes. GPL-3.0, no paid tier, no ads, no account.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Is OmniGet a yt-dlp GUI?&lt;/strong&gt; Partly. yt-dlp handles the long tail of sites and OmniGet bundles it, verifies it and updates it. On top of that sit native extractors for courses, Instagram, X, Pinterest, Bilibili, Telegram and torrents, a queue with resume and retry, the Tools section, and the Study library.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Can OmniGet download a Udemy or Hotmart course I bought?&lt;/strong&gt; Yes. Install the Courses plugin (it comes preinstalled), sign in through the app, pick the course and sections, and download. Lessons and attachments land in a folder per course and appear in Study. Kiwify, Rocketseat and Meta-Analysis Academy work the same way.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Can it download Instagram stories, close friends or highlights?&lt;/strong&gt; Yes, using your own session captured by the browser extension. Stories are downloaded without being marked as seen.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Can it download an X video, a whole thread or all media from a profile?&lt;/strong&gt; Yes. Public posts need no login. Bookmarks and your own follow lists need your X session.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Can it back up a Pinterest board in original quality?&lt;/strong&gt; Yes, including videos, sections, secret boards with cookies, and incremental sync so you only fetch what is new.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Does it resume interrupted downloads?&lt;/strong&gt; Yes. Partial files are kept and continued, and rate limits trigger retries with backoff.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Which formats can it save?&lt;/strong&gt; Video as MP4, MKV or WebM. Audio as MP3, M4A, Opus, FLAC or WAV. Subtitles as SRT, VTT or ASS, embedded or beside the file.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Does it need Python, Node or a terminal?&lt;/strong&gt; No. Download the app, open it, paste a link. The only terminal step is the one-time macOS Gatekeeper fix above.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;macOS says the app is damaged.&lt;/strong&gt; Run the two commands in &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#the-first-launch-warning-and-how-to-clear-it&quot;&gt;the first launch section&lt;/a&gt;. It happens because the app is not notarized, and it happens once.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Can I transcribe a video to subtitles offline?&lt;/strong&gt; Yes. Tools → Speech and subtitles → Transcribe uses whisper.cpp locally. Models download on demand.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Can I run it from a USB stick?&lt;/strong&gt; Yes, on Windows, with a &lt;code&gt;portable.txt&lt;/code&gt; file next to the executable.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;Which Linux package should I pick?&lt;/strong&gt; Debian and Ubuntu: &lt;code&gt;.deb&lt;/code&gt;. Fedora, openSUSE, RHEL family: &lt;code&gt;.rpm&lt;/code&gt;. Anything else: &lt;code&gt;.AppImage&lt;/code&gt;. Both x86_64 and ARM64 are published. OmniGet is not on Flathub.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Command line&lt;/h2&gt; 
&lt;p&gt;&lt;code&gt;omniget-cli&lt;/code&gt; ships with every release for Windows, macOS (Intel and Apple Silicon) and Linux. Grab &lt;code&gt;omniget-cli-&amp;lt;version&amp;gt;-&amp;lt;target&amp;gt;&lt;/code&gt; from the &lt;a href=&quot;https://github.com/tonhowtf/omniget/releases/latest&quot;&gt;latest release&lt;/a&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;omniget info &amp;lt;url&amp;gt;                     # title, formats and size, downloads nothing
omniget download &amp;lt;url&amp;gt; -q 1080 -o ~/Videos
omniget download &amp;lt;url&amp;gt; --audio-only --subs en,pt
omniget batch links.txt -m 3           # one URL per line, 3 at a time
omniget import-cookies cookies.txt     # Netscape format
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Build from source&lt;/h2&gt; 
&lt;p&gt;If you only want to use OmniGet, &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/#download-and-install&quot;&gt;grab a release&lt;/a&gt;. To build it you need &lt;a href=&quot;https://rustup.rs/&quot;&gt;Rust&lt;/a&gt; (the exact toolchain is pinned in &lt;code&gt;rust-toolchain.toml&lt;/code&gt; because the plugin ABI depends on it), &lt;a href=&quot;https://nodejs.org/&quot;&gt;Node.js&lt;/a&gt; 18+ and &lt;a href=&quot;https://pnpm.io/&quot;&gt;pnpm&lt;/a&gt;.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/tonhowtf/omniget.git
cd omniget
pnpm install
pnpm tauri dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;details&gt; 
 &lt;summary&gt;Linux build dependencies&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev \
  libayatana-appindicator3-dev librsvg2-dev patchelf libasound2-dev libpipewire-0.3-dev clang libclang-dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;p&gt;Production build:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pnpm tauri build --config &#39;{&quot;bundle&quot;:{&quot;createUpdaterArtifacts&quot;:false}}&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Releases sign their updater artifacts with a private key only the maintainer holds, so a plain &lt;code&gt;pnpm tauri build&lt;/code&gt; stops with &quot;A public key has been found, but no private key&quot;. The flag above turns those artifacts off for a local build and changes nothing else.&lt;/p&gt; 
&lt;p&gt;The plugins live in their own repositories: &lt;a href=&quot;https://github.com/tonhowtf/omniget-plugin-courses&quot;&gt;omniget-plugin-courses&lt;/a&gt;, &lt;a href=&quot;https://github.com/tonhowtf/omniget-plugin-telegram&quot;&gt;omniget-plugin-telegram&lt;/a&gt;, &lt;a href=&quot;https://github.com/tonhowtf/omniget-plugin-convert&quot;&gt;omniget-plugin-convert&lt;/a&gt; and &lt;a href=&quot;https://github.com/tonhowtf/omniget-study-release&quot;&gt;omniget-study-release&lt;/a&gt;. The registry is &lt;a href=&quot;https://github.com/tonhowtf/omniget-plugins&quot;&gt;omniget-plugins&lt;/a&gt;. &lt;code&gt;pnpm plugins:deploy&lt;/code&gt; builds the sibling plugin checkouts and copies them into your local data folder.&lt;/p&gt; 
&lt;p&gt;Stack: Tauri 2, Rust, SvelteKit with Svelte 5, SQLite, yt-dlp, FFmpeg, librqbit for torrents, whisper.cpp, aria2, gallery-dl.&lt;/p&gt; 
&lt;hr /&gt; 
&lt;h2&gt;Contributing and translations&lt;/h2&gt; 
&lt;p&gt;Bug reports and pull requests go to &lt;a href=&quot;https://github.com/tonhowtf/omniget/issues&quot;&gt;Issues&lt;/a&gt; and &lt;a href=&quot;https://github.com/tonhowtf/omniget/pulls&quot;&gt;Pull requests&lt;/a&gt;. Questions and quick help live on &lt;a href=&quot;https://discord.gg/jgdxyPy7Vn&quot;&gt;Discord&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Translations are managed on &lt;a href=&quot;https://hosted.weblate.org/engage/omniget/&quot;&gt;Weblate&lt;/a&gt;. Pick your language and translate in the browser. New strings appear there a few hours after they land in &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;OmniGet is built on &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp&quot;&gt;yt-dlp&lt;/a&gt;, &lt;a href=&quot;https://ffmpeg.org/&quot;&gt;FFmpeg&lt;/a&gt;, &lt;a href=&quot;https://github.com/mikf/gallery-dl&quot;&gt;gallery-dl&lt;/a&gt;, &lt;a href=&quot;https://github.com/ggerganov/whisper.cpp&quot;&gt;whisper.cpp&lt;/a&gt;, &lt;a href=&quot;https://aria2.github.io/&quot;&gt;aria2&lt;/a&gt;, &lt;a href=&quot;https://sponsor.ajay.app/&quot;&gt;SponsorBlock&lt;/a&gt;, &lt;a href=&quot;https://returnyoutubedislike.com/&quot;&gt;Return YouTube Dislike&lt;/a&gt;, &lt;a href=&quot;https://github.com/FixTweet/FxTwitter&quot;&gt;FxTwitter&lt;/a&gt;, &lt;a href=&quot;https://spicetify.app/&quot;&gt;Spicetify&lt;/a&gt; and &lt;a href=&quot;https://tauri.app/&quot;&gt;Tauri&lt;/a&gt;. Thank you to everyone who maintains them.&lt;/p&gt; 
&lt;p&gt;Loop, the creature on the home screen, is OmniGet&#39;s mascot. Fan art is welcome. The original artwork may not be used commercially or redistributed modified.&lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://star-history.com/#tonhowtf/omniget&amp;amp;Date&quot;&gt;&lt;img src=&quot;https://api.star-history.com/svg?repos=tonhowtf/omniget&amp;amp;type=Date&quot; alt=&quot;Star history of tonhowtf/omniget&quot; width=&quot;600&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://github.com/tonhowtf/omniget/releases/latest&quot;&gt;&lt;b&gt;Download OmniGet&lt;/b&gt;&lt;/a&gt; · &lt;a href=&quot;https://raw.githubusercontent.com/tonhowtf/omniget/main/LICENSE&quot;&gt;GPL-3.0&lt;/a&gt; &lt;/p&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/1155787322/0502eadc-9518-4486-a96d-3b344eba7276" medium="image" />
      
    </item>
    
    <item>
      <title>jiji262/douyin-downloader</title>
      <link>https://github.com/jiji262/douyin-downloader</link>
      <description>&lt;p&gt;A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具，去水印，支持视频、图集、合集、音乐(原声)。&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;Douyin Downloader V2.0&lt;/h1&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;img src=&quot;https://socialify.git.ci/jiji262/douyin-downloader/image?custom_description=Douyin+batch+download+tool%2C+remove+watermarks%2C+support+batch+download+of+videos%2C+gallery%2C+and+author+homepages.&amp;amp;description=1&amp;amp;font=Source+Code+Pro&amp;amp;forks=1&amp;amp;owner=1&amp;amp;pattern=Circuit+Board&amp;amp;stargazers=1&amp;amp;theme=Light&quot; alt=&quot;douyin-downloader&quot; width=&quot;820&quot; /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://linux.do&quot; alt=&quot;LINUX DO&quot;&gt; &lt;img src=&quot;https://img.shields.io/badge/LINUX-DO-FFB003.svg?logo=data:image/svg%2bxml;base64,DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik00Ni44Mi0uMDU1aDYuMjVxMjMuOTY5IDIuMDYyIDM4IDIxLjQyNmM1LjI1OCA3LjY3NiA4LjIxNSAxNi4xNTYgOC44NzUgMjUuNDV2Ni4yNXEtMi4wNjQgMjMuOTY4LTIxLjQzIDM4LTExLjUxMiA3Ljg4NS0yNS40NDUgOC44NzRoLTYuMjVxLTIzLjk3LTIuMDY0LTM4LjAwNC0yMS40M1EuOTcxIDY3LjA1Ni0uMDU0IDUzLjE4di02LjQ3M0MxLjM2MiAzMC43ODEgOC41MDMgMTguMTQ4IDIxLjM3IDguODE3IDI5LjA0NyAzLjU2MiAzNy41MjcuNjA0IDQ2LjgyMS0uMDU2IiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZWNlY2VjO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZD0iTTQ3LjI2NiAyLjk1N3EyMi41My0uNjUgMzcuNzc3IDE1LjczOGE0OS43IDQ5LjcgMCAwIDEgNi44NjcgMTAuMTU3cS00MS45NjQuMjIyLTgzLjkzIDAgOS43NS0xOC42MTYgMzAuMDI0LTI0LjM4N2E2MSA2MSAwIDAgMSA5LjI2Mi0xLjUwOCIgc3R5bGU9InN0cm9rZTpub25lO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6IzE5MTkxOTtmaWxsLW9wYWNpdHk6MSIvPjxwYXRoIGQ9Ik03Ljk4IDcwLjkyNmMyNy45NzctLjAzNSA1NS45NTQgMCA4My45My4xMTNRODMuNDI2IDg3LjQ3MyA2Ni4xMyA5NC4wODZxLTE4LjgxIDYuNTQ0LTM2LjgzMi0xLjg5OC0xNC4yMDMtNy4wOS0yMS4zMTctMjEuMjYyIiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjlhZjAwO2ZpbGwtb3BhY2l0eToxIi8+PC9zdmc+&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 中文文档 (Chinese): [README.zh-CN.md](./README.zh-CN.md) 
&lt;p&gt;A practical Douyin downloader supporting videos, image-notes, collections, music, favorites collections, and profile batch downloads, with progress display, retries, SQLite deduplication, download integrity checks, and browser fallback support.&lt;/p&gt; 
&lt;h2&gt;Desktop App (Douzy)&lt;/h2&gt; 
&lt;p&gt;A desktop GUI built on the same backend, with dedicated workspaces for Douyin, TikTok, and YouTube. Paste a link to start, sync account content, follow every task, and manage downloaded works in a local archive.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Three platforms:&lt;/strong&gt; Douyin videos, galleries, profiles, and collections; TikTok videos, photos, and profiles; YouTube videos, Shorts, channels, and playlists&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Account content:&lt;/strong&gt; sync Douyin following, favorites collections, collected series, and likes&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Visual workflow:&lt;/strong&gt; multi-link queue, task status and retry controls, local download archive, filters, and quick re-download&lt;/li&gt; 
&lt;/ul&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Beta:&lt;/strong&gt; The desktop app is currently in closed beta. To try it, download the build from the &lt;a href=&quot;https://github.com/jiji262/douyin-downloader/releases&quot;&gt;Releases&lt;/a&gt; page.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;&lt;strong&gt;Douyin link download&lt;/strong&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;&lt;strong&gt;TikTok download workspace&lt;/strong&gt;&lt;/th&gt; 
   &lt;th style=&quot;text-align:center&quot;&gt;&lt;strong&gt;YouTube workbench&lt;/strong&gt;&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/desktop/001.png&quot; alt=&quot;Douzy Douyin link download workspace&quot; /&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/desktop/002.png&quot; alt=&quot;Douzy TikTok download workspace&quot; /&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/desktop/003.png&quot; alt=&quot;Douzy YouTube workbench&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Paste a video, gallery, profile, or collection link and start in one click.&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Download public videos, photo posts, and profiles without signing in.&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Scan videos, Shorts, channels, and playlists, then configure video, MP3, or subtitle downloads.&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;Following management&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;Favorites and likes&lt;/strong&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;strong&gt;Task Center&lt;/strong&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/desktop/004.png&quot; alt=&quot;Douzy following management&quot; /&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/desktop/005.png&quot; alt=&quot;Douzy favorites and likes&quot; /&gt;&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/desktop/006.png&quot; alt=&quot;Douzy Task Center&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Sync creators, filter new works, add notes, and download directly from the list.&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Browse collected videos, series, and liked works from the current Douyin account.&lt;/td&gt; 
   &lt;td style=&quot;text-align:center&quot;&gt;Track job results, retry failures, and open output folders.&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;&lt;em&gt;Screenshots were captured from the current desktop &lt;code&gt;main&lt;/code&gt; build. Demonstration data is used for privacy.&lt;/em&gt;&lt;/p&gt; 
&lt;h2&gt;Feature Overview&lt;/h2&gt; 
&lt;h3&gt;Supported&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Feature&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Single video download&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/video/{aweme_id}&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Single image-note download&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/note/{note_id}&lt;/code&gt; and &lt;code&gt;/gallery/{note_id}&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Single collection download&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/collection/{mix_id}&lt;/code&gt; and &lt;code&gt;/mix/{mix_id}&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Single music download&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/music/{music_id}&lt;/code&gt; (prefers direct audio, fallback to first related aweme)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Short link parsing&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;https://v.douyin.com/...&lt;/code&gt;, &lt;code&gt;v.iesdouyin.com&lt;/code&gt;, bare hosts&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Profile batch download&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/user/{sec_uid}&lt;/code&gt; + &lt;code&gt;mode: [post, like, mix, music]&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Logged-in favorites collections&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/user/self?showTab=favorite_collection&lt;/code&gt; + &lt;code&gt;mode: [collect, collectmix]&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;No-watermark preferred&lt;/td&gt; 
   &lt;td&gt;Automatically selects watermark-free video source&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Highest-quality selection&lt;/td&gt; 
   &lt;td&gt;Auto-picks highest bitrate from &lt;code&gt;video.bit_rate&lt;/code&gt; ladder (video + live-photo)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Live stream recording&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;live.douyin.com/{room_id}&lt;/code&gt; → FLV/HLS, preserves partial data on stream end&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Comments collection&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Per-aweme comments (+ optional replies) saved as &lt;code&gt;*_comments.json&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Hot search + keyword search&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;--hot-board [N]&lt;/code&gt; / &lt;code&gt;--search &quot;keyword&quot;&lt;/code&gt; dumps to JSONL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;REST API server mode&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;--serve --serve-port 8000&lt;/code&gt; (optional &lt;code&gt;fastapi + uvicorn&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;strong&gt;Notification push&lt;/strong&gt;&lt;/td&gt; 
   &lt;td&gt;Bark / Telegram / Webhook on download completion&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Extra assets&lt;/td&gt; 
   &lt;td&gt;Cover, music, avatar, JSON metadata&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Video transcription&lt;/td&gt; 
   &lt;td&gt;Optional, using OpenAI Transcriptions API&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Concurrent downloads&lt;/td&gt; 
   &lt;td&gt;Configurable concurrency, default 5&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Retry with backoff&lt;/td&gt; 
   &lt;td&gt;Exponential backoff (1s, 2s, 5s)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Rate limiting&lt;/td&gt; 
   &lt;td&gt;Default 2 req/s&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;SQLite history&lt;/td&gt; 
   &lt;td&gt;Records download metadata; does not decide incremental skips&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Incremental downloads&lt;/td&gt; 
   &lt;td&gt;Disk-based skip/redownload via &lt;code&gt;increase.post/like/mix/music&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Time filters&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;start_time&lt;/code&gt; / &lt;code&gt;end_time&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Browser fallback&lt;/td&gt; 
   &lt;td&gt;Launches browser when pagination is blocked, manual CAPTCHA supported&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Download integrity check&lt;/td&gt; 
   &lt;td&gt;Content-Length validation, auto-cleanup of incomplete files&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Progress display&lt;/td&gt; 
   &lt;td&gt;Rich progress bars, supports &lt;code&gt;progress.quiet_logs&lt;/code&gt; quiet mode&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;Docker deployment&lt;/td&gt; 
   &lt;td&gt;Dockerfile included&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;CI/CD&lt;/td&gt; 
   &lt;td&gt;GitHub Actions for testing and linting&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h3&gt;Current Limitations&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Browser fallback is fully validated for &lt;code&gt;post&lt;/code&gt;; &lt;code&gt;like/mix/music&lt;/code&gt; currently relies on API pagination&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;number.allmix&lt;/code&gt; / &lt;code&gt;increase.allmix&lt;/code&gt; are retained as compatibility aliases and normalized to &lt;code&gt;mix&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;collect&lt;/code&gt; / &lt;code&gt;collectmix&lt;/code&gt; currently work for the account represented by the logged-in cookies only&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;collect&lt;/code&gt; / &lt;code&gt;collectmix&lt;/code&gt; must be used alone and cannot be combined with &lt;code&gt;post&lt;/code&gt; / &lt;code&gt;like&lt;/code&gt; / &lt;code&gt;mix&lt;/code&gt; / &lt;code&gt;music&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;increase&lt;/code&gt; currently applies to &lt;code&gt;post&lt;/code&gt; / &lt;code&gt;like&lt;/code&gt; / &lt;code&gt;mix&lt;/code&gt; / &lt;code&gt;music&lt;/code&gt;; favorites collection modes do not support incremental stop&lt;/li&gt; 
 &lt;li&gt;Live stream recording saves FLV natively; HLS sources only save the playlist (use ffmpeg for playable output)&lt;/li&gt; 
 &lt;li&gt;The webcast room endpoint is not verified against every live scenario — treat as experimental&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;Quick Start&lt;/h2&gt; 
&lt;h3&gt;1) Requirements&lt;/h3&gt; 
&lt;ul&gt; 
 &lt;li&gt;Python 3.8+&lt;/li&gt; 
 &lt;li&gt;macOS / Linux / Windows&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;2) Install dependencies&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install -r requirements.txt
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;For browser fallback and automatic cookie capture:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install playwright
python -m playwright install chromium
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;3) Copy config file&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cp config.example.yml config.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;4) Get cookies (recommended: automatic)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python -m tools.cookie_fetcher --config config.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;After logging into Douyin, return to the terminal and press Enter. Cookies will be written to your config automatically.&lt;/p&gt; 
&lt;h3&gt;5) Docker deployment (optional)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker build -t douyin-downloader .
docker run -v $(pwd)/config.yml:/app/config.yml -v $(pwd)/Downloaded:/app/Downloaded douyin-downloader
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Minimal Working Config&lt;/h2&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/user/MS4wLjABAAAAxxxx

path: ./Downloaded/
mode:
  - post

number:
  post: 0
  collect: 0
  collectmix: 0

thread: 5
retry_times: 3
proxy: &quot;&quot;
database: true
database_path: dy_downloader.db

progress:
  quiet_logs: true

cookies:
  msToken: &quot;&quot;
  ttwid: YOUR_TTWID
  odin_tt: YOUR_ODIN_TT
  passport_csrf_token: YOUR_CSRF_TOKEN
  sid_guard: &quot;&quot;

browser_fallback:
  enabled: true
  headless: false
  max_scrolls: 240
  idle_rounds: 8
  wait_timeout_seconds: 600

transcript:
  enabled: false
  model: gpt-4o-mini-transcribe
  output_dir: &quot;&quot;
  response_formats: [&quot;txt&quot;, &quot;json&quot;]
  api_url: https://api.openai.com/v1/audio/transcriptions
  api_key_env: OPENAI_API_KEY
  api_key: &quot;&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Usage&lt;/h2&gt; 
&lt;h3&gt;Run with a config file&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python run.py -c config.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Append CLI arguments&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python run.py -c config.yml \
  -u &quot;https://www.douyin.com/video/7604129988555574538&quot; \
  -t 8 \
  -p ./Downloaded
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Arguments&lt;/h3&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Argument&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;-u, --url&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Append download link(s), can be repeated&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;-c, --config&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Specify config file (default: &lt;code&gt;config.yml&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;-p, --path&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Specify download directory&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;-t, --thread&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Specify concurrency&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--show-warnings&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Show warning/error logs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;-v, --verbose&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Show info/warning/error logs&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--hot-board [N]&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Fetch Douyin hot search board and write JSONL; optional top-N&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--search KEYWORD&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Search videos by keyword, write JSONL&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--search-max N&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Max items for &lt;code&gt;--search&lt;/code&gt; (default 50)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--serve&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Run as REST API server (requires &lt;code&gt;pip install fastapi uvicorn&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--serve-host HOST&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;REST server listen host (default 127.0.0.1)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--serve-port PORT&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;REST server listen port (default 8000)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;--version&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Show version number&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Typical Scenarios&lt;/h2&gt; 
&lt;h3&gt;Download one video&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/video/7604129988555574538
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Download one image-note&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/note/7341234567890123456
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Download a collection&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/collection/7341234567890123456
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Download a music track&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/music/7341234567890123456
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Batch download a creator&#39;s posts&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/user/MS4wLjABAAAAxxxx
mode:
  - post
number:
  post: 50
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Batch download a creator&#39;s liked posts&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/user/MS4wLjABAAAAxxxx
mode:
  - like
number:
  like: 0    # 0 means download all
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Download multiple modes at once&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/user/MS4wLjABAAAAxxxx
mode:
  - post
  - like
  - mix
  - music
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Cross-mode deduplication: the same aweme_id won&#39;t be downloaded twice across different modes.&lt;/p&gt; 
&lt;h3&gt;Download logged-in favorites collection items&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/user/self?showTab=favorite_collection
mode:
  - collect
number:
  collect: 0
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Download logged-in collected mixes&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://www.douyin.com/user/self?showTab=favorite_collection
mode:
  - collectmix
number:
  collectmix: 0
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Record a live stream (experimental)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;link:
  - https://live.douyin.com/123456789   # or /follow/live/{room_id}
live:
  max_duration_seconds: 3600   # 0 = record until broadcaster ends
  chunk_size: 65536
  idle_timeout_seconds: 30
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;The recorder saves an FLV file under &lt;code&gt;Downloaded/{author}/live/&lt;/code&gt; plus a &lt;code&gt;*_room.json&lt;/code&gt; metadata snapshot. If the broadcaster ends the stream, network goes idle, or you Ctrl+C, any already-recorded bytes are preserved (the &lt;code&gt;.tmp&lt;/code&gt; file is promoted to the final file).&lt;/p&gt; 
&lt;h3&gt;Collect comments per aweme&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;comments:
  enabled: true
  include_replies: false   # true will fetch each comment&#39;s second-level replies (extra API calls)
  max_comments: 500        # 0 = no cap
  page_size: 20
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Generates a &lt;code&gt;{date}_{title}_{aweme_id}_comments.json&lt;/code&gt; next to the media file.&lt;/p&gt; 
&lt;h3&gt;Dump the hot search board&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python run.py --hot-board 30 -p ./Downloaded
# Output: ./Downloaded/hot_board/20260424_221530.jsonl
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Search by keyword&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python run.py --search &quot;猫咪&quot; --search-max 100 -p ./Downloaded
# Output: ./Downloaded/search/猫咪_20260424_221530.jsonl
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Run as REST API server&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pip install fastapi uvicorn       # one-time optional dep
python run.py --serve --serve-port 8000
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Endpoints:&lt;/p&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Method&lt;/th&gt; 
   &lt;th&gt;Path&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;POST&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/api/v1/download&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Submit &lt;code&gt;{&quot;url&quot;: &quot;...&quot;}&lt;/code&gt;, returns &lt;code&gt;{job_id, status}&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GET&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/api/v1/jobs/{job_id}&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Get a specific job&#39;s status/counts&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GET&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/api/v1/jobs&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;List recent jobs (TTL + capacity capped)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;GET&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;/api/v1/health&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Health probe&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;p&gt;Finished jobs are pruned by TTL (default 24h) and max-jobs (default 500) — in-flight jobs are never pruned. Configure via &lt;code&gt;server.max_jobs&lt;/code&gt; / &lt;code&gt;server.job_ttl_seconds&lt;/code&gt;.&lt;/p&gt; 
&lt;h3&gt;Send a notification on completion&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;notifications:
  enabled: true
  on_success: true
  on_failure: true
  providers:
    - type: bark
      url: https://api.day.app/YOUR_DEVICE_KEY
      sound: bell
    - type: telegram
      bot_token: &quot;123456:ABC...&quot;
      chat_id: &quot;987654321&quot;
    - type: webhook                 # works with 企业微信/飞书/钉钉 bot URLs too
      url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx
      extra_body:
        msgtype: text
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;All enabled providers are notified in parallel; a failing provider never blocks the download flow.&lt;/p&gt; 
&lt;h3&gt;Incremental download (disk-based)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;increase:
  post: true
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;With &lt;code&gt;true&lt;/code&gt;, the downloader skips an item only when its non-empty primary media already exists under the current download directory. Deleting the media file makes the next run download it again; SQLite history does not affect this decision.&lt;/p&gt; 
&lt;p&gt;Set a mode to &lt;code&gt;false&lt;/code&gt; to redownload and atomically replace existing files within the current number/date/media filters.&lt;/p&gt; 
&lt;h3&gt;Full crawl (no item limit)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;number:
  post: 0
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Optional Feature: Video Transcription (&lt;code&gt;transcript&lt;/code&gt;)&lt;/h2&gt; 
&lt;p&gt;Current behavior applies to &lt;strong&gt;video items only&lt;/strong&gt; (image-note items do not generate transcripts).&lt;/p&gt; 
&lt;h3&gt;1) Enable in config&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;transcript:
  enabled: true
  model: gpt-4o-mini-transcribe
  output_dir: &quot;&quot;        # empty: same folder as video; non-empty: mirrored to target dir
  response_formats:
    - txt
    - json
  api_key_env: OPENAI_API_KEY
  api_key: &quot;&quot;           # can be set directly, or via environment variable
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Recommended to provide key through environment variable:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;export OPENAI_API_KEY=&quot;sk-xxxx&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;2) Output files&lt;/h3&gt; 
&lt;p&gt;When enabled, it generates:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;xxx.transcript.txt&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;xxx.transcript.json&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If &lt;code&gt;database: true&lt;/code&gt;, job status is also recorded in SQLite table &lt;code&gt;transcript_job&lt;/code&gt; (&lt;code&gt;success/failed/skipped&lt;/code&gt;).&lt;/p&gt; 
&lt;h2&gt;Testing&lt;/h2&gt; 
&lt;p&gt;Recommended:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python3 -m pytest -q
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Plain &lt;code&gt;pytest&lt;/code&gt; is also supported now:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;pytest -q
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Key Config Fields&lt;/h2&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;Field&lt;/th&gt; 
   &lt;th&gt;Description&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Supports &lt;code&gt;post&lt;/code&gt;/&lt;code&gt;like&lt;/code&gt;/&lt;code&gt;mix&lt;/code&gt;/&lt;code&gt;music&lt;/code&gt;; logged-in favorites mode additionally supports standalone &lt;code&gt;collect&lt;/code&gt;/&lt;code&gt;collectmix&lt;/code&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;number.post/like/mix/music/collect/collectmix&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Per-mode download limit, 0 = unlimited&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;increase.post/like/mix/music&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;code&gt;true&lt;/code&gt;: skip existing primary media on disk; &lt;code&gt;false&lt;/code&gt;: redownload and overwrite current scope&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;start_time&lt;/code&gt; / &lt;code&gt;end_time&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Time filter (format: &lt;code&gt;YYYY-MM-DD&lt;/code&gt;)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;folderstyle&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Create per-item subdirectories&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;browser_fallback.*&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Browser fallback for &lt;code&gt;post&lt;/code&gt; when pagination is restricted&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;progress.quiet_logs&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Quiet logs during progress stage&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;transcript.*&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Optional transcription after video download&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;comments.*&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Per-aweme comments collection (opt-in)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;live.*&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Live stream recording options (max_duration_seconds / chunk_size / idle_timeout_seconds)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;notifications.*&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Bark/Telegram/Webhook push on completion&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;server.*&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;REST API server tuning (max_jobs, job_ttl_seconds)&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Optional HTTP/HTTPS proxy setting&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;database&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Enable SQLite deduplication and history&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;database_path&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;SQLite path, default is &lt;code&gt;dy_downloader.db&lt;/code&gt; in the current working directory&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;thread&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Concurrent download count&lt;/td&gt; 
  &lt;/tr&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;code&gt;retry_times&lt;/code&gt;&lt;/td&gt; 
   &lt;td&gt;Retry count on failure&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Output Structure&lt;/h2&gt; 
&lt;p&gt;Default with &lt;code&gt;folderstyle: true&lt;/code&gt; and &lt;code&gt;database_path: dy_downloader.db&lt;/code&gt;:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;workspace/
├── config.yml
├── dy_downloader.db          # default location when database: true
└── Downloaded/
    ├── download_manifest.jsonl
    ├── hot_board/                # when --hot-board is used
    │   └── 20260424_221530.jsonl
    ├── search/                   # when --search is used
    │   └── 猫咪_20260424_221530.jsonl
    └── AuthorName/
        ├── post/
        │   └── 2024-02-07_Title_aweme_id/
        │       ├── ...mp4
        │       ├── ..._cover.jpg
        │       ├── ..._music.mp3
        │       ├── ..._data.json
        │       ├── ..._avatar.jpg
        │       ├── ..._comments.json    # when comments.enabled
        │       ├── ...transcript.txt
        │       └── ...transcript.json
        ├── like/
        │   └── ...
        ├── mix/
        │   └── ...
        ├── music/
        │   └── ...
        ├── collect/
        │   └── ...
        ├── collectmix/
        │   └── ...
        └── live/                 # when recording live streams
            └── 2026-04-24_2215_LiveTitle_RoomId/
                ├── ...flv
                └── ..._room.json
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Re-downloading Content&lt;/h2&gt; 
&lt;p&gt;The program uses a &lt;strong&gt;database record + local file&lt;/strong&gt; dual check to decide whether to skip already-downloaded content. To force re-download, you need to clean up accordingly:&lt;/p&gt; 
&lt;h3&gt;Re-download a specific item&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Delete local files (folder name contains the aweme_id)
rm -rf Downloaded/AuthorName/post/*_&amp;lt;aweme_id&amp;gt;/

# Delete database record
sqlite3 dy_downloader.db &quot;DELETE FROM aweme WHERE aweme_id = &#39;&amp;lt;aweme_id&amp;gt;&#39;;&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Re-download all items from a specific author&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;rm -rf Downloaded/AuthorName/
sqlite3 dy_downloader.db &quot;DELETE FROM aweme WHERE author_name = &#39;AuthorName&#39;;&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;Full reset (re-download everything)&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;rm -rf Downloaded/
rm dy_downloader.db
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Deleting only the database but keeping files will NOT trigger re-download — the program scans local filenames for aweme_id to detect existing downloads. Deleting only files but keeping the database WILL trigger re-download (the program treats &quot;in DB but missing locally&quot; as needing retry).&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;h2&gt;FAQ&lt;/h2&gt; 
&lt;h3&gt;1) Why do I only get around 20 posts?&lt;/h3&gt; 
&lt;p&gt;This is a common pagination risk-control behavior. Make sure:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;browser_fallback.enabled: true&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;browser_fallback.headless: false&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;complete verification manually in the browser popup, and do not close it too early&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;2) Why is the progress output noisy/repeated?&lt;/h3&gt; 
&lt;p&gt;By default, &lt;code&gt;progress.quiet_logs: true&lt;/code&gt; suppresses logs during progress stage.&lt;br /&gt; Use &lt;code&gt;--show-warnings&lt;/code&gt; or &lt;code&gt;-v&lt;/code&gt; temporarily when debugging.&lt;/p&gt; 
&lt;h3&gt;3) What if cookies are expired?&lt;/h3&gt; 
&lt;p&gt;Run:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;python -m tools.cookie_fetcher --config config.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3&gt;4) Why are transcript files not generated?&lt;/h3&gt; 
&lt;p&gt;Check in order:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;whether &lt;code&gt;transcript.enabled&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;whether downloaded items are videos (image-notes are not transcribed)&lt;/li&gt; 
 &lt;li&gt;whether &lt;code&gt;OPENAI_API_KEY&lt;/code&gt; (or &lt;code&gt;transcript.api_key&lt;/code&gt;) is valid&lt;/li&gt; 
 &lt;li&gt;whether &lt;code&gt;response_formats&lt;/code&gt; includes &lt;code&gt;txt&lt;/code&gt; or &lt;code&gt;json&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;5) How to view download history?&lt;/h3&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sqlite3 dy_downloader.db &quot;SELECT aweme_id, title, author_name, datetime(download_time, &#39;unixepoch&#39;, &#39;localtime&#39;) FROM aweme ORDER BY download_time DESC LIMIT 20;&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Community Group&lt;/h2&gt; 
&lt;img src=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/img/fuye.jpg&quot; alt=&quot;qun&quot; width=&quot;240&quot; /&gt; 
&lt;p&gt;点击链接加入群聊【QQ群】：&lt;a href=&quot;https://qm.qq.com/q/9xoNt8Wzv4&quot;&gt;https://qm.qq.com/q/9xoNt8Wzv4&lt;/a&gt;&lt;/p&gt; 
&lt;h2&gt;Disclaimer&lt;/h2&gt; 
&lt;p&gt;This project is for technical research, learning, and personal data management only. Please use it legally and responsibly:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Do not use it to infringe others&#39; privacy, copyright, or other legal rights&lt;/li&gt; 
 &lt;li&gt;Do not use it for any illegal purpose&lt;/li&gt; 
 &lt;li&gt;Users are solely responsible for all risks and liabilities arising from usage&lt;/li&gt; 
 &lt;li&gt;If platform policies or interfaces change and features break, this is a normal technical risk&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;By continuing to use this project, you acknowledge and accept the statements above.&lt;/p&gt; 
&lt;h2&gt;License&lt;/h2&gt; 
&lt;p&gt;This project is licensed under the MIT License. See &lt;a href=&quot;https://raw.githubusercontent.com/jiji262/douyin-downloader/main/LICENSE&quot;&gt;LICENSE&lt;/a&gt; for details.&lt;/p&gt; 
&lt;h2&gt;Friendly Links&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://linux.do/&quot;&gt;LINUX DO&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/85f6540ce9555938708efb16756847cb46be86732c0f06cf17af3929ce95f7c6/jiji262/douyin-downloader" medium="image" />
      
    </item>
    
    <item>
      <title>Swordfish90/cool-retro-term</title>
      <link>https://github.com/Swordfish90/cool-retro-term</link>
      <description>&lt;p&gt;A good looking terminal emulator which mimics the old cathode display...&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;cool-retro-term&lt;/h1&gt; 
&lt;table&gt; 
 &lt;thead&gt; 
  &lt;tr&gt; 
   &lt;th&gt;&amp;gt; Default Amber&lt;/th&gt; 
   &lt;th&gt;C:\ IBM DOS&lt;/th&gt; 
   &lt;th&gt;$ Default Green&lt;/th&gt; 
  &lt;/tr&gt; 
 &lt;/thead&gt; 
 &lt;tbody&gt; 
  &lt;tr&gt; 
   &lt;td&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/121322/32070717-16708784-ba42-11e7-8572-a8fcc10d7f7d.gif&quot; alt=&quot;Default Amber Cool Retro Term&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/121322/32070716-16567e5c-ba42-11e7-9e64-ba96dfe9b64d.gif&quot; alt=&quot;IBM DOS&quot; /&gt;&lt;/td&gt; 
   &lt;td&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/121322/32070715-163a1c94-ba42-11e7-80bb-41fbf10fc634.gif&quot; alt=&quot;Default Green Cool Retro Term&quot; /&gt;&lt;/td&gt; 
  &lt;/tr&gt; 
 &lt;/tbody&gt; 
&lt;/table&gt; 
&lt;h2&gt;Description&lt;/h2&gt; 
&lt;p&gt;cool-retro-term is a terminal emulator which mimics the look and feel of the old cathode tube screens. It has been designed to be eye-candy, customizable, and reasonably lightweight.&lt;/p&gt; 
&lt;p&gt;It uses the QML port of qtermwidget (Konsole): &lt;a href=&quot;https://github.com/Swordfish90/qmltermwidget&quot;&gt;https://github.com/Swordfish90/qmltermwidget&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;This terminal emulator works under Linux and macOS and requires Qt6.&lt;/p&gt; 
&lt;p&gt;Settings such as colors, fonts, and effects can be accessed via context menu.&lt;/p&gt; 
&lt;h2&gt;Screenshots&lt;/h2&gt; 
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/TNumkDn.png&quot; alt=&quot;Image&quot; /&gt; &lt;img src=&quot;https://i.imgur.com/hfjWOM4.png&quot; alt=&quot;Image&quot; /&gt; &lt;img src=&quot;https://i.imgur.com/GYRDPzJ.jpg&quot; alt=&quot;Image&quot; /&gt;&lt;/p&gt; 
&lt;h2&gt;Install&lt;/h2&gt; 
&lt;p&gt;If you want to get a hold of the latest version, just go to the Releases page and grab the latest AppImage (Linux) or dmg (macOS).&lt;/p&gt; 
&lt;p&gt;Alternatively, most distributions such as Ubuntu, Fedora or Arch already package cool-retro-term in their official repositories.&lt;/p&gt; 
&lt;h2&gt;Building&lt;/h2&gt; 
&lt;p&gt;Check out the wiki and follow the instructions on how to build it on &lt;a href=&quot;https://github.com/Swordfish90/cool-retro-term/wiki/Build-Instructions-(Linux)&quot;&gt;Linux&lt;/a&gt; and &lt;a href=&quot;https://github.com/Swordfish90/cool-retro-term/wiki/Build-Instructions-(macOS)&quot;&gt;macOS&lt;/a&gt;.&lt;/p&gt;</description>
      
      <media:content url="https://opengraph.githubassets.com/40c74ffba2b73c9102b8790d4c594bd5b9b935fe478e540bae58a395b28b424d/Swordfish90/cool-retro-term" medium="image" />
      
    </item>
    
    <item>
      <title>huggingface/transformers</title>
      <link>https://github.com/huggingface/transformers</link>
      <description>&lt;p&gt;🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://mshibanami.github.io/GitHubTrendingRSS/assets/icons/link.png&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;link&quot; style=&quot;margin: 0 8px 0 0; padding: 0; display: inline-block; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;https://huggingface.co/transformers&quot;&gt;https://huggingface.co/transformers&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p align=&quot;center&quot;&gt; 
 &lt;picture&gt; 
  &lt;source media=&quot;(prefers-color-scheme: dark)&quot; srcset=&quot;https://huggingface.co/datasets/huggingface/documentation-images/raw/main/transformers-logo-dark.svg&quot; /&gt; 
  &lt;source media=&quot;(prefers-color-scheme: light)&quot; srcset=&quot;https://huggingface.co/datasets/huggingface/documentation-images/raw/main/transformers-logo-light.svg&quot; /&gt; 
  &lt;img alt=&quot;Hugging Face Transformers Library&quot; src=&quot;https://huggingface.co/datasets/huggingface/documentation-images/raw/main/transformers-logo-light.svg?sanitize=true&quot; width=&quot;352&quot; height=&quot;59&quot; style=&quot;max-width: 100%;&quot; /&gt; 
 &lt;/picture&gt; &lt;br /&gt; &lt;br /&gt; &lt;/p&gt; 
&lt;p align=&quot;center&quot;&gt; &lt;a href=&quot;https://huggingface.com/models&quot;&gt;&lt;img alt=&quot;Checkpoints on Hub&quot; src=&quot;https://img.shields.io/endpoint?url=https://huggingface.co/api/shields/models&amp;amp;color=brightgreen&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://circleci.com/gh/huggingface/transformers&quot;&gt;&lt;img alt=&quot;Build&quot; src=&quot;https://img.shields.io/circleci/build/github/huggingface/transformers/main&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/huggingface/transformers/raw/main/LICENSE&quot;&gt;&lt;img alt=&quot;GitHub&quot; src=&quot;https://img.shields.io/github/license/huggingface/transformers.svg?color=blue&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://huggingface.co/docs/transformers/index&quot;&gt;&lt;img alt=&quot;Documentation&quot; src=&quot;https://img.shields.io/website/http/huggingface.co/docs/transformers/index.svg?down_color=red&amp;amp;down_message=offline&amp;amp;up_message=online&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/huggingface/transformers/releases&quot;&gt;&lt;img alt=&quot;GitHub release&quot; src=&quot;https://img.shields.io/github/release/huggingface/transformers.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/huggingface/transformers/raw/main/CODE_OF_CONDUCT.md&quot;&gt;&lt;img alt=&quot;Contributor Covenant&quot; src=&quot;https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg?sanitize=true&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://zenodo.org/badge/latestdoi/155220641&quot;&gt;&lt;img src=&quot;https://zenodo.org/badge/155220641.svg?sanitize=true&quot; alt=&quot;DOI&quot; /&gt;&lt;/a&gt; &lt;/p&gt; 
&lt;h4 align=&quot;center&quot;&gt; &lt;p&gt; &lt;b&gt;English&lt;/b&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_zh-hans.md&quot;&gt;简体中文&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_zh-hant.md&quot;&gt;繁體中文&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_ko.md&quot;&gt;한국어&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_es.md&quot;&gt;Español&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_ja.md&quot;&gt;日本語&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_hd.md&quot;&gt;हिन्दी&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_ru.md&quot;&gt;Русский&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_pt-br.md&quot;&gt;Português&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_te.md&quot;&gt;తెలుగు&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_fr.md&quot;&gt;Français&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_de.md&quot;&gt;Deutsch&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_it.md&quot;&gt;Italiano&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_vi.md&quot;&gt;Tiếng Việt&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_ar.md&quot;&gt;العربية&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_ur.md&quot;&gt;اردو&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_bn.md&quot;&gt;বাংলা&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_fa.md&quot;&gt;فارسی&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_ro.md&quot;&gt;Română&lt;/a&gt; | &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/i18n/README_tr.md&quot;&gt;Türkçe&lt;/a&gt; &lt;/p&gt; &lt;/h4&gt; 
&lt;h3 align=&quot;center&quot;&gt; &lt;p&gt;State-of-the-art pretrained models for inference and training&lt;/p&gt; &lt;/h3&gt; 
&lt;h3 align=&quot;center&quot;&gt; &lt;img src=&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/transformers_as_a_model_definition.png&quot; /&gt; &lt;/h3&gt; 
&lt;p&gt;Transformers acts as the model-definition framework for state-of-the-art machine learning with text, computer vision, audio, video, and multimodal models, for both inference and training.&lt;/p&gt; 
&lt;p&gt;It centralizes the model definition so that this definition is agreed upon across the ecosystem. &lt;code&gt;transformers&lt;/code&gt; is the pivot across frameworks: if a model definition is supported, it will be compatible with the majority of training frameworks (Axolotl, Unsloth, DeepSpeed, FSDP, PyTorch-Lightning, ...), inference engines (vLLM, SGLang, TGI, ...), and adjacent modeling libraries (llama.cpp, mlx, ...) which leverage the model definition from &lt;code&gt;transformers&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;We pledge to help support new state-of-the-art models and democratize their usage by having their model definition be simple, customizable, and efficient.&lt;/p&gt; 
&lt;p&gt;There are over 1M+ Transformers &lt;a href=&quot;https://huggingface.co/models?library=transformers&amp;amp;sort=trending&quot;&gt;model checkpoints&lt;/a&gt; on the &lt;a href=&quot;https://huggingface.co/models&quot;&gt;Hugging Face Hub&lt;/a&gt; you can use.&lt;/p&gt; 
&lt;p&gt;Explore the &lt;a href=&quot;https://huggingface.co/&quot;&gt;Hub&lt;/a&gt; today to find a model and use Transformers to help you get started right away.&lt;/p&gt; 
&lt;h2&gt;Installation&lt;/h2&gt; 
&lt;p&gt;Transformers works with Python 3.10+, and &lt;a href=&quot;https://pytorch.org/get-started/locally/&quot;&gt;PyTorch&lt;/a&gt; 2.5+.&lt;/p&gt; 
&lt;p&gt;Create and activate a virtual environment with &lt;a href=&quot;https://docs.python.org/3/library/venv.html&quot;&gt;venv&lt;/a&gt; or &lt;a href=&quot;https://docs.astral.sh/uv/&quot;&gt;uv&lt;/a&gt;, a fast Rust-based Python package and project manager.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;# venv
python -m venv .my-env
source .my-env/bin/activate
# uv
uv venv .my-env
source .my-env/bin/activate
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Install Transformers in your virtual environment.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;# pip
pip install &quot;transformers[torch]&quot;

# uv
uv pip install &quot;transformers[torch]&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Install Transformers from source if you want the latest changes in the library or are interested in contributing. However, the &lt;em&gt;latest&lt;/em&gt; version may not be stable. Feel free to open an &lt;a href=&quot;https://github.com/huggingface/transformers/issues&quot;&gt;issue&lt;/a&gt; if you encounter an error.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;git clone https://github.com/huggingface/transformers.git
cd transformers

# pip
pip install &#39;.[torch]&#39;

# uv
uv pip install &#39;.[torch]&#39;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;Quickstart&lt;/h2&gt; 
&lt;p&gt;Get started with Transformers right away with the &lt;a href=&quot;https://huggingface.co/docs/transformers/pipeline_tutorial&quot;&gt;Pipeline&lt;/a&gt; API. The &lt;code&gt;Pipeline&lt;/code&gt; is a high-level inference class that supports text, audio, vision, and multimodal tasks. It handles preprocessing the input and returns the appropriate output.&lt;/p&gt; 
&lt;p&gt;Instantiate a pipeline and specify model to use for text generation. The model is downloaded and cached so you can easily reuse it again. Finally, pass some text to prompt the model.&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;from transformers import pipeline

pipeline = pipeline(task=&quot;text-generation&quot;, model=&quot;Qwen/Qwen2.5-1.5B&quot;)
pipeline(&quot;the secret to baking a really good cake is &quot;)
[{&#39;generated_text&#39;: &#39;the secret to baking a really good cake is 1) to use the right ingredients and 2) to follow the recipe exactly. the recipe for the cake is as follows: 1 cup of sugar, 1 cup of flour, 1 cup of milk, 1 cup of butter, 1 cup of eggs, 1 cup of chocolate chips. if you want to make 2 cakes, how much sugar do you need? To make 2 cakes, you will need 2 cups of sugar.&#39;}]
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;To chat with a model, the usage pattern is the same. The only difference is you need to construct a chat history (the input to &lt;code&gt;Pipeline&lt;/code&gt;) between you and the system.&lt;/p&gt; 
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot;&gt;
 &lt;p class=&quot;markdown-alert-title&quot;&gt;
  &lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;
   &lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;
  &lt;/svg&gt;Tip&lt;/p&gt;
 &lt;p&gt;You can also chat with a model directly from the command line, as long as &lt;a href=&quot;https://huggingface.co/docs/transformers/main/en/serving&quot;&gt;&lt;code&gt;transformers serve&lt;/code&gt; is running&lt;/a&gt;.&lt;/p&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-shell&quot;&gt;transformers chat Qwen/Qwen2.5-0.5B-Instruct
&lt;/code&gt;&lt;/pre&gt; 
&lt;/div&gt; 
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;import torch
from transformers import pipeline

chat = [
    {&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;You are a sassy, wise-cracking robot as imagined by Hollywood circa 1986.&quot;},
    {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Hey, can you tell me any fun things to do in New York?&quot;}
]

pipeline = pipeline(task=&quot;text-generation&quot;, model=&quot;meta-llama/Meta-Llama-3-8B-Instruct&quot;, dtype=torch.bfloat16, device_map=&quot;auto&quot;)
response = pipeline(chat, max_new_tokens=512)
print(response[0][&quot;generated_text&quot;][-1][&quot;content&quot;])
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Expand the examples below to see how &lt;code&gt;Pipeline&lt;/code&gt; works for different modalities and tasks.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;Automatic speech recognition&lt;/summary&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;from transformers import pipeline

pipeline = pipeline(task=&quot;automatic-speech-recognition&quot;, model=&quot;openai/whisper-large-v3&quot;)
pipeline(&quot;https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac&quot;)
{&#39;text&#39;: &#39; I have a dream that one day this nation will rise up and live out the true meaning of its creed.&#39;}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;Image classification&lt;/summary&gt; 
 &lt;h3 align=&quot;center&quot;&gt; &lt;a&gt;&lt;img src=&quot;https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png&quot; /&gt;&lt;/a&gt; &lt;/h3&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;from transformers import pipeline

pipeline = pipeline(task=&quot;image-classification&quot;, model=&quot;facebook/dinov2-small-imagenet1k-1-layer&quot;)
pipeline(&quot;https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png&quot;)
[{&#39;label&#39;: &#39;macaw&#39;, &#39;score&#39;: 0.997848391532898},
 {&#39;label&#39;: &#39;sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita&#39;,
  &#39;score&#39;: 0.0016551691805943847},
 {&#39;label&#39;: &#39;lorikeet&#39;, &#39;score&#39;: 0.00018523589824326336},
 {&#39;label&#39;: &#39;African grey, African gray, Psittacus erithacus&#39;,
  &#39;score&#39;: 7.85409429227002e-05},
 {&#39;label&#39;: &#39;quail&#39;, &#39;score&#39;: 5.502637941390276e-05}]
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;Visual question answering&lt;/summary&gt; 
 &lt;h3 align=&quot;center&quot;&gt; &lt;a&gt;&lt;img src=&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/idefics-few-shot.jpg&quot; /&gt;&lt;/a&gt; &lt;/h3&gt; 
 &lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;from transformers import pipeline

pipeline = pipeline(task=&quot;visual-question-answering&quot;, model=&quot;Salesforce/blip-vqa-base&quot;)
pipeline(
    image=&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/idefics-few-shot.jpg&quot;,
    question=&quot;What is in the image?&quot;,
)
[{&#39;answer&#39;: &#39;statue of liberty&#39;}]
&lt;/code&gt;&lt;/pre&gt; 
&lt;/details&gt; 
&lt;h2&gt;Why should I use Transformers?&lt;/h2&gt; 
&lt;ol&gt; 
 &lt;li&gt; &lt;p&gt;Easy-to-use state-of-the-art models:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;High performance on natural language understanding &amp;amp; generation, computer vision, audio, video, and multimodal tasks.&lt;/li&gt; 
   &lt;li&gt;Low barrier to entry for researchers, engineers, and developers.&lt;/li&gt; 
   &lt;li&gt;Few user-facing abstractions with just three classes to learn.&lt;/li&gt; 
   &lt;li&gt;A unified API for using all our pretrained models.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Lower compute costs, smaller carbon footprint:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Share trained models instead of training from scratch.&lt;/li&gt; 
   &lt;li&gt;Reduce compute time and production costs.&lt;/li&gt; 
   &lt;li&gt;Hundreds of model architectures with 1M+ pretrained checkpoints across all modalities.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Choose the right framework for every part of a model&#39;s lifetime:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Train state-of-the-art models in 3 lines of code.&lt;/li&gt; 
   &lt;li&gt;Move a single model between PyTorch/JAX/TF2.0 frameworks at will.&lt;/li&gt; 
   &lt;li&gt;Pick the right framework for training, evaluation, and production.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt; &lt;p&gt;Easily customize a model or an example to your needs:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;We provide examples for each architecture to reproduce the results published by its original authors.&lt;/li&gt; 
   &lt;li&gt;Model internals are exposed as consistently as possible.&lt;/li&gt; 
   &lt;li&gt;Model files can be used independently of the library for quick experiments.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;a target=&quot;_blank&quot; href=&quot;https://huggingface.co/enterprise&quot;&gt; &lt;img alt=&quot;Hugging Face Enterprise Hub&quot; src=&quot;https://github.com/user-attachments/assets/247fb16d-d251-4583-96c4-d3d76dda4925&quot; /&gt; &lt;/a&gt;
&lt;br /&gt; 
&lt;h2&gt;When shouldn&#39;t I use Transformers?&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;This library is not a modular toolbox of building blocks for neural nets. The code in the model files is not refactored with additional abstractions on purpose, so that researchers can quickly iterate on each of the models without diving into additional abstractions/files.&lt;/li&gt; 
 &lt;li&gt;The training API is optimized to work with PyTorch models provided by Transformers. For generic machine learning loops, you should use another library like &lt;a href=&quot;https://huggingface.co/docs/accelerate&quot;&gt;Accelerate&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;The &lt;a href=&quot;https://github.com/huggingface/transformers/tree/main/examples&quot;&gt;example scripts&lt;/a&gt; are only &lt;em&gt;examples&lt;/em&gt;. They may not necessarily work out-of-the-box on your specific use case and you&#39;ll need to adapt the code for it to work.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;100 projects using Transformers&lt;/h2&gt; 
&lt;p&gt;Transformers is more than a toolkit to use pretrained models, it&#39;s a community of projects built around it and the Hugging Face Hub. We want Transformers to enable developers, researchers, students, professors, engineers, and anyone else to build their dream projects.&lt;/p&gt; 
&lt;p&gt;In order to celebrate Transformers 100,000 stars, we wanted to put the spotlight on the community with the &lt;a href=&quot;https://raw.githubusercontent.com/huggingface/transformers/main/awesome-transformers.md&quot;&gt;awesome-transformers&lt;/a&gt; page which lists 100 incredible projects built with Transformers.&lt;/p&gt; 
&lt;p&gt;If you own or use a project that you believe should be part of the list, please open a PR to add it!&lt;/p&gt; 
&lt;h2&gt;Example models&lt;/h2&gt; 
&lt;p&gt;You can test most of our models directly on their &lt;a href=&quot;https://huggingface.co/models&quot;&gt;Hub model pages&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Expand each modality below to see a few example models for various use cases.&lt;/p&gt; 
&lt;details&gt; 
 &lt;summary&gt;Audio&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Audio classification with &lt;a href=&quot;https://huggingface.co/laion/clap-htsat-fused&quot;&gt;CLAP&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Automatic speech recognition with &lt;a href=&quot;https://huggingface.co/nvidia/parakeet-ctc-1.1b#transcribing-using-transformers-%F0%9F%A4%97&quot;&gt;Parakeet&lt;/a&gt;, &lt;a href=&quot;https://huggingface.co/openai/whisper-large-v3-turbo&quot;&gt;Whisper&lt;/a&gt;, &lt;a href=&quot;https://huggingface.co/zai-org/GLM-ASR-Nano-2512&quot;&gt;GLM-ASR&lt;/a&gt; and &lt;a href=&quot;https://huggingface.co/UsefulSensors/moonshine-streaming-medium&quot;&gt;Moonshine-Streaming&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Keyword spotting with &lt;a href=&quot;https://huggingface.co/superb/wav2vec2-base-superb-ks&quot;&gt;Wav2Vec2&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Speech to speech generation with &lt;a href=&quot;https://huggingface.co/kyutai/moshiko-pytorch-bf16&quot;&gt;Moshi&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Text to audio with &lt;a href=&quot;https://huggingface.co/facebook/musicgen-large&quot;&gt;MusicGen&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Text to speech with &lt;a href=&quot;https://huggingface.co/sesame/csm-1b&quot;&gt;CSM&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;Computer vision&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Automatic mask generation with &lt;a href=&quot;https://huggingface.co/facebook/sam-vit-base&quot;&gt;SAM&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Depth estimation with &lt;a href=&quot;https://huggingface.co/apple/DepthPro-hf&quot;&gt;DepthPro&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Image classification with &lt;a href=&quot;https://huggingface.co/facebook/dinov2-base&quot;&gt;DINO v2&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Keypoint detection with &lt;a href=&quot;https://huggingface.co/magic-leap-community/superpoint&quot;&gt;SuperPoint&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Keypoint matching with &lt;a href=&quot;https://huggingface.co/magic-leap-community/superglue_outdoor&quot;&gt;SuperGlue&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Object detection with &lt;a href=&quot;https://huggingface.co/PekingU/rtdetr_v2_r50vd&quot;&gt;RT-DETRv2&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Pose Estimation with &lt;a href=&quot;https://huggingface.co/usyd-community/vitpose-base-simple&quot;&gt;VitPose&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Universal segmentation with &lt;a href=&quot;https://huggingface.co/shi-labs/oneformer_ade20k_swin_large&quot;&gt;OneFormer&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Video classification with &lt;a href=&quot;https://huggingface.co/MCG-NJU/videomae-large&quot;&gt;VideoMAE&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;Multimodal&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Audio or text to text with &lt;a href=&quot;https://huggingface.co/mistralai/Voxtral-Mini-3B-2507&quot;&gt;Voxtral&lt;/a&gt;, &lt;a href=&quot;https://huggingface.co/nvidia/audio-flamingo-3-hf&quot;&gt;Audio Flamingo&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Document question answering with &lt;a href=&quot;https://huggingface.co/microsoft/layoutlmv3-base&quot;&gt;LayoutLMv3&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Image or text to text with &lt;a href=&quot;https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct&quot;&gt;Qwen-VL&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Image captioning &lt;a href=&quot;https://huggingface.co/Salesforce/blip2-opt-2.7b&quot;&gt;BLIP-2&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;OCR-based document understanding with &lt;a href=&quot;https://huggingface.co/stepfun-ai/GOT-OCR-2.0-hf&quot;&gt;GOT-OCR2&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Table question answering with &lt;a href=&quot;https://huggingface.co/google/tapas-base&quot;&gt;TAPAS&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Unified multimodal understanding and generation with &lt;a href=&quot;https://huggingface.co/BAAI/Emu3-Gen&quot;&gt;Emu3&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Vision to text with &lt;a href=&quot;https://huggingface.co/llava-hf/llava-onevision-qwen2-0.5b-ov-hf&quot;&gt;Llava-OneVision&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Visual question answering with &lt;a href=&quot;https://huggingface.co/llava-hf/llava-1.5-7b-hf&quot;&gt;Llava&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Visual referring expression segmentation with &lt;a href=&quot;https://huggingface.co/microsoft/kosmos-2-patch14-224&quot;&gt;Kosmos-2&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;details&gt; 
 &lt;summary&gt;NLP&lt;/summary&gt; 
 &lt;ul&gt; 
  &lt;li&gt;Masked word completion with &lt;a href=&quot;https://huggingface.co/answerdotai/ModernBERT-base&quot;&gt;ModernBERT&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Named entity recognition with &lt;a href=&quot;https://huggingface.co/google/gemma-2-2b&quot;&gt;Gemma&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Question answering with &lt;a href=&quot;https://huggingface.co/mistralai/Mixtral-8x7B-v0.1&quot;&gt;Mixtral&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Summarization with &lt;a href=&quot;https://huggingface.co/facebook/bart-large-cnn&quot;&gt;BART&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Translation with &lt;a href=&quot;https://huggingface.co/google-t5/t5-base&quot;&gt;T5&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Text generation with &lt;a href=&quot;https://huggingface.co/meta-llama/Llama-3.2-1B&quot;&gt;Llama&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;Text classification with &lt;a href=&quot;https://huggingface.co/Qwen/Qwen2.5-0.5B&quot;&gt;Qwen&lt;/a&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/details&gt; 
&lt;h2&gt;Citation&lt;/h2&gt; 
&lt;p&gt;We now have a &lt;a href=&quot;https://aclanthology.org/2020.emnlp-demos.6/&quot;&gt;paper&lt;/a&gt; you can cite for the 🤗 Transformers library:&lt;/p&gt; 
&lt;pre&gt;&lt;code class=&quot;language-bibtex&quot;&gt;@inproceedings{wolf-etal-2020-transformers,
    title = &quot;Transformers: State-of-the-Art Natural Language Processing&quot;,
    author = &quot;Thomas Wolf and Lysandre Debut and Victor Sanh and Julien Chaumond and Clement Delangue and Anthony Moi and Pierric Cistac and Tim Rault and Rémi Louf and Morgan Funtowicz and Joe Davison and Sam Shleifer and Patrick von Platen and Clara Ma and Yacine Jernite and Julien Plu and Canwen Xu and Teven Le Scao and Sylvain Gugger and Mariama Drame and Quentin Lhoest and Alexander M. Rush&quot;,
    booktitle = &quot;Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations&quot;,
    month = oct,
    year = &quot;2020&quot;,
    address = &quot;Online&quot;,
    publisher = &quot;Association for Computational Linguistics&quot;,
    url = &quot;https://aclanthology.org/2020.emnlp-demos.6/&quot;,
    pages = &quot;38--45&quot;
}
&lt;/code&gt;&lt;/pre&gt;</description>
      
      <media:content url="https://repository-images.githubusercontent.com/155220641/a16c4880-a501-11ea-9e8f-646cf611702e" medium="image" />
      
    </item>
    
  </channel>
</rss>
