# Yiğit Konur This site is bilingual. English is available at the root and Turkish is available under /tr. The homepage is a personal workshop. /writing is the complete essay archive. Framework Atlas is an English directory of verified coding-workflow extensions. ## [en] AI YouTube Channels to Follow in 2026: 185 Ranked by Signal URL: https://yigitkonur.com/research/ai-youtube-channels-to-follow-2026 Kind: research-report Published: 2026-07-13 Updated: Mon Jul 13 | Snapshot | Notes | | --- | --- | | Coverage | Roughly `185 channels` across `24 active thematic tiers`, plus a legacy tier, graveyard, blacklist, and not-admitted log | | Primary signals | User-supplied live scrape from `2026-07-12/13`, recent views over approximately the latest 15 public uploads, three research synthesis passes, channel activity, and attributed Reddit reputation signals | | Bottom line | Rank a feed by `recent reach × recency × signal quality × verification`, not subscriber count; mix evergreen curricula with a small active frontier and work-specific stack | ## Executive Summary Choosing who to follow in AI YouTube in 2026 feels like navigating a minefield. There are eight-million-subscriber legends who have not uploaded in a year, a 763K-subscriber channel pulling roughly 2.7K views per video, and a wall of daily “SHOCKING!!! AGI IS HERE!!!” thumbnails engineered to eat an evening. Meanwhile, a useful feed has to make decisions quickly. This report starts from a user-supplied research corpus that live-scraped 68 core channels across **2026-07-12/13**, merged those results with three deep-research passes, reconciled conflicting stats channel by channel, de-duplicated alias collisions such as “[Token Chaser](https://www.youtube.com/@tokenchaser)” versus “Token Chasers,” and expanded the set into roughly **185 distinct channels across 24 active thematic tiers**. A separately labeled legacy tier sits inside the graveyard section and is preserved rather than renumbered away. This is not a “top 10 AI YouTubers” list. It separates recency from signal quality and verification, preserves Reddit warnings alongside positive recommendations, distinguishes live feeds from evergreen reference libraries, and ends with curated stacks for foundations, research awareness, daily news, local models, agentic engineering, and image/video systems. The most important result is the gap between subscriber badges and current reach. [Fahd Mirza](https://www.youtube.com/@fahdmirza) has 763K subscribers and averages roughly 2.7K recent views; [Anthropic](https://www.youtube.com/@anthropic-ai) has 732K subscribers and averages roughly 315K. Similar badges, about **115×** difference in recent reach. Depth can also scale: [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) averages roughly 309K on long technical interviews, while [bycloud](https://www.youtube.com/@bycloudAI) averages roughly 83K on architecture explainers. Every minimum, maximum, and average view figure in this report is computed over approximately each channel’s **latest 15 public uploads**, not lifetime performance. Dormant channels can therefore show large averages carried by evergreen hits, while daily channels reveal their current pull. [Karpathy](https://www.youtube.com/@AndrejKarpathy)’s roughly 2.06M average is the gravity of a remarkable back catalog, not evidence of a current publishing feed. > **Provenance note:** The underlying dataset was supplied by the user and produced through guided deep research plus live scraping. I transformed it into this report structure, preserved its honesty flags, and did not independently re-scrape or silently replace missing data. Every `❓` remains a claim the source corpus could not verify. ## How to Use This Report The report is intentionally long. Use the route that matches the decision in front of you. | Your situation | Start here | Typical time | | --- | --- | ---: | | “I want to understand the math.” | Part 1: The Foundations | 20 min | | “Keep me research-aware without living on arXiv.” | Part 2: The Frontier | 15 min | | “Tell me what happened today.” | Part 3: The News Diet | 10 min | | “I am building a local LLM rig.” | Part 4: The Hardware Truth | 15 min | | “I ship code with agents daily.” | Part 5: The Builders | 15 min | | “I make images, video, or weird programs.” | Part 6: The Creators | 10 min | | “Who should I unfollow?” | Part 7: The Graveyard and the Blacklist | 5 min | | “Just give me the stacks.” | Part 8: Subscription Strategy | 5 min | ## Evaluation Framework Every channel carries three grades. They answer different questions, and collapsing them into one score is how a feed fills with channels nobody watches. **Recency — is this a live feed or a museum?** - 🔥 posted this week - ✅ posted this month - 🐢 posted within one to three months - 💤 four months or more, effectively dormant as a feed **Signal quality — what does the content deliver?** - 🟢 high-signal, deep, or low-hype - 🟡 solid and practical, but mixed - 🔴 hype-flagged or contested in the supplied Reddit synthesis **Verification — did the data survive scraping?** - ❓ the channel page failed across Jina, Scrape.do, and Kernel during this pass; the report flags those metrics instead of guessing ### Why Subscriber Counts Lie The subscriber count is an archaeological artifact: it says a channel was worth subscribing to at some point. The recent-view average is a stronger signal of whether it deserves space in a feed now. The comparisons below therefore emphasize **recent-view average × recency × signal grade**, with verification status carried separately. ### Stat Conflicts and Reconciliation The supplied research passes occasionally disagreed. The freshest scrape is primary; discrepancies are disclosed rather than silently averaged. | Channel | Pass A figure | Pass B figure | Resolution | | --- | ---: | ---: | --- | | [Welch Labs](https://www.youtube.com/@WelchLabs) | 400K subs | 887K subs | **887K**; fresher scrape, and `@WelchLabs` / `@welchlabs` are the same channel | | [Julia Turc](https://www.youtube.com/@juliaturc1) | 48K subs | 72.1K subs | **72.1K**; fresher, one channel at `@juliaturc1` | | [Token Chaser](https://www.youtube.com/@tokenchaser) | 25K | 7.5K | **7.5K**; fresher live scrape, and “[Token Chaser](https://www.youtube.com/@tokenchaser)” / “Token Chasers” are the same creator | | [Donato Capitella](https://www.youtube.com/@donatocapitella) | 8K subs | 99.7K subs | **99.7K**; the 8K figure was stale | | [Nate B Jones](https://www.youtube.com/@NateBJones) | 6K subs | 305K subs | **305K**; the 6K figure was a mis-scrape | | [GosuCoder](https://www.youtube.com/@GosuCoder) | 15K | 27.1K | **27.1K**; fresher scrape | | [Emergent Garden](https://www.youtube.com/@EmergentGarden) | 200K | 273K | **273K**; fresher scrape | | [Asianometry](https://www.youtube.com/@asianometry) | 941K | 944K | **944K**; fresher scrape, trivial growth delta | | [Brian Casel](https://www.youtube.com/@briancasel) | 23K | 69.5K | **69.5K**; fresher scrape | | [Latent Vision](https://www.youtube.com/@latentvision) | unverified ❓ | 38.5K confirmed | **38.5K verified**; upgraded to 🟢✅ | [Latent Vision](https://www.youtube.com/@latentvision) is the most useful correction in the table: the core scrape could not verify it, while a later pass confirmed 38.5K subscribers and recent view counts. That changes its position in the ComfyUI tier materially. ## Part 1: The Foundations *Math, statistics, from-scratch implementation, and structured courses. This is where you go to understand AI beneath the abstraction layer — and it's the part of YouTube where dormancy matters least, because the content is evergreen.* ### Tier 1 — Mathematical Foundations & Visual Intuition The "understand it beneath the abstraction layer" tier. Raw math, physics, low-level model mechanics. Slow cadence, evergreen value. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [3Blue1Brown](https://www.youtube.com/@3blue1brown) | @3blue1brown | 8.47M | 403K–6.1M | ~1.69M | Entropy / "compression is intelligence", Laplace transforms, topology, quantum computing, "how AI images actually work" | 🟢✅ | | [StatQuest](https://www.youtube.com/@statquest) | @statquest | 1.66M | 1.8K–12K* | ~6K* | Linear programming / Simplex, Random Forests pt.2, False Discovery Rates | 🟢🔥 | | [Welch Labs](https://www.youtube.com/@WelchLabs) | @WelchLabs | 887K | ~297K (recent single); historic 12K–680K | ~130K–297K | "What the Books Get Wrong About AI [Double Descent]", *Neural Networks Demystified*, backprop/matrix visual series | 🟢🐢 | | [Steve Brunton](https://www.youtube.com/@Eigensteve) | @Eigensteve | 540K | 5.8K–51K | ~14K | Optimization bootcamp, Bayesian regression, Monte Carlo, hypothesis testing | 🟢🔥 | | [ritvikmath](https://www.youtube.com/@ritvikmath) | @ritvikmath | 211K | 1.8K–14K | ~5.1K | Regularization, conjugate priors, contextual bandits, the 4 must-know LLM params | 🟢🐢 | | [Serrano Academy](https://www.youtube.com/@SerranoAcademy) | @SerranoAcademy | 194K | 912–13K | ~4.2K | Neural nets bending space, RAG / vector DBs, tokenization, GRPO / DeepSeek | 🟢🔥 | | [Julia Turc](https://www.youtube.com/@juliaturc1) | @juliaturc1 | 72.1K | 25.5K–36.3K | ~30K | World models, flow-matching physics, MoE gating, tensor cores, FP4 quantization, efficient serving | 🟢✅ | *\*[StatQuest](https://www.youtube.com/@statquest) partial — only 3 recent view counts rendered during the scrape.* **[3Blue1Brown](https://www.youtube.com/@3blue1brown)** — If you subscribe to exactly one channel from this entire directory, it's this one. Grant Sanderson's recent run — entropy and "compression is intelligence," Laplace transforms, how AI images actually work — is the rare feed where a twenty-minute video genuinely replaces a semester. 8.47M subscribers and a ~1.69M recent average means this is that near-impossible thing: a channel whose reach *matches* its badge. **[StatQuest](https://www.youtube.com/@statquest)** — Still uploading weekly (Simplex method, Random Forests, False Discovery Rates) while everyone assumes he's a legacy act. Here's the thing about those tiny recent view counts: statistics fundamentals don't trend, but they compound. This is the channel you'll be grateful for when your eval pipeline produces a p-value you can't explain. **[Welch Labs](https://www.youtube.com/@WelchLabs)** — The legendary *Neural Networks Demystified* channel, repeatedly praised in r/learnmachinelearning for animating backpropagation and matrix operations step-by-step. Note the reconciliation: one research pass had him at 400K subs; the fresh scrape says **887K**. The recent double-descent video ("What the Books Get Wrong About AI") is exactly the kind of content that justifies the badge — he tells you where the textbooks are wrong, with animations to prove it. **[Steve Brunton](https://www.youtube.com/@Eigensteve)** — A University of Washington professor running what is essentially a free graduate program: optimization bootcamps, Bayesian regression, Monte Carlo methods. Posting 🔥 this week. If your linear algebra is solid but your *applied* math is shaky, this is your gap-filler. **[ritvikmath](https://www.youtube.com/@ritvikmath)** — Compact, whiteboard-style treatments of the topics interviews actually probe: regularization, conjugate priors, contextual bandits. The "4 must-know LLM params" video is a good litmus test for whether his density-per-minute works for you. **[Serrano Academy](https://www.youtube.com/@SerranoAcademy)** — Luis Serrano has a gift for geometric explanations — "neural nets bending space" is exactly what it sounds like, and it sticks. His recent GRPO/DeepSeek coverage shows he's keeping the visual-intuition method pointed at current architectures, not just classics. **[Julia Turc](https://www.youtube.com/@juliaturc1)** — The sleeper pick of this entire tier, and possibly this entire guide. Ex-Google Research engineer (YC S24), widely regarded as one of the best technical resources on YouTube for high-level mathematical explanations of *modern* architectures: MoE gating, flow-matching physics, tensor cores, FP4 quantization. 72.1K subs with a ~30K average — that ratio (over 40% of her subscriber base watching every video) is the highest engagement signal in this tier. Cross-listed in the local-inference tier for her serving/quantization work. --- ### Tier 1.5 — Statistics & ML Prerequisites Not AI-first feeds — but materially useful for the foundations behind ML evaluation, regression, probability, and experimental reasoning. Treat these as supplements, not subscriptions. | Channel | Handle | Subs | Recent views | Avg | Focus | Grade | |---|---|---:|---|---:|---|:--:| | [Brandon Foltz](https://www.youtube.com/@BrandonFoltz) | @BrandonFoltz | — | — | — | Intro statistics, finite math, management science, statistical learning | 🟡💤 (uploads ~2 yrs old) | | [zedstatistics](https://www.youtube.com/@zedstatistics) | @zedstatistics | — | — | — | Regression, survival analysis, distributions, hypothesis testing, probability intuition | 🟡💤 (uploads ~3 yrs old) | | [Reducible](https://www.youtube.com/@Reducible) | @Reducible | — | — | — | Animated CS concepts — A* search, Fourier, TSP, PageRank, image compression | 🟡💤 (newest ~1 yr ago) | All three are dormant, and it doesn't matter. **[zedstatistics](https://www.youtube.com/@zedstatistics)** got called "the best one" in a data-science thread for probability intuition, and probability intuition hasn't changed since 2023. **[Reducible](https://www.youtube.com/@Reducible)** is the closest thing to "[3Blue1Brown](https://www.youtube.com/@3blue1brown) for computer science" — A* search, Fourier transforms, PageRank — with a stated (never fulfilled) intent to extend into ML. Use them like textbooks: pull the chapter you need. --- ### Tier 2 — LLM-from-Scratch & Deep Implementation Engineering Code the transformer / GPT / attention / training loop by hand. This is the developer's canon — and here's the uncomfortable truth up front: **most of it is dormant.** The averages below are inflated by evergreen hits. Treat these as reference libraries, not fresh feeds. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy) | @AndrejKarpathy | 1.57M | 36K–8.1M | ~2.06M | "How I use LLMs", reproduce GPT-2, build the GPT tokenizer, makemore, micrograd | 🟢💤 | | [Sebastian Raschka](https://www.youtube.com/@SebastianRaschka) | @SebastianRaschka | 90K | 11K–168K | ~52K | LLM architecture comparisons, *Build-an-LLM-from-Scratch* series, finetuning, pretraining | 🟢🐢 | | [Umar Jamil](https://www.youtube.com/@umarjamilai) | @umarjamilai | 85K | 12K–219K | ~70K | Flash Attention in Triton, multimodal VLM from scratch, DeepSeek-R1, DPO / RLHF, Mamba/S4 | 🟢💤 | | [Aladdin Persson](https://www.youtube.com/@AladdinPersson) | @AladdinPersson | 92.3K | 616–5.8K | ~1.7K | Paper reviews, recommender foundation models, LLaMA4, career content | 🟢💤 | | [Jay Alammar](https://www.youtube.com/@arp_ai) | @arp_ai | 64.6K | 3.9K–222K | ~42K | Transformer LLMs course, LLM agents w/ tool use, tokenizers, illustrated Word2Vec | 🟢💤 | | [CodeEmporium](https://www.youtube.com/@CodeEmporium) | @CodeEmporium | 157K | 511–11K | ~2.8K | Transformers vs YOLO, CV timeline, diffusion, DALL-E, CLIP, ViT, DETR | 🟢🔥 | | [Venelin Valkov](https://www.youtube.com/@venelin_valkov) | @venelin_valkov | 34.9K | ❓ page crashed 3× | ❓ | Custom model benchmarking scripts, Python DL deployments, [Hugging Face](https://www.youtube.com/@HuggingFace) pipelines | 🟢❓ | | [mildlyoverfitted](https://www.youtube.com/@mildlyoverfitted) | @mildlyoverfitted | 8.05K | 1.8K–29K | ~8K | PyTorch paper-to-code (BentoML, RAG, NER) | 🔴💤 (inactive 2+ yrs) | | [Abhishek Thakur](https://www.youtube.com/@abhishekkrthakur) | @abhishekkrthakur | 124K | 430–182K | ~25K | RAG / hybrid search / BM25 tutorials (4× Kaggle Grandmaster) | 🟡🐢 (slowing) | **[Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy)** — The unanimous pick, and Reddit doesn't hedge here. From r/learnmachinelearning (u/Log_Dogg, +128 upvotes): > "Literally the goat, I can't think of a single better resource" And it's true: micrograd, makemore, "build the GPT tokenizer," reproducing GPT-2 — nothing else on the platform teaches you the transformer at that level of hands-in-the-guts intimacy. But look at the recency grade: 💤, last upload ~a year ago. That ~2.06M average is old evergreen gravity. [Karpathy](https://www.youtube.com/@AndrejKarpathy) is a *curriculum*, not a subscription. Work through the back catalog like a book. **[Sebastian Raschka](https://www.youtube.com/@SebastianRaschka)** — The *Build-an-LLM-from-Scratch* author, and the most alive of the from-scratch canon (🐢, not 💤). His architecture-comparison videos are the fastest way to understand what actually changed between model generations without reading six papers. **[Umar Jamil](https://www.youtube.com/@umarjamilai)** — The deepest technical content in this tier, full stop. Flash Attention implemented in Triton. A multimodal VLM from scratch. DPO, RLHF, Mamba/S4. When people say "I want to *really* understand it," this is the channel I point them at — with the caveat that it's been ~a year since the last upload. **[Jay Alammar](https://www.youtube.com/@arp_ai)** — The illustrated-transformer guy. His visual explanations of tokenizers and Word2Vec are the on-ramp that makes [Umar Jamil](https://www.youtube.com/@umarjamilai)'s content survivable. Dormant, evergreen, essential. **[CodeEmporium](https://www.youtube.com/@CodeEmporium)** — The surprise of this tier: still posting 🔥 weekly while the legends sleep. Diffusion, CLIP, ViT, DETR — solid mid-depth explainers with a computer-vision lean. **The rest, quickly:** **[Aladdin Persson](https://www.youtube.com/@AladdinPersson)** (92.3K) has drifted from PyTorch implementations toward paper reviews and career content. **[Venelin Valkov](https://www.youtube.com/@venelin_valkov)** is Python-heavy and hands-on, but his page crashed all three scrapers — 34.9K subs confirmed, video metrics unverified ❓. **[mildlyoverfitted](https://www.youtube.com/@mildlyoverfitted)** does beautiful paper-to-code work but has been inactive 2+ years. **[Abhishek Thakur](https://www.youtube.com/@abhishekkrthakur)** (4× Kaggle Grandmaster) is slowing down but his RAG/BM25/hybrid-search tutorials remain practical. --- ### Tier 3 — Applied ML, Bootcamp Courses & Model Tooling End-to-end pipelines, roadmaps, framework courses. Where "I watched it" turns into "I built it." | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Krish Naik](https://www.youtube.com/@krishnaik06) | @krishnaik06 | 1.46M | 3.6K–496K | ~63K | Agentic AI course, LangGraph / RAG, Claude Code, AgentOps, LLM guardrails/evals | 🟡🔥 | | [sentdex](https://www.youtube.com/@sentdex) | @sentdex | 1.44M | 17K–308K | ~64K | Frontier AI at home, open-source AI, Unitree G1 humanoid robotics, LLM agents | 🟢🔥 | | [CampusX](https://www.youtube.com/@campusx-official) | @campusx-official | 638K | 3.8K–68K | ~25K | LLM evaluations series, Claude Code hooks/subagents, advanced RAG | 🟢🔥 | | [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) | @Deeplearningai | 681K | 47K–935K | — | AI for Everyone, prompting course w/ Andrew Ng — the **active** Ng channel | 🟢🔥 | | [Alexander Amini](https://www.youtube.com/@AAmini) | @AAmini | 355K | 8.7K–203K | ~51K | MIT 6.S191 — CNNs, RNNs/transformers, deep generative, RL, AI for Science | 🟢✅ | | [Data School](https://www.youtube.com/@dataschool) | @dataschool | 261K | 1.1K–15K | ~3.5K | scikit-learn mastery, RAG, budget AI models | 🟡💤 | | [Daniel Bourke](https://www.youtube.com/@mrdbourke) | @mrdbourke | 250K | 2.3K–240K | ~40K | SLMs / on-device finetuning, DGX Spark, local multimodal RAG, "AI & ML Monthly" | 🟢🐢 | | [deeplizard](https://www.youtube.com/@deeplizard) | @deeplizard | 169K | 1.8K–14K | ~6.1K | Stable Diffusion masterclass, computational graphs, AI art | 🟡✅ | | [Machine Learning w/ Phil](https://www.youtube.com/@MachineLearningwithPhil) | @MachineLearningwithPhil | 45.1K | 631–39K | ~6.6K | Deep RL (PPO/DDPG/SAC/TD3), Ollama local LLMs, low-level programming | 🟢💤 | | [Jeremy Howard / fast.ai](https://www.youtube.com/@howardjeremyp) | @howardjeremyp | — | — | — | "Dangerous Illusion of AI Coding" interview, Answer.ai advocacy | 🟢✅ | | [Jeff Heaton](https://www.youtube.com/@JeffHeaton) | @JeffHeaton | 96.2K | ❓ | ❓ | Legacy ML content, Second Life ML videos | 🟡💤 | ⚠️ **A correction worth preserving:** **Andrew Ng's *personal* channel** (`@andrewyantakng`, 25.9K subs) is a dead Baidu-era archive — the videos are 9–14 years old. People keep recommending it by name recognition. Don't. The **[DeepLearning.AI](https://www.youtube.com/@Deeplearningai)** org channel is where Ng actually publishes now, and it's 🔥 active. **[sentdex](https://www.youtube.com/@sentdex)** — Harrison Kinsley has been teaching Python-first ML for a decade, and instead of calcifying he's now running frontier AI at home and putting a Unitree G1 humanoid through its paces. 1.44M subs, still 🔥, still 🟢. The rare mega-channel that aged into *more* interesting. **[Alexander Amini](https://www.youtube.com/@AAmini)** — This is MIT 6.S191, an actual MIT deep learning course, free, updated, on YouTube: CNNs through transformers through RL through AI-for-Science. If you want a structured semester rather than a playlist mood-board, start here. **[CampusX](https://www.youtube.com/@campusx-official)** — The most current curriculum energy in this tier: an LLM evaluations series and *Claude Code hooks/subagents* content — course channels usually lag the frontier by a year; this one doesn't. (Hindi/English mix, deeply structured.) **[Krish Naik](https://www.youtube.com/@krishnaik06)** — Enormous output across agentic AI, LangGraph, guardrails, evals. The 🟡 is for volume-over-editing — you'll filter, but there's real material here, and his cadence means he covers what shipped *this week*. **[Daniel Bourke](https://www.youtube.com/@mrdbourke)** — On-device finetuning, DGX Spark experiments, local multimodal RAG, plus the "AI & ML Monthly" digest. Learn-in-public energy with genuinely useful engineering specifics. **Also worth knowing:** **[Data School](https://www.youtube.com/@dataschool)** for scikit-learn fundamentals (💤 but evergreen), **[deeplizard](https://www.youtube.com/@deeplizard)** for Stable Diffusion internals, **[Machine Learning with Phil](https://www.youtube.com/@MachineLearningwithPhil)** for the deepest deep-RL back catalog on the platform (PPO/DDPG/SAC/TD3 implementations), and **[Jeremy Howard](https://www.youtube.com/@howardjeremyp)** — the [fast.ai](https://www.youtube.com/@howardjeremyp) philosophy is alive at Answer.ai, and his "Dangerous Illusion of AI Coding" interview is required contrarian listening for Part 5 people. --- ### Tier 3.5 — Applied Data Science & Analyst Career Career pathing, portfolio projects, analyst tooling. AI-adjacent, practically oriented. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Luke Barousse](https://www.youtube.com/@LukeBarousse) | @LukeBarousse | 650K | 1.2M–3.1M | ~2M | Power BI & Excel full data-analyst courses | 🟢✅ | | [Nicholas Renotte](https://www.youtube.com/@NicholasRenotte) | @NicholasRenotte | 328K | 7.2K–43K | ~22K | RL Godot agent, LoRA finetuning, LangGraph trading agents | 🟢🐢 | | [Ken Jee](https://www.youtube.com/@KenJee_ds) | @KenJee_ds | 278K | 1.5K–44K | ~11K | Pivoting toward AI-disruption / SaaS-building content | 🟡✅ | | [David Robinson](https://www.youtube.com/@safe4democracy) | @safe4democracy | 15.9K | 1K–5.1K | ~2.4K | TidyTuesday / Riddler screencasts (dormant 6+ yrs) | 🔴💤 | | [Astroniz](https://www.youtube.com/c/Astroniz) | @Astroniz | 4.31K | 65–3.4K | ~500 | NASA SPICE Python, asteroid/comet tracking, "AI in Astronomy" | 🟢🐢 | Look at **[Luke Barousse](https://www.youtube.com/@LukeBarousse)'s** numbers again: 650K subs, **~2M average views**. His full-course format (Power BI, Excel) massively outperforms his subscriber base — the exact mirror image of the dormant legends. **[Nicholas Renotte](https://www.youtube.com/@NicholasRenotte)** is the most AI-forward here (RL agents in Godot, LoRA finetuning, LangGraph trading agents). **[Ken Jee](https://www.youtube.com/@KenJee_ds)** is mid-pivot from pure data science toward AI-disruption content — grade accordingly. And **[Astroniz](https://www.youtube.com/c/Astroniz)** is the delightful micro-channel: NASA SPICE toolkit in Python, asteroid tracking, AI in astronomy — 4.31K subs of pure niche signal. --- ## Part 2: The Frontier *Paper reviews, researcher interviews, safety, and the podcast circuit. How to stay research-aware without living on arXiv.* ### Tier 4 — Research Paper Reviews & Deep Technical Analysis Primary-source walkthroughs. The "beyond-basics" tier, and the proof that depth can hold an audience. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Two Minute Papers](https://www.youtube.com/@TwoMinutePapers) | @TwoMinutePapers | 1.83M | 34K–320K | ~110K | DeepSeek speed hacks, DeepMind/NVIDIA/Claude demos, fast paper awareness | 🟡🔥 | | [Yannic Kilcher](https://www.youtube.com/@YannicKilcher) | @YannicKilcher | 326K | 9.4K–172K | ~45K | Paper analyses (TiDAR, Titans, GRPO/DeepSeekMath), "AGI is not coming!", ML News | 🟢🐢 | | [MLST](https://www.youtube.com/@MachineLearningStreetTalk) ([Machine Learning Street Talk](https://www.youtube.com/@MachineLearningStreetTalk)) | @MachineLearningStreetTalk | 218K | 4.9K–161K | ~37K | Researcher interviews (Jumper, M. Jordan, [Jeremy Howard](https://www.youtube.com/@howardjeremyp)), AGI/cognition | 🟢🔥 | | [bycloud](https://www.youtube.com/@bycloudAI) | @bycloudAI | 228K | 18K–314K | ~83K | DeepSeek architecture, LLM efficiency, JEPA, recursive LMs | 🟢🔥 | | [AI Coffee Break](https://www.youtube.com/@AICoffeeBreak) ([Letitia](https://www.youtube.com/@AICoffeeBreak)) | @AICoffeeBreak | 64.3K | 2.7K–45K | ~11.5K | Flow-matching vs diffusion, energy-based transformers, decoding strategies | 🟢💤 | | [Discover AI](https://www.youtube.com/@code4AI) | @code4AI | 15.3K | 1.1K–12K | ~4.1K | Deep technical paper evaluations, model context limits, retrieval mechanics | 🟢✅ | | [hu-po](https://www.youtube.com/@hu-po) | @hu-po | 18.2K | 1.3K–5.7K | ~2.8K | Livestream paper deep-dives (RLHF, Gemini context, LDM) | 🟡💤 | **[bycloud](https://www.youtube.com/@bycloudAI)** — The standout of the tier, and my counter-example whenever someone claims technical depth can't scale on YouTube. DeepSeek's actual architecture, JEPA, recursive LMs, LLM efficiency — explained fast and funny without a single "SHOCKING" thumbnail, pulling an ~83K average. Technical-but-fun is a real lane, and he owns it. **[Yannic Kilcher](https://www.youtube.com/@YannicKilcher)** — The paper-review veteran. His walkthroughs (TiDAR, Titans, GRPO/DeepSeekMath) are where you go when the abstract wasn't enough but you're not ready to fight the appendix alone. Note the deliberately contrarian streak — "AGI is not coming!" — which I count as a feature: you need at least one skeptic in a feed full of exponential curves. **[MLST](https://www.youtube.com/@MachineLearningStreetTalk)** — The most intellectually serious interview show in AI YouTube. Where else do you get John Jumper, Michael Jordan (the statistician, not the shooting guard), and [Jeremy Howard](https://www.youtube.com/@howardjeremyp) talking cognition and AGI at length? Dense, philosophical, occasionally exhausting — in a good way. **[Two Minute Papers](https://www.youtube.com/@TwoMinutePapers)** — "What a time to be alive!" Károly's enthusiasm is a meme at this point, and the format has drifted toward demo-hype (hence 🟡), but as a *paper-awareness firehose* it still works: you'll know a result exists within days, then read it yourself. **[Discover AI](https://www.youtube.com/@code4AI)** — The hidden gem here at 15.3K subs. Praised on Reddit for digging deeper into actual code and architecture parameters than mainstream channels bother to. Retrieval mechanics, real context-limit behavior — the stuff that decides whether your system works, covered at a depth the big channels skip. **Also:** **[AI Coffee Break](https://www.youtube.com/@AICoffeeBreak)** ([Letitia](https://www.youtube.com/@AICoffeeBreak)) does lovely flow-matching-vs-diffusion explainers but has gone quiet (~8 months). **[hu-po](https://www.youtube.com/@hu-po)** livestreams multi-hour paper dissections — niche format, real depth, dormant lately. --- ### Tier 4.5 — Visual / Technical ML Explainers A compact bridge tier between implementation tutorials and paper-driven explanation. | Channel | Handle | Focus | Grade | |---|---|---|:--:| | [Neural Breakdown with AVB](https://www.youtube.com/@avb_fj) | @avb_fj | LLMs, NLP, CV, RL, transformers, paper walkthroughs; latest = Unsloth DPO/SLM-alignment (~1 mo) | 🟢✅ | | [Gal Lahat](https://www.youtube.com/@GalLahat) | @GalLahat | Attention visualization, CNNs, LLM memory, hallucinations, infinite zoom, simulated systems | 🟢🐢 | Both crashed the metric scrape (subscriber/view figures unverified), both are worth your time anyway. **[Neural Breakdown with AVB](https://www.youtube.com/@avb_fj)** is doing current-frontier walkthroughs (Unsloth DPO, SLM alignment) with animation quality that punches way above its size. **[Gal Lahat](https://www.youtube.com/@GalLahat)** visualizes attention and LLM memory in ways that make hallucinations *make sense* mechanically. --- ### Tier 5 — AI Safety, Alignment & Science Explainers | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Computerphile](https://www.youtube.com/@Computerphile) | @Computerphile | 2.63M | 16K–583K | ~108K | Shor's algorithm, why AI tokens are expensive, "Clever Hans" AI, post-quantum crypto | 🟢🔥 | | [Robert Miles AI Safety](https://www.youtube.com/@RobertMilesAI) | @RobertMilesAI | 170K | 53K–360K | ~189K | Alignment, mesa-optimizers, specification gaming | 🟢✅ | Small tier, zero filler. **[Computerphile](https://www.youtube.com/@Computerphile)** remains the best "professor at a whiteboard with fanfold paper" channel in existence — the recent "why AI tokens are expensive" and "Clever Hans AI" videos are perfect send-to-a-colleague material. **[Robert Miles](https://www.youtube.com/@RobertMilesAI)** uploads rarely, but look at that ratio: 170K subs, ~189K average views. *His average video outperforms his entire subscriber count.* That's what happens when every upload is essential — mesa-optimizers and specification gaming explained so well that each video becomes the canonical reference. --- ### Tier 6 — Long-Form Interview Podcasts | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Lex Fridman](https://www.youtube.com/@lexfridman) | @lexfridman | 5.02M | 320K–1.7M | ~879K | Broad interviews (Jensen Huang, physics, history); AI is a subset | 🔴✅ | | [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) | @DwarkeshPatel | 1.36M | 70K–904K | ~309K | Deep technical AI interviews (training paradigms, Terence Tao + AI, chip design) | 🟢🔥 | | [No Priors](https://www.youtube.com/@NoPriorsPodcast) | @NoPriorsPodcast | 88.2K | 1.2K–46K | ~15K | VC-adjacent founder/CEO interviews (Zuckerberg, Intel, [OpenAI](https://www.youtube.com/@OpenAI)'s Noam Brown) | 🟡🔥 | | [TWIML AI Podcast](https://www.youtube.com/@twimlai) | @twimlai | 30.3K | — | — | Long-running AI/ML research interviews | 🟢✅ | | [Latent Space](https://www.youtube.com/@LatentSpaceTV) | @LatentSpaceTV | 2.35K | 46–3.7K | ~423 | "AI in Action" + "Paper Club" for AI engineers (audio-first) | 🟢✅ | | [Unsupervised Learning](https://www.youtube.com/@RedpointAI) ([Redpoint](https://www.youtube.com/@RedpointAI)) | @RedpointAI | 10K | 400–12K | ~2.5K | Jacob Effron interviewing AI founders on engineering constraints & scaling | 🟢✅ | | The Robot Brains Podcast | — | — | — | — | Recommended in research passes; not verified as YT-first this pass | 🟡❓ | **[Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel)** — The best pure-AI interview show running, period. He does the homework — actually reads the papers, actually understands the training-paradigm arguments — and the guests respond to that with answers you don't hear elsewhere. Terence Tao on AI, deep dives on chip design, ~309K average on genuinely technical conversations. This is my strongest "depth scales" data point. **[Lex Fridman](https://www.youtube.com/@lexfridman)** — Massive reach, and I've flagged him 🔴 anyway. AI is now a *subset* of an increasingly broad show (Jensen Huang next to history and physics episodes), the tone is polarizing, and technical follow-up questions are rare. There's value in the guest list; just know what you're getting. **[Latent Space](https://www.youtube.com/@LatentSpaceTV)** — Don't be fooled by the 2.35K YouTube subs — this is an audio-first podcast that happens to have a YT presence, and among actual working AI engineers it's near-canonical. The "Paper Club" and "AI in Action" formats are exactly the practitioner discourse the big shows can't do. **Also:** **[No Priors](https://www.youtube.com/@NoPriorsPodcast)** for the VC/founder view (Zuckerberg, Noam Brown), **TWIML** as the long-running research-interview institution, and **[Unsupervised Learning](https://www.youtube.com/@RedpointAI)** ([Redpoint](https://www.youtube.com/@RedpointAI)) for founders talking real engineering constraints. --- ### Tier 6.5 — Business / Practitioner Podcasts & News Shows | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Hard Fork](https://www.youtube.com/@hardfork) | @hardfork | 62.7K | 4.7K–258K | ~25K | Sundar Pichai / Satya Nadella interviews, [OpenAI](https://www.youtube.com/@OpenAI) trial coverage | 🟢🔥 | | [AI For Humans](https://www.youtube.com/@AIForHumansShow) | @AIForHumansShow | 38.2K | 5.7K–9.3K | ~7.5K | GPT-5.6 Sol, Fable 5 survival, Claude/Alibaba spying story | 🟢🔥 | | [How I AI](https://www.youtube.com/@howiaipodcast) | @howiaipodcast | 102K | 3.8K–70K | ~20K | Live harness-building, GPT-5.6 Sol benchmark, Claude Code loops | 🟢🔥 | | [The Artificial Intelligence Show](https://www.youtube.com/@aishowpod) | @aishowpod | — | — | — | Org adoption, agent security, business transformation, policy | 🟢✅ | | [Last Week in AI](https://www.youtube.com/@lastweekinai) | @lastweekinai | 5.89K | 882–1.2K | ~1K | Numbered weekly AI-news recap (#249, #248…) | 🟢✅ | | [This Week in AI](https://www.youtube.com/@ThisWeekinAIPodcast) | @ThisWeekinAIPodcast | 8.2K | ❓ | ❓ | Alex Finn / Naveen Rao interviews (page crashed) | 🟡❓ | | [Practical AI](https://www.youtube.com/@practicalai_show) | @practicalai_show | 750 | — | — | Podcast-first, minimal YT presence | 🟡❓ | The one to single out: **[How I AI](https://www.youtube.com/@howiaipodcast)** — guests build their actual harnesses and Claude Code loops *live on screen*, which makes it the rare podcast that doubles as a Part 5 (agentic coding) resource. **[Hard Fork](https://www.youtube.com/@hardfork)** is your NYT-produced big-picture layer (Pichai, Nadella, the [OpenAI](https://www.youtube.com/@OpenAI) trial), and **[Last Week in AI](https://www.youtube.com/@lastweekinai)** is the dependable numbered weekly recap for completionists. --- ## Part 3: The News Diet *Model-watch and daily awareness — sorted by how much hype you'll have to filter. My rule: news channels are a routing layer to primary sources, never the verification layer.* ### Tier 7 — AI News, High Signal | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [AI Explained](https://www.youtube.com/@aiexplained-official) | @aiexplained-official | 435K | 41K–152K | ~90K | Sourced model breakdowns (GPT-5.6, Claude Fable, Gemini), benchmarks, policy | 🟢✅ | | [Theo – t3.gg](https://www.youtube.com/@t3dotgg) | @t3dotgg | 549K | 71K–170K | ~117K | Dev-lens model reviews (GPT-5.6, Codex, local models, "moving to Linux") | 🟢🔥 | **[AI Explained](https://www.youtube.com/@aiexplained-official)** — When a new frontier model drops, this is the first non-vendor analysis worth watching. From Reddit (u/astgabel, +33): > "the gold standard… down-to-earth and least hype-y channel for AI news" Every claim sourced, benchmarks actually contextualized, policy coverage that isn't doomer-bait. One standing caveat from the same threads: a commenter argues the channel has "changed to a sales funnel for paid content" (there's a paid tier now). I still rate the free videos as the best model-release analysis on the platform — but you deserve the whole picture. **[Theo (t3.gg)](https://www.youtube.com/@t3dotgg)** — The developer's lens on model news. Where [AI Explained](https://www.youtube.com/@aiexplained-official) asks "what does this benchmark mean," [Theo](https://www.youtube.com/@t3dotgg) asks "what happens when I point this at a real codebase." Opinionated, fast, occasionally wrong out loud and corrected in public — which I trust more than never-wrong-sounding. ### Tier 7.5 — AI News, Daily / Format-Separated | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) | @AIDailyBrief | 584K | 3.3K–11K | ~6K | Daily AI-economy news, model-release recaps (Nathaniel Whittemore) | 🟢🔥 | | [Nate B Jones](https://www.youtube.com/@NateBJones) | @NateBJones | 305K | 16K–90K | ~35K | Near-daily AI strategy, agent economics, enterprise adoption, Claude memory build | 🟢🔥 | | [Asianometry](https://www.youtube.com/@asianometry) | @asianometry | 944K | ~202K recent; historic 50K–1.2M | ~180K | Semiconductor / AI-hardware history, chip testing, ASML/TSMC, boom-bust cycles | 🟢✅ | | [What's AI](https://www.youtube.com/@WhatsAI) ([Louis Bouchard](https://www.youtube.com/@WhatsAI)) | @WhatsAI | 73.1K | 259–9.3K | ~2K | Loop / harness-engineering explainers, AI-engineering foundations course | 🟢✅ | | [Dr Alan D. Thompson](https://www.youtube.com/@DrAlanDThompson) | @DrAlanDThompson | 59.6K | 1K–26K | ~6K | "First look" humanoid robots (Figure 03, Xiaomi CyberOne), ASI tracking | 🟢✅ | **[Nate B Jones](https://www.youtube.com/@NateBJones)** deserves a spotlight, partly because my own pipeline nearly buried him: one research pass mis-scraped him at 6K subs. The real figure is **305K**, near-daily uploads, and he occupies a lane almost nobody else does — AI *strategy*: agent economics, enterprise adoption, what these releases mean for how organizations actually work. The recommended complement to the whole Tier 11 automation crowd, minus the "$20K/month" framing. **[AI Daily Brief](https://www.youtube.com/@AIDailyBrief)** is the lowest-effort way to maintain daily awareness (Nathaniel Whittemore, calm, ~15 minutes). **[Asianometry](https://www.youtube.com/@asianometry)** is cross-listed here but lives in Tier 16 — more below. **[What's AI](https://www.youtube.com/@WhatsAI)** and **[Dr Alan D. Thompson](https://www.youtube.com/@DrAlanDThompson)** round out the awareness layer (the latter is your humanoid-robot release tracker). ### Tier 8 — AI News & Tool Roundups, Mainstream (hype-adjacent) Useful for day-1 awareness. Also the tier where Reddit's receipts come out, so let's be precise about who's flagged for what. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Fireship](https://www.youtube.com/@Fireship) | @Fireship | 4.23M | 292K–1.0M | ~663K | Rapid dev/AI news, "code report", OSS incidents, systems concepts | 🟡🔥 | | [IBM Technology](https://www.youtube.com/@IBMTechnology) | @IBMTechnology | 1.74M | 3.8K–85K | ~19K | Agentic frameworks, MCP vs Skills, KV cache, AI security explainers | 🟢🔥 | | [Matt Wolfe](https://www.youtube.com/@mreflow) | @mreflow | 978K | 38K–109K | ~82K | Weekly "AI News" + tool roundups (FutureTools.io) | 🟡🔥 | | [AI Search](https://www.youtube.com/@theAIsearch) | @theAIsearch | 704K | 73K–498K | ~166K | Weekly AI news + tool/model demos, image/video gen | 🟡🔥 | | [Matthew Berman](https://www.youtube.com/@matthew_berman) | @matthew_berman | 623K | 42K–183K | ~98K | Model testing/news | 🔴🔥 | | [TheAIGrid](https://www.youtube.com/@TheAiGrid) | @TheAiGrid | 396K | 1.9K–77K | ~17K | Daily model leaks/news | 🔴🔥 | | [Wes Roth](https://www.youtube.com/@WesRoth) | @WesRoth | 322K | 19K–155K | ~64K | Paper/news coverage | 🔴🔥 | | [MattVidPro AI](https://www.youtube.com/@MattVidPro) | @MattVidPro | 300K | 4.6K–44K | ~13K | Model/tool testing (GPT-5.6, Fable 5, ElevenLabs, Krea) | 🟡✅ | | [David Shapiro](https://www.youtube.com/@DaveShap) | @DaveShap | 189K | 7.6K–36K | ~17.5K | Post-labor economics, UBI, AGI timelines | 🔴🔥 | | [1littlecoder](https://www.youtube.com/@1littlecoder) | @1littlecoder | 110K | 929–12K | ~3.6K | Fast, practical model tutorials (Claude, OCR, GPT, Nemotron) | 🟡✅ | **About "the Matts."** [Matt Wolfe](https://www.youtube.com/@mreflow) + [Matthew Berman](https://www.youtube.com/@matthew_berman) + [Wes Roth](https://www.youtube.com/@WesRoth) get recommended together constantly — they're the algorithmic starter pack for anyone who watches one AI video. The Reddit record on each, verbatim: On **[Matthew Berman](https://www.youtube.com/@matthew_berman)** (u/fasti-au): > "He can't code so what he sees is repeated" On **[Wes Roth](https://www.youtube.com/@WesRoth)** (u/zackler6, +86 — note this one's a *defense*): > "videos are actually good… but titles over the top" On **[TheAIGrid](https://www.youtube.com/@TheAiGrid)** (u/MysteriousPepper8908, +25): > "low-quality content mill" On **[Matt Wolfe](https://www.youtube.com/@mreflow)** — the most defended of the group (u/Substantial-Comb-148, +8): > "my go-to for quick weekly rundowns… always transparent about affiliations upfront" And on **[David Shapiro](https://www.youtube.com/@DaveShap)** (u/laudanus, +16): > "eccentric hobbyist… no academic ML background" My honest take: these channels solve a real problem (velocity — knowing something dropped within hours) while creating another (framing — everything is SHOCKING, INSANE, or HERE (WOAH)). Use them as *notification systems*, then verify with Tier 7 or the vendor channels. Never let them be your only layer. Two exceptions in this tier worth separating from the pack: **[Fireship](https://www.youtube.com/@Fireship)** is hype-*paced* but not hype-*brained* — the "code report" format compresses real information density into 4 minutes, and 663K average views say the format works. **[IBM Technology](https://www.youtube.com/@IBMTechnology)** is the anti-hype surprise: a corporate channel producing genuinely solid whiteboard explainers on agentic frameworks, MCP vs Skills, and KV caching, at 🔥 cadence. --- ## Part 4: The Hardware Truth *Local LLMs, runtime benchmarking, VRAM reality, and the silicon underneath. The r/LocalLLaMA core.* ### Tier 9 — Local LLMs, Runtime & Hardware Benchmarking Real benchmarks, tok/s, quantization, local rigs — where marketing claims go to be measured. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Fahd Mirza](https://www.youtube.com/@fahdmirza) | @fahdmirza | 763K | 357–7.6K | ~2.7K | High-cadence local model tests, GPU comparisons ($2000 Huawei GPU vs NVIDIA) | 🟢🔥 | | [Alex Ziskind](https://www.youtube.com/@AZisk) | @AZisk | 531K | 58K–324K | ~117K | Apple Silicon vs DGX Spark/AMD, local AI OS impact, 4-bit, tok/s | 🟢🔥 | | [Donato Capitella](https://www.youtube.com/@donatocapitella) | @donatocapitella | 99.7K | ❓ (video list crashed) | ❓ | Strix Halo, Radeon AI Pro 9700, llama.cpp, vLLM, ROCm, agentic-AI security | 🟢🔥 (last upload ~5d) | | [Digital Spaceport](https://www.youtube.com/@DigitalSpaceport) | @DigitalSpaceport | 93.9K | 2.9K–81K | ~31.5K | Local AI server builds, motherboard/CPU combos, Gemma/Qwen benchmarks | 🟢🔥 | | [Julia Turc](https://www.youtube.com/@juliaturc1) | @juliaturc1 | 72.1K | 25.5K–36.3K | ~30K | *(cross-listed from Tier 1)* efficient serving, FP4 quant, MoE | 🟢✅ | | [Bijan Bowen](https://www.youtube.com/@bijanbowen) | @bijanbowen | 64.8K | 16K–48K | ~35K | "First Test / Hands-On" open + local coding model reviews — contested depth | 🟡🔥 | | [Mukul Tripathi](https://www.youtube.com/@MukulTripathi) | @MukulTripathi | — | — | — | RTX Pro 6000 / Blackwell, vLLM, high-context inference, home AI servers | 🟢🐢 | | [Token Chaser](https://www.youtube.com/@tokenchaser) | @tokenchaser | 7.5K | 3.4K–35K | ~9K | Rapid local-vs-cloud head-to-head battles (Qwen3.6, Fable 5, Opus), API-endpoint deploys | 🟢🔥 | | [Protorikis](https://www.youtube.com/@Protorikis) | @Protorikis | 12K | 900–14K | ~4.2K | Quantization perplexity tests, 16→4→2-bit degradation, GGUF/EXL2 | 🟢 | | [Codacus](https://www.youtube.com/@Codacus) | @Codacus | 11K | 800–11K | ~3.5K | Running models on older consumer GPUs, modest-hardware optimization | 🟢 | | [Luke's Dev Lab](https://www.youtube.com/@lukesdevlab) | @lukesdevlab | 6K | 400–5.2K | ~1.6K | Custom model API servers, local context loading, inference optimization | 🟢 | | [Tonbi's AI Garage](https://www.youtube.com/@TonbisAIGarage) | @TonbisAIGarage | 5K | 300–4.1K | ~1.3K | SD parameters, local WebUI configs, custom finetunes | 🟢 | | [Level1Techs](https://www.youtube.com/@Level1Techs) | @Level1Techs | ❓ | — | — | Local AI server hardware, PCIe/GPU virtualization (crashed every scrape pass) | 🟡❓ | #### The Benchmark Caveat: Read Before Buying a GPU Before you take *any* number from *any* of these channels to the checkout page, here's the emblem of this whole tier. In the comments of [Donato Capitella](https://www.youtube.com/@donatocapitella)'s Radeon AI Pro 9700 video, a Redditor reported **~40 tok/s** for `gpt-oss:20b` at 4-bit — where the video showed **130 tok/s**. Same model, same card, **3× apart.** The likely culprit: runtime. Ollama vs llama.cpp vs vLLM can legitimately differ by that much on identical hardware. **Treat every hardware benchmark as a configuration-specific data point, not a universal result.** The channel isn't lying; your stack just isn't their stack. **[Alex Ziskind](https://www.youtube.com/@AZisk)** — The biggest genuinely rigorous channel in the tier. Apple Silicon vs DGX Spark vs AMD, measured in actual tok/s with methodology on screen. If you're deciding between a Mac Studio and a dedicated GPU box, his back catalog *is* the buyer's guide. **[Donato Capitella](https://www.youtube.com/@donatocapitella)** — The reconciliation story here matters: an early pass had him stale at 8K subs; the truth is **99.7K** and posting within the last 5 days. Strix Halo, ROCm, llama.cpp vs vLLM — plus a genuinely distinctive second lane in *agentic-AI security*, which almost nobody else covers with engineering rigor. **[Token Chaser](https://www.youtube.com/@tokenchaser)** — 7.5K subs and one of my favorite follows in the tier. The format: rapid local-vs-cloud head-to-heads (Qwen3.6 vs Fable 5 vs Opus) run as *multi-step qualitative tests* — actual coding tasks, actual HTTP API deployments — rather than the one-shot "write me a snake game" prompts everyone else calls a benchmark. (Alias note from the dedup pass: "[Token Chaser](https://www.youtube.com/@tokenchaser)" and "Token Chasers" are the same creator.) **[Protorikis](https://www.youtube.com/@Protorikis)** — The quantization specialist. Perplexity degradation from 16-bit → 4-bit → 2-bit, GGUF vs EXL2, measured properly. When you're wondering whether Q2 is actually usable for your use case, this is where the real answer lives. **[Digital Spaceport](https://www.youtube.com/@DigitalSpaceport)** — Full local-AI *server* builds: motherboard/CPU combos, multi-GPU layouts, then Gemma/Qwen benchmarks on the finished rig. The homelab end of the spectrum. **And the cautionary tale:** **[Fahd Mirza](https://www.youtube.com/@fahdmirza)** — 763K subscribers, ~2.7K average views. That's the most extreme badge-vs-reach gap in this entire directory. To be clear, the 🟢 stands: high-cadence, hands-on, honest testing (the $2000 Huawei GPU vs NVIDIA comparison is exactly the content nobody else makes). But his audience clearly treats him as a search index, not a feed — and honestly, that might be the right way to use him. **Smaller but real:** **[Codacus](https://www.youtube.com/@Codacus)** (models on older consumer GPUs — the "average Joe hardware" niche), **[Luke's Dev Lab](https://www.youtube.com/@lukesdevlab)** (custom model API servers), **[Tonbi's AI Garage](https://www.youtube.com/@TonbisAIGarage)** (local WebUI configs and finetunes), **[Mukul Tripathi](https://www.youtube.com/@MukulTripathi)** (RTX Pro 6000 / Blackwell-class home servers, high-context inference). **[Bijan Bowen](https://www.youtube.com/@bijanbowen)** posts fast "first test" reviews of every open model drop — useful velocity, contested depth (🟡). **[Level1Techs](https://www.youtube.com/@Level1Techs)** crashed every scrape pass but the forum-adjacent hardware content is well-regarded ❓. --- ### Tier 16 — AI Hardware & Semiconductor History The physical substrate — chip design, fabs, lithography, boom/bust cycles. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Asianometry](https://www.youtube.com/@asianometry) | @Asianometry | 944K | 50K–1.2M | ~180K | Semiconductor fab history, LISP machines, "why Soviet computers failed", ASML/TSMC, AI boom-bust | 🟢✅ | A one-channel tier, because **[Asianometry](https://www.youtube.com/@Asianometry)** has no peer. Outstandingly researched essays on the hardware economics powering AI: ASML's monopoly, TSMC's rise, LISP machines, why Soviet computing failed, and — most relevant right now — the anatomy of semiconductor boom-bust cycles. If you want to understand whether the current AI capex wave is 1999 or 2004, this is the channel doing the archival work. Cross-listed in the news tiers for relevance, but this is its true home. --- ## Part 5: The Builders *Agentic coding, harness engineering, and the business of automation. By posting cadence, this is the hottest zone in AI YouTube right now — nearly everyone here is 🔥, and they're all converging on the same frontier: Claude Code, Codex, and multi-agent orchestration.* ### Tier 10 — Agentic Coding: Claude Code / Codex / Harness Engineering Where real software development meets agent loops, context engineering, and multi-agent orchestration. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Cole Medin](https://www.youtube.com/@ColeMedin) | @ColeMedin | 216K | 1.7K–131K | ~32K | Harness engineering, agent orchestration, Pydantic AI 2.0, [Karpathy](https://www.youtube.com/@AndrejKarpathy) LLM Wiki | 🟢🔥 | | [Matt Pocock](https://www.youtube.com/@mattpocockuk) | @mattpocockuk | 295K | 5.2K–85K | ~32K | Building "shared domain language" w/ agents, testable architectures, deep modules | 🟢 | | [AI Jason](https://www.youtube.com/@AIJasonZ) | @AIJasonZ | 227K | 6.8K–206K | ~47K | Coding agents, Loop/Harness engineering, MCP, "[Anthropic](https://www.youtube.com/@anthropic-ai) killed tool calling" | 🟢✅ | | [IndyDevDan](https://www.youtube.com/@indydevdan) | @indydevdan | 136K | 16K–157K | ~34K | Multi-agent orchestration, Claude Code/Pi Agent, agentic security, local MLX stack | 🟢🔥 | | [Sam Witteveen](https://www.youtube.com/@samwitteveenai) | @samwitteveenai | 124K | 7.8K–82K | ~28K | Model breakdowns + agent/LLM engineering w/ Colab notebooks | 🟢🔥 | | [Brian Casel](https://www.youtube.com/@briancasel) | @briancasel | 69.5K | 2.1K–753K | ~40K | Claude Code CRM / time-tracker builds, git worktrees for parallel agents | 🟢🔥 | | [GosuCoder](https://www.youtube.com/@GosuCoder) | @GosuCoder | 27.1K | 4.1K–61K | ~15K | Weekly AI coding-agent shootouts (GLM, Gemini 3, Opus, Cursor) | 🟢🔥 | | [BMad Code](https://www.youtube.com/@BMadCode) | @BMadCode | 34.2K | ❓ | ❓ | BMad-Method agentic-dev framework tutorials (page crashed) | 🟢❓ | | [Armin Ronacher](https://www.youtube.com/@ArminRonacher) | @ArminRonacher | 9.15K | 4.1K–13K | ~8K | "State of Agentic Coding" monthly series (Flask creator) | 🟢🐢 | | [Matt Maher](https://www.youtube.com/@MetalSole) | @MetalSole | 3K | 200–5K | ~1.1K | Python scripts, local AI coding basics, beginner-friendly environments | 🟢 | This tier is personal for me — it's my daily workflow — so let me be specific about who earns which slot. **[IndyDevDan](https://www.youtube.com/@indydevdan)** — The repeated Reddit pick for "best Claude Code content outside [Anthropic](https://www.youtube.com/@anthropic-ai)'s own," and I co-sign. Multi-agent orchestration, agentic security, a local MLX stack — he's consistently 2–3 months ahead of where the median tutorial channel is, and he ships the workflows he preaches. **[Cole Medin](https://www.youtube.com/@ColeMedin)** — The systematizer. Where others demo, Cole builds *frameworks* for thinking about harness engineering and agent orchestration (his Pydantic AI 2.0 material is the reference). Posting within 6 hours of my scrape — the cadence matches the frontier. **[Sam Witteveen](https://www.youtube.com/@samwitteveenai)** — From Reddit (u/hassan789_, +17): > "zero fluff, zero BS" That's the whole review. Model breakdowns and agent engineering, every video with a Colab notebook you can run. The highest signal-to-runtime ratio in the tier. **[GosuCoder](https://www.youtube.com/@GosuCoder)** — 27.1K subs, weekly coding-agent shootouts (GLM vs Gemini 3 vs Opus vs Cursor), and — more importantly — an explicit methodology: structured context management, spec files, and code review over vibes. His "don't vibe to production" stance is the necessary adult supervision for this entire content zone. **[Matt Pocock](https://www.youtube.com/@mattpocockuk)** — The renowned TypeScript educator pivoted to how AI reshapes software engineering itself: building a "shared domain language" with agents, testable architectures, deep modules. The most *software-engineering-brained* channel in the tier — agents as a design problem, not a magic trick. **[Brian Casel](https://www.youtube.com/@briancasel)** — Real products built on camera (a CRM, a time tracker), and the single most useful workflow demo I've seen this year: **git worktrees to keep multiple Claude Code agents active in parallel** on separate branches, reviewed and merged independently. One video of his hit 753K views — the appetite for real builds is enormous. **[Armin Ronacher](https://www.youtube.com/@ArminRonacher)** — Yes, *that* [Armin Ronacher](https://www.youtube.com/@ArminRonacher) (Flask, Jinja2). His monthly "State of Agentic Coding" series is what it looks like when someone with two decades of tooling credibility evaluates this space: measured, skeptical, zero affiliate links. 9.15K subs is criminal underexposure. **Also:** **[AI Jason](https://www.youtube.com/@AIJasonZ)** for MCP and provocations that are better-researched than their titles ("[Anthropic](https://www.youtube.com/@anthropic-ai) killed tool calling"), **[BMad Code](https://www.youtube.com/@BMadCode)** for the BMad-Method framework (page crashed, ❓), **[Matt Maher](https://www.youtube.com/@MetalSole)** for gentle beginner on-ramps. ### Tier 10.5 — AI-Engineer Conference & Practitioner Talks | Channel | Handle | Latest-upload themes | Grade | |---|---|---|:--:| | [AI Engineer](https://www.youtube.com/@aiDotEngineer) | @aiDotEngineer | Agent skills, AI coding workflows, local AI, context engineering, complex codebases | 🟢🔥 | **[AI Engineer](https://www.youtube.com/@aiDotEngineer)** is the talk archive of the [AI Engineer](https://www.youtube.com/@aiDotEngineer) conferences — speakers from [Anthropic](https://www.youtube.com/@anthropic-ai), [OpenAI](https://www.youtube.com/@OpenAI), NVIDIA, MIT, uploads landing within hours-to-days of the events. It's the best complement to the whole tier above: where individual creators show you *their* workflow, this shows you fifty practitioners' workflows in parallel. Also the single best channel for discovering people who belong in the next edition of this directory. ### Tier 11 — AI Agents Business, Automation & n8n Build / monetize / scale agent pipelines. Fair warning on framing: this tier skews hard toward outcomes and "$/month" packaging — the engineering is often real, but the business claims deserve your skepticism. | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Tina Huang](https://www.youtube.com/@TinaHuang1) | @TinaHuang1 | 1.25M | 30K–753K | ~220K | NotebookLM 2.0, Claude Cowork setup, local AI agents in 26 min | 🟢🔥 | | [Nate Herk](https://www.youtube.com/@nateherk) | @nateherk | 853K | 8.4K–175K | ~78K | n8n + Claude Code automation, agent loops, monetization | 🟡🔥 | | [Liam Ottley](https://www.youtube.com/@LiamOttley) | @LiamOttley | 819K | 8.3K–211K | ~55K | AI-automation-agency business model, "$20K/mo with Claude Code" | 🟡🔥 | | [Greg Isenberg](https://www.youtube.com/@GregIsenberg) | @GregIsenberg | 670K | 31K–157K | ~83K | "AI agents are the new SaaS", startup ideas, solo-agent business | 🟡🔥 | | [Nick Saraev](https://www.youtube.com/@nicksaraev) | @nicksaraev | 469K | 9.7K–210K | ~81K | Agentic workflows, Claude Code apps | 🔴🔥 | | [Sabrina Ramonov](https://www.youtube.com/@sabrina_ramonov) | @sabrina_ramonov | 318K | 1.8K–152K | ~20K | AI-money-making, Claude+Canva workflow, near-daily uploads | 🟡🔥 | | [Dave Ebbelaar](https://www.youtube.com/@daveebbelaar) | @daveebbelaar | 275K | 3.7K–61K | ~18K | Python for agents, agentic RAG from scratch, DS→AI engineer, Pydantic | 🟢🔥 | | [Riley Brown](https://www.youtube.com/@rileybrownai) | @rileybrownai | 259K | 8.3K–88K | ~40K | Vibe coding, Codex/Claude/Cursor, AI assistant builds | 🟡🔥 | | [All About AI](https://www.youtube.com/@AllAboutAI) | @AllAboutAI | 225K | 1.4K–10K | ~4.7K | Agentic AI trading (Polymarket/Hyperliquid), MCP, automation | 🟡🔥 | | [Mervin Praison](https://www.youtube.com/@MervinPraison) | @MervinPraison | 81.5K | 495–38K | ~6.7K | PraisonAI, local agents w/ Ollama, Claude Code + Slack | 🟡✅ | | [James Briggs](https://www.youtube.com/@jamesbriggs) | @jamesbriggs | 81.4K | 1.8K–10K | ~4.3K | LangChain / [OpenAI](https://www.youtube.com/@OpenAI) Agents SDK, RAG, vector DBs | 🟢💤 (~9 mo) | | [Raj Amjad](https://www.youtube.com/@RAmjad) | @RAmjad | 12K | 800–8.1K | ~3K | Opinionated agentic frameworks, beginner enterprise automations | 🟡 | The two 🟢 grades in a tier full of 🟡: **[Tina Huang](https://www.youtube.com/@TinaHuang1)** earns hers by being the rare mega-channel (1.25M, ~220K avg) that teaches workflows without inflating outcomes — her "local AI agents in 26 minutes" delivers what the title says. **[Dave Ebbelaar](https://www.youtube.com/@daveebbelaar)** earns his by staying an engineer in a marketer's tier: Python-first, agentic RAG built from scratch, Pydantic patterns, honest about the data-scientist-to-AI-engineer path. One 🔴 to explain: **[Nick Saraev](https://www.youtube.com/@nicksaraev)**'s content itself is competent, but Reddit threads flag his Maker Skool as over-marketed — the classic funnel pattern where the free content is the ad. Watch accordingly. And a routing note: if what you actually want from this tier is "how will agents change *work*" rather than "how do I sell agents," that's **[Nate B Jones](https://www.youtube.com/@NateBJones)** back in Tier 7.5 — enterprise-workflow analysis without the income-claim framing. ### Tier 11.5 — Non-Technical / End-User AI Adoption Tool fluency and knowledge-work workflows. Not a rigorous ML or agent-engineering core — this is the tier you send to your colleagues, not the one you watch yourself. | Channel | Handle | Focus | Grade | |---|---|---|:--:| | [The AI Advantage](https://www.youtube.com/@aiadvantage) | @aiadvantage | ChatGPT/Claude/Midjourney tutorials, prompting, AI workflows | 🟡 (posts within ~1 yr) | | [Natalie Lambert / GenEdge](https://www.youtube.com/@NatalieLambert-GenEdge) | @NatalieLambert-GenEdge | AI marketing workflows, NotebookLM, AI content teams, copyediting | 🟡💤 (uploads 1–2 yrs old) | **[The AI Advantage](https://www.youtube.com/@aiadvantage)** is the standard answer to "my non-technical teammate wants to get good at ChatGPT/Claude — where do they start?" **Natalie Lambert** covers the marketing-team angle (NotebookLM workflows, AI content operations), though her upload cadence has stalled. --- ## Part 6: The Creators *Image gen, AI film, creative coding, robotics, and the vendors themselves.* ### Tier 12 — ComfyUI / Stable Diffusion / Image Generation | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Olivio Sarikas](https://www.youtube.com/@OlivioSarikas) | @OlivioSarikas | 250K | 1.4K–15K | ~7.4K | Seedance 2.0, Midjourney, Nano Banana, gen workflows | 🟡🐢 | | [Sebastian Kamph](https://www.youtube.com/@sebastiankamph) | @sebastiankamph | 182K | 1.7K–23K | ~7.5K | ComfyUI course + node guides, model shootouts (Z-Image, Kling) | 🟢✅ | | [Nerdy Rodent](https://www.youtube.com/@NerdyRodent) | @NerdyRodent | 64.8K | 3.1K–43K | ~11.3K | ComfyUI workflows (Krea-2, LTX, TTS, music) — scripted, non-hype | 🟢🔥 | | [Scott Detweiler](https://www.youtube.com/@sedetweiler) | @sedetweiler | 59.8K | 1.5K–149K | ~50K | ComfyUI/SDXL/ControlNet/LoRA (Stability.ai PM) | 🟢💤 | | [SECourses](https://www.youtube.com/@SECourses) ([Dr. Furkan](https://www.youtube.com/@SECourses)) | @SECourses | 53K | ❓ | ❓ | FLUX/SDXL full finetuning & DreamBooth master tutorials (page crashed) | 🟢❓ | | [Latent Vision](https://www.youtube.com/@latentvision) | @latentvision | 38.5K | 13K–61K | ~30K | ComfyUI / IPAdapter deep technical dives | 🟢✅ | | [Benji's AI Playground](https://www.youtube.com/@BenjisAIPlayground) | @BenjisAIPlayground | 32.5K | ❓ | ❓ | ComfyUI tutorials; personally polarizing per Reddit (page crashed) | 🟡❓ | The correction I flagged in the intro lands here: **[Latent Vision](https://www.youtube.com/@latentvision)** — unverified in my first pass, now confirmed at 38.5K subs with a ~30K average. That near-1:1 ratio makes sense once you know who it is: Matteo, the *developer of IPAdapter itself*, explaining ComfyUI internals. This isn't a tutorial channel that uses the tools; it's the toolmaker teaching. The classic Reddit "SD starter pack" cites four names together — **[Sebastian Kamph](https://www.youtube.com/@sebastiankamph) + [Olivio Sarikas](https://www.youtube.com/@OlivioSarikas) + [Latent Vision](https://www.youtube.com/@latentvision) + [Nerdy Rodent](https://www.youtube.com/@NerdyRodent)** — and that's still the right four, with one trend-line caveat: this whole zone is quietly cooling at the top. Olivio has slowed to 🐢, [Scott Detweiler](https://www.youtube.com/@sedetweiler) (a Stability.ai PM, and the best ControlNet/LoRA back catalog around) has gone 💤. The active reliable core is now Kamph + [Nerdy Rodent](https://www.youtube.com/@NerdyRodent) + [Latent Vision](https://www.youtube.com/@latentvision). ### Tier 13 — AI Film & Video Generation | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Mickmumpitz](https://www.youtube.com/@mickmumpitz) | @mickmumpitz | 181K | 39K–600K | ~200K | Free/local AI film pipelines, consistent characters, ComfyUI + Blender VFX | 🟢✅ | | [Theoretically Media](https://www.youtube.com/@TheoreticallyMedia) | @TheoreticallyMedia | 191K | 14K–47K | ~28K | AI video tools (Seedance, Kling, Runway, Google Omni), production tests | 🟡🔥 | **[Mickmumpitz](https://www.youtube.com/@mickmumpitz)** is the one to watch here — free/local AI film pipelines with *consistent characters* (the actual hard problem), ComfyUI wired into Blender VFX, ~200K average views. **[Theoretically Media](https://www.youtube.com/@TheoreticallyMedia)** is your tool-coverage layer: Seedance, Kling, Runway, tested against production use rather than cherry-picked demos. ### Tier 14 — Official Vendor Channels (source of truth) | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [OpenAI](https://www.youtube.com/@OpenAI) | @OpenAI | 1.99M | 3.1K–125K | ~23K | "ChatGPT Work" enterprise suite, Codex, GPT-5.6 use cases | 🟢✅ | | [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) | @GoogleDeepMind | 902K | 7.4K–588K | ~179K | Gemini 3 Deep Think, science AI (drug-resistance, WeatherNext), agents | 🟢✅ | | [Anthropic](https://www.youtube.com/@anthropic-ai) | @anthropic-ai | 732K | 6.2K–806K | ~315K | Claude Fable 5 / Opus, interpretability, Cowork, MCP, safety | 🟢✅ | | [Hugging Face](https://www.youtube.com/@HuggingFace) | @HuggingFace | 137K | 1.3K–78K | ~14.4K | Coding agents (Tau), LeRobot, MoE, RoPE, ML Club/Podcast | 🟢✅ | Subscribe to all four — it's marketing, but it's *primary-source* marketing, and when a model drops the vendor video is ground truth for what was actually claimed. The engagement numbers tell their own story: **[Anthropic](https://www.youtube.com/@anthropic-ai) averages ~315K views** (interpretability research and safety content that people genuinely watch), **DeepMind ~179K** (the science-AI work — drug resistance, WeatherNext — is legitimately great), while **[OpenAI](https://www.youtube.com/@OpenAI) averages just ~23K on 1.99M subs** — heavily enterprise-oriented output that even their own audience skips. **[Hugging Face](https://www.youtube.com/@HuggingFace)** is the sleeper: ML Club sessions and RoPE/MoE explainers that function as a free grad seminar. ### Tier 15 — Creative AI & "Weird Programs" | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Emergent Garden](https://www.youtube.com/@EmergentGarden) | @EmergentGarden | 273K | 14K–1.7M | ~250K | "Recursive Self-Improvement", AI-in-Minecraft (Mindcraft), cellular automata, "I Quit My Job to Make Weird Programs" | 🟢✅ | Another one-channel tier that refuses to be merged into anything else. **[Emergent Garden](https://www.youtube.com/@EmergentGarden)** makes narrative-driven programming videos about emergence and complexity — LLM agents surviving in Minecraft (the Mindcraft project), cellular automata, recursive self-improvement — and the flagship "I Quit My Job to Make Weird Programs" tells you everything about the vibe. Extremely high signal wrapped in genuine playfulness. 273K subs, ~250K average: near-perfect engagement. ### Tier 17 — Robotics & Maker Engineering | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Michael Reeves](https://www.youtube.com/@MichaelReeves) | @MichaelReeves | 7.8M | 5.2M–13M | ~8M | Dog catapult, scam-bot, goldfish stock-trading (comedic robotics) | 🟢💤 | | [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) | @StuffMadeHere | 4.75M | 2.2M–7.3M | ~5M | Robot golf, autocorrect putter, high-production engineering builds | 🟢🐢 | | [Code Bullet](https://www.youtube.com/@CodeBullet) | @CodeBullet | 3.46M | 1.3M–3.5M | ~2.4M | AI plays games, "same game" dev challenges | 🟡🐢 | | [Sebastian Lague](https://www.youtube.com/@SebastianLague) | @SebastianLague | 1.4M | 142K–6.1M | ~800K | Coding neural nets from scratch, Rubik's solver, fluid/ray-tracing sims | 🟢🔥 | | [James Bruton](https://www.youtube.com/@jamesbruton) | @jamesbruton | 1.4M | 47K–256K | ~100K | Ball-balancing robots, 5-servo biped, ESP32 hexapod — open code/CAD | 🟢🔥 | | [DroneBot Workshop](https://www.youtube.com/@Dronebotworkshop) | @Dronebotworkshop | 677K | 5.3K–150K | ~50K | ESP32 TTS/OTA/low-power, Arduino Uno Q, LiDAR sensors | 🟢🔥 | | [Paul McWhorter](https://www.youtube.com/@paulmcwhorter) | @paulmcwhorter | 440K | 883–1.6K | ~1.2K | "AI on the Edge" series — OpenCV facial recognition, object tracking | 🟢🔥 | | [Skyentific](https://www.youtube.com/@Skyentific) | @Skyentific | 116K | 8.7K–28K | ~17K | EtherCAT robot comms, NVIDIA Isaac Lab bipedal sim-to-real | 🟢🐢 | | [Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics) | @ArticulatedRobotics | 75.5K | ❓ | ❓ | ROS tutorials, mobile-robot build series (page crashed) | 🟢❓ | Robotics YouTube skews entertainment-heavy at the top — Reeves at an 8M average, [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) at 5M, [Code Bullet](https://www.youtube.com/@CodeBullet) at 2.4M — glorious to watch, thin to learn from. For *rigorous* robotics: **[Skyentific](https://www.youtube.com/@Skyentific)** (EtherCAT comms, NVIDIA Isaac Lab sim-to-real), **[Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics)** (the ROS tutorial series everyone recommends), and **[Paul McWhorter](https://www.youtube.com/@paulmcwhorter)'s** "AI on the Edge" (OpenCV facial recognition on real hardware, taught with infinite patience at a ~1.2K average that deserves 100×). The special case: **[Sebastian Lague](https://www.youtube.com/@SebastianLague)**. His "Coding Adventures" — neural nets from scratch, fluid sims, ray tracing — are the most beautiful programming videos ever made. Full stop. And one honest flag on **[James Bruton](https://www.youtube.com/@jamesbruton)**: universally praised for open-sourcing every build's code and CAD, but several Redditors note the *explanations* stay surface-level past Arduino basics. Watch for inspiration, read his repos for depth. --- ## Part 7: The Graveyard and the Blacklist *Who to stop expecting new content from, who never earned a slot, and the one name that's an active warning.* ### Tier 18 — Research Interviews & Foundations (largely legacy/sparse) | Channel | Handle | Subs | Recent views (min–max) | Avg | Latest-upload themes | Grade | |---|---|---:|---|---:|---|:--:| | [Aleksa Gordić — The AI Epiphany](https://www.youtube.com/@TheAIEpiphany) | @TheAIEpiphany | 64.5K | 1.6K–31K | ~5K | Interviews w/ Groq, HuggingFace, Meta, DeepMind researchers | 🟡💤 | | [Connor Shorten](https://www.youtube.com/@connor-shorten) | @connor-shorten | 52.3K | 1K–82K | ~15K | DSPy, Weaviate, RAG explainers | 🔴💤 (1+ yr) | | [Michael Bronstein](https://www.youtube.com/@MichaelBronsteinGDL) | @MichaelBronsteinGDL | 14.4K | ❓ | ❓ | Geometric Deep Learning course lectures | 🟡🐢 | | [Arxiv Insights](https://www.youtube.com/@ArxivInsights) | @ArxivInsights | 103K | ~50.9K historic | — | The famous "why humans learn faster than AI" — Reddit literally asks "what happened?" | 🔴💤 | | [Henry AI Lab](https://www.youtube.com/user/HDNH2610) | @hdnh2610 | 1.6K | ❓ | ❓ | Curated DL-paper video archive; tiny/legacy | 🔴💤 | | [Brandon Rohrer](https://www.youtube.com/@BrandonRohrer) | @BrandonRohrer | 89.8K | 300–9.6K | ~1.5K | "How Data Science Works", CNN-from-scratch series | 🔴💤 | Worth one line each: **Aleksa Gordić** recorded genuinely good researcher interviews (Groq, DeepMind, Meta) before going quiet. **[Michael Bronstein](https://www.youtube.com/@MichaelBronsteinGDL)'s** geometric deep learning lectures remain the reference for that subfield. **[Brandon Rohrer](https://www.youtube.com/@BrandonRohrer)'s** CNN-from-scratch series still teaches convolutions better than most current content. Legacy ≠ worthless — it just means don't wait for episode 2. ### The Dormant and Dead List Decent sub counts, confirmed inactive as *current* resources. Do NOT treat these as live feeds: | Channel | Subs | Last activity | Status | |---|---:|---|---| | [Arxiv Insights](https://www.youtube.com/@ArxivInsights) | 103K | years | 🔴💤 legacy conceptual gold, no new uploads | | [Connor Shorten](https://www.youtube.com/@connor-shorten) | 52.3K | 1+ yr | 🔴💤 | | [Henry AI Lab](https://www.youtube.com/user/HDNH2610) | 1.6K | legacy | 🔴💤 | | [Brandon Rohrer](https://www.youtube.com/@BrandonRohrer) | 89.8K | dormant | 🔴💤 | | [mildlyoverfitted](https://www.youtube.com/@mildlyoverfitted) | 8.05K | 2+ yrs | 🔴💤 | | [David Robinson](https://www.youtube.com/@safe4democracy) | 15.9K | 6+ yrs | 🔴💤 | | Andrew Ng (personal) | 25.9K | 9–14 yrs | 🔴💤 use [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) instead | | [Karpathy](https://www.youtube.com/@AndrejKarpathy) | 1.57M | ~1 yr | 🟢💤 reference library, not a feed | | [Umar Jamil](https://www.youtube.com/@umarjamilai) / [Jay Alammar](https://www.youtube.com/@arp_ai) / [Aladdin Persson](https://www.youtube.com/@AladdinPersson) | 85K / 64.6K / 92.3K | ~1 yr | 🟢💤 evergreen but inactive | | [AI Coffee Break](https://www.youtube.com/@AICoffeeBreak) | 64.3K | ~8 mo | 🟢💤 | | [James Briggs](https://www.youtube.com/@jamesbriggs) | 81.4K | ~9 mo | 🟢💤 | | [Brandon Foltz](https://www.youtube.com/@BrandonFoltz) / [zedstatistics](https://www.youtube.com/@zedstatistics) / [Reducible](https://www.youtube.com/@Reducible) | — | 1–3 yrs | 🟡💤 prerequisite supplements only | Note the two different 💤 flavors: the 🔴💤 rows are channels whose content has aged past usefulness or whose communities have moved on. The 🟢💤 rows — [Karpathy](https://www.youtube.com/@AndrejKarpathy) above all — are *libraries*: dormant as feeds, permanent as curricula. ### The Blacklist One name, and it's non-negotiable: **Siraj Raval**. Repeatedly flagged for plagiarism (including of an academic paper) and course-refund fraud. From Reddit (u/new_name_who_dis_, +18): > "I remember when this sub used to hate this guy for all his fraud" The complicated truth: his early videos genuinely motivated a lot of beginners into ML, and some of those people are researchers now. But motivation isn't trust, and there are ten channels in Tier 1–2 of this guide that teach the same material without the plagiarism. Not a trusted source. ### Candidates Discovered but Not Admitted For completeness — names that surfaced in Reddit recommendations but failed my verification bar. Listing them so you know they weren't *missed*, they were *checked*: | Candidate | Reason not admitted | |---|---| | @cognibuild / Cognibuild AI | YouTube page repeatedly failed to render for content/activity verification | | @spatialwebai | One Reddit link only; page didn't render enough to establish focus/identity | | @g0t4 | Resolves more to a developer/GitHub presence than a validated AI channel | | SwissCognitive | No canonical YT page recovered | | Varun Mayya | Broader career/business creator, not clearly AI-first | | MarkTechPost | Primarily a publication/site signal, not a validated YT channel | | DailyDoseofDS | No canonical YT channel / reliable current context recovered | --- ## Part 8: Subscription Strategy *You don't need 185 channels. You need the right 8–12 for what you're actually doing. Pick your stack.* ### The Curated Stacks **🛠️ Agentic engineering (if you ship code with agents daily):** [Cole Medin](https://www.youtube.com/@ColeMedin) · [IndyDevDan](https://www.youtube.com/@indydevdan) · [Sam Witteveen](https://www.youtube.com/@samwitteveenai) · [AI Jason](https://www.youtube.com/@AIJasonZ) · [Matt Pocock](https://www.youtube.com/@mattpocockuk) · [GosuCoder](https://www.youtube.com/@GosuCoder) · [Brian Casel](https://www.youtube.com/@briancasel) · [AI Engineer](https://www.youtube.com/@aiDotEngineer) (conf) · [Anthropic](https://www.youtube.com/@anthropic-ai) · [OpenAI](https://www.youtube.com/@OpenAI) **🖥️ Local models & hardware truth (before you spend money on GPUs):** [Donato Capitella](https://www.youtube.com/@donatocapitella) · [Alex Ziskind](https://www.youtube.com/@AZisk) · [Fahd Mirza](https://www.youtube.com/@fahdmirza) · [Mukul Tripathi](https://www.youtube.com/@MukulTripathi) · [Digital Spaceport](https://www.youtube.com/@DigitalSpaceport) · [Token Chaser](https://www.youtube.com/@tokenchaser) · [Protorikis](https://www.youtube.com/@Protorikis) · [Julia Turc](https://www.youtube.com/@juliaturc1) · [bycloud](https://www.youtube.com/@bycloudAI) · [Level1Techs](https://www.youtube.com/@Level1Techs) **🔬 Research awareness without living on arXiv:** [AI Explained](https://www.youtube.com/@aiexplained-official) · [bycloud](https://www.youtube.com/@bycloudAI) · [Yannic Kilcher](https://www.youtube.com/@YannicKilcher) · [MLST](https://www.youtube.com/@MachineLearningStreetTalk) · [Two Minute Papers](https://www.youtube.com/@TwoMinutePapers) · [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) · [Discover AI](https://www.youtube.com/@code4AI) · [Neural Breakdown w/ AVB](https://www.youtube.com/@avb_fj) · [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) **🧮 Foundations from zero (the self-taught degree):** [3Blue1Brown](https://www.youtube.com/@3blue1brown) · [StatQuest](https://www.youtube.com/@statquest) · [Karpathy](https://www.youtube.com/@AndrejKarpathy) · [Sebastian Raschka](https://www.youtube.com/@SebastianRaschka) · [Umar Jamil](https://www.youtube.com/@umarjamilai) · [Serrano Academy](https://www.youtube.com/@SerranoAcademy) · [Welch Labs](https://www.youtube.com/@WelchLabs) · [Steve Brunton](https://www.youtube.com/@Eigensteve) · [Alexander Amini](https://www.youtube.com/@AAmini) · [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) **🎨 Image/video systems:** [Latent Vision](https://www.youtube.com/@latentvision) · [Sebastian Kamph](https://www.youtube.com/@sebastiankamph) · [Nerdy Rodent](https://www.youtube.com/@NerdyRodent) · [Olivio Sarikas](https://www.youtube.com/@OlivioSarikas) · [Mickmumpitz](https://www.youtube.com/@mickmumpitz) · [Theoretically Media](https://www.youtube.com/@TheoreticallyMedia) · [SECourses](https://www.youtube.com/@SECourses) **📰 Daily awareness (routing only — verify elsewhere):** [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) · [Nate B Jones](https://www.youtube.com/@NateBJones) · [AI Explained](https://www.youtube.com/@aiexplained-official) · [Hard Fork](https://www.youtube.com/@hardfork) ### Master Leaderboard: Top 40 by Subscriber Count For the record — and as a standing exhibit of why this metric alone tells you almost nothing (compare #25 [Fahd Mirza](https://www.youtube.com/@fahdmirza)'s 2.7K average against #26 [Anthropic](https://www.youtube.com/@anthropic-ai)'s 315K): | # | Channel | Subs | Avg recent views | Tier | |--:|---|---:|---:|---| | 1 | [3Blue1Brown](https://www.youtube.com/@3blue1brown) | 8.47M | 1.69M | T1 | | 2 | [Michael Reeves](https://www.youtube.com/@MichaelReeves) | 7.8M | 8M | T17 | | 3 | [Lex Fridman](https://www.youtube.com/@lexfridman) | 5.02M | 879K | T6 | | 4 | [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) | 4.75M | 5M | T17 | | 5 | [Fireship](https://www.youtube.com/@Fireship) | 4.23M | 663K | T8 | | 6 | [Code Bullet](https://www.youtube.com/@CodeBullet) | 3.46M | 2.4M | T17 | | 7 | [Computerphile](https://www.youtube.com/@Computerphile) | 2.63M | 108K | T5 | | 8 | [OpenAI](https://www.youtube.com/@OpenAI) | 1.99M | 23K | T14 | | 9 | [Two Minute Papers](https://www.youtube.com/@TwoMinutePapers) | 1.83M | 110K | T4 | | 10 | [IBM Technology](https://www.youtube.com/@IBMTechnology) | 1.74M | 19K | T8 | | 11 | [StatQuest](https://www.youtube.com/@statquest) | 1.66M | ~6K* | T1 | | 12 | [Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy) | 1.57M | 2.06M | T2 | | 13 | [Krish Naik](https://www.youtube.com/@krishnaik06) | 1.46M | 63K | T3 | | 14 | [sentdex](https://www.youtube.com/@sentdex) | 1.44M | 64K | T3 | | 15 | [James Bruton](https://www.youtube.com/@jamesbruton) | 1.4M | 100K | T17 | | 16 | [Sebastian Lague](https://www.youtube.com/@SebastianLague) | 1.4M | 800K | T17 | | 17 | [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) | 1.36M | 309K | T6 | | 18 | [Tina Huang](https://www.youtube.com/@TinaHuang1) | 1.25M | 220K | T11 | | 19 | [Matt Wolfe](https://www.youtube.com/@mreflow) | 978K | 82K | T8 | | 20 | [Asianometry](https://www.youtube.com/@asianometry) | 944K | 180K | T16 | | 21 | [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) | 902K | 179K | T14 | | 22 | [Welch Labs](https://www.youtube.com/@WelchLabs) | 887K | ~130K | T1 | | 23 | [Nate Herk](https://www.youtube.com/@nateherk) | 853K | 78K | T11 | | 24 | [Liam Ottley](https://www.youtube.com/@LiamOttley) | 819K | 55K | T11 | | 25 | [Fahd Mirza](https://www.youtube.com/@fahdmirza) | 763K | 2.7K | T9 | | 26 | [Anthropic](https://www.youtube.com/@anthropic-ai) | 732K | 315K | T14 | | 27 | [AI Search](https://www.youtube.com/@theAIsearch) | 704K | 166K | T8 | | 28 | [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) | 681K | — | T3 | | 29 | [DroneBot Workshop](https://www.youtube.com/@Dronebotworkshop) | 677K | 50K | T17 | | 30 | [Greg Isenberg](https://www.youtube.com/@GregIsenberg) | 670K | 83K | T11 | | 31 | [Luke Barousse](https://www.youtube.com/@LukeBarousse) | 650K | 2M | T3.5 | | 32 | [CampusX](https://www.youtube.com/@campusx-official) | 638K | 25K | T3 | | 33 | [Matthew Berman](https://www.youtube.com/@matthew_berman) | 623K | 98K | T8 | | 34 | [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) | 584K | 6K | T7.5 | | 35 | [Theo](https://www.youtube.com/@t3dotgg) ([t3.gg](https://www.youtube.com/@t3dotgg)) | 549K | 117K | T7 | | 36 | [Steve Brunton](https://www.youtube.com/@Eigensteve) | 540K | 14K | T1 | | 37 | [Alex Ziskind](https://www.youtube.com/@AZisk) | 531K | 117K | T9 | | 38 | [Nick Saraev](https://www.youtube.com/@nicksaraev) | 469K | 81K | T11 | | 39 | [Paul McWhorter](https://www.youtube.com/@paulmcwhorter) | 440K | 1.2K | T17 | | 40 | [AI Explained](https://www.youtube.com/@aiexplained-official) | 435K | 90K | T7 | *(Ranks 41–185 are fully tabulated within their tier sections above; [StatQuest](https://www.youtube.com/@statquest) average is partial — only 3 recent view counts rendered.)* --- ### Cross-Cutting Insights If you skimmed everything above, these seven findings are the takeaway: 1. **Subscribers ≠ current reach.** The sharpest example bears repeating: [Fahd Mirza](https://www.youtube.com/@fahdmirza) (763K subs, ~2.7K avg) vs [Anthropic](https://www.youtube.com/@anthropic-ai) (732K subs, ~315K avg) — **~115×** apart at the same badge. Judge live relevance by recent-view average × recency, never subscriber count alone. 2. **The legends are dormant.** [Karpathy](https://www.youtube.com/@AndrejKarpathy), [Umar Jamil](https://www.youtube.com/@umarjamilai), [Jay Alammar](https://www.youtube.com/@arp_ai), [Aladdin Persson](https://www.youtube.com/@AladdinPersson), [AI Coffee Break](https://www.youtube.com/@AICoffeeBreak), [James Briggs](https://www.youtube.com/@jamesbriggs), [Arxiv Insights](https://www.youtube.com/@ArxivInsights), [Connor Shorten](https://www.youtube.com/@connor-shorten) — enormous averages computed on stale evergreen hits. Reference libraries, not feeds. Plan your learning accordingly: back-catalog time is scheduled study, not passive subscription. 3. **Hype is formulaic but algorithmically rewarded.** Berman, [Wes Roth](https://www.youtube.com/@WesRoth), [TheAIGrid](https://www.youtube.com/@TheAiGrid), and Shapiro post 🔥 daily and pull 13K–98K averages while running exactly the "SHOCKING / INSANE / is HERE (WOAH)" titles their own communities criticize. The counter-proof that depth *can* scale: Dwarkesh (~309K), [bycloud](https://www.youtube.com/@bycloudAI) (~83K), [MLST](https://www.youtube.com/@MachineLearningStreetTalk) (~37K). The audience for substance exists; most creators just don't compete for it. 4. **Agentic coding is the hottest zone on the platform by cadence.** [Cole Medin](https://www.youtube.com/@ColeMedin) posting 6 hours before my scrape, [Nate Herk](https://www.youtube.com/@nateherk) 11h, [Riley Brown](https://www.youtube.com/@rileybrownai) 7h, [AI Engineer](https://www.youtube.com/@aiDotEngineer) within hours of events — nearly all of Tier 10/11 is 🔥, and everyone is converging on Claude Code / Codex / harness engineering. That's where the frontier is moving, measured by creator behavior rather than anyone's opinion. 5. **ComfyUI/SD is quietly cooling at the top.** Olivio has slowed to 🐢, [Scott Detweiler](https://www.youtube.com/@sedetweiler) has gone 💤 — while [Nerdy Rodent](https://www.youtube.com/@NerdyRodent), [Sebastian Kamph](https://www.youtube.com/@sebastiankamph), and the now-verified [Latent Vision](https://www.youtube.com/@latentvision) remain the active reliable core. Content ecosystems have lifecycles; this one has plateaued. 6. **Robotics skews entertainment-heavy.** Reeves (8M avg), [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) (5M), [Code Bullet](https://www.youtube.com/@CodeBullet) (2.4M) dominate reach — but for rigorous robotics you want [Skyentific](https://www.youtube.com/@Skyentific), [Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics), and [Paul McWhorter](https://www.youtube.com/@paulmcwhorter)'s "AI on the Edge" at 1/1000th the views. 7. **Benchmark numbers are configuration-specific.** The 40-vs-130 tok/s Radeon discrepancy is the emblem: runtime choice (Ollama vs llama.cpp vs vLLM) can 3× a result on identical hardware. Never quote a creator's benchmark as universal — including the ones in this guide. ### Final Thought: Curate Like an Engineer The AI content ecosystem in 2026 has a shape, and once you see it you can't unsee it: - The **foundations** are dormant but immortal — study them like books. - The **frontier** is covered brilliantly by a handful of channels that prove depth scales. - The **news** layer is a routing system — let it point you at primary sources, never let it be the source. - The **hardware** channels are honest but configuration-bound — trust the method, verify the number. - The **builders** are moving faster than any other zone — that velocity *is* the signal about where this field is going. You wouldn't build a production system on unverified claims and vanity metrics. Don't build your information diet on them either. **Start with three:** - **[3Blue1Brown](https://www.youtube.com/@3blue1brown)** — so you understand what's underneath - **[AI Explained](https://www.youtube.com/@aiexplained-official)** — so you know what actually happened this week - **One channel from your work-specific stack** in Part 8 — so it compounds Then prune quarterly, the way this directory does: check the recency, check the real engagement, and unsubscribe without sentiment. ## Methodology ### Scope, Dates, and Data Collection - **Evidence snapshot:** July 12–13, 2026. - **Core scrape:** 68 channels scraped live, then merged with three research-addendum passes from the same week. - **Directory size:** roughly 185 distinct channels across 24 active thematic tiers, plus the separately labeled Tier 18 legacy section, a dormant/dead list, a blacklist, and a not-admitted log. - **Recent-view window:** approximately the latest 15 public uploads per channel. This is not a lifetime average. - **Primary signals:** subscriber count, recent view minimum/maximum/average, latest-upload themes, upload recency, source verification, and attributed Reddit reputation evidence. - **Reconciliation rule:** conflicting stats resolve to the freshest scrape. The original values remain disclosed in the reconciliation table. - **Alias rule:** handles and creator aliases were de-duplicated when the supplied corpus established they were the same channel. - **Editorial treatment:** the user-supplied corpus is authoritative for its stated scrape dates. This publication pass reorganized, copy-edited, and localized the corpus; it did not run a new web scrape. ### Inclusion and Exclusion Rules A channel was included when it had a recognizable AI, ML, data-science, local-inference, agentic-engineering, creative-AI, robotics, semiconductor, vendor, or adjacent practitioner role and enough current or evergreen evidence to justify a place in the directory. Some channels appear in more than one tier when their work genuinely spans categories; they still count as one distinct channel. Candidates found in Reddit recommendations were not admitted when the corpus could not recover a canonical YouTube page, establish a stable AI-first identity, or verify enough current activity to classify them honestly. The not-admitted table is part of the evidence trail, not an invitation to infer that those creators are low quality. ### Coverage and Honest Gaps - **Still unverified after repeated provider failures:** [Level1Techs](https://www.youtube.com/@Level1Techs), [Venelin Valkov](https://www.youtube.com/@venelin_valkov), [Donato Capitella](https://www.youtube.com/@donatocapitella)’s video list (subscriber count confirmed at 99.7K), [BMad Code](https://www.youtube.com/@BMadCode), [SECourses](https://www.youtube.com/@SECourses), Benji’s AI Playground, Peter Yang, [Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics), [This Week in AI](https://www.youtube.com/@ThisWeekinAIPodcast), [Practical AI](https://www.youtube.com/@practicalai_show), [Michael Bronstein](https://www.youtube.com/@MichaelBronsteinGDL), [Jeff Heaton](https://www.youtube.com/@JeffHeaton), [Henry AI Lab](https://www.youtube.com/user/HDNH2610), plus metrics for [Neural Breakdown with AVB](https://www.youtube.com/@avb_fj), [Gal Lahat](https://www.youtube.com/@GalLahat), [Reducible](https://www.youtube.com/@Reducible), [Brandon Foltz](https://www.youtube.com/@BrandonFoltz), and [zedstatistics](https://www.youtube.com/@zedstatistics). - **Partial rendering:** [StatQuest](https://www.youtube.com/@statquest)’s average is based on only three recent view counts because the rest did not render during the scrape. - **Reddit provenance:** the supplied corpus includes attributed quotations, usernames, and upvote counts, but not exact thread URLs for every quotation. This report preserves those attributions and does not fabricate missing links. - **Freshness decays:** every 🔥, ✅, 🐢, and 💤 marker describes July 12–13, 2026. A channel can move from active to dormant within a quarter; the ranking method should outlive any individual grade. - **Benchmark comparability:** local-model performance depends on runtime, quantization, context length, drivers, kernels, and other configuration details. The reported values describe creators’ tested setups, not universal hardware guarantees. - **Signal grades are editorial:** 🟢, 🟡, and 🔴 synthesize the supplied research and Reddit reputation record. They are not objective safety or quality certifications. ### Reproducibility Notes The corpus reports ten stat conflicts reconciled to the freshest scrape, preserves every unverifiable metric with `❓`, and keeps the graveyard separate from the blacklist: dormancy, low current utility, hype, and active trust concerns are different findings. The source also distinguishes 24 active thematic tiers from the Tier 18 legacy/sparse section placed inside the graveyard; this report preserves that original organization instead of forcing a misleading renumbering. The directory should be refreshed quarterly by re-running the recent-upload scrape, checking alias collisions, re-evaluating recency grades, and reviewing whether formerly unverified channels now render. Subscriber counts should remain context, not the ranking target. ## Sources The load-bearing dataset for this report is the **user-provided July 12–13, 2026 live scrape and three same-week research synthesis passes**. The frontmatter source list points to direct channel pages across the main tiers. The following links are the principal public reference points named in the corpus; the complete channel catalog appears in the tier tables above. ### Foundations and Implementation - [3Blue1Brown](https://www.youtube.com/@3blue1brown) - [StatQuest](https://www.youtube.com/@statquest) - [Welch Labs](https://www.youtube.com/@WelchLabs) - [Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy) - [Sebastian Raschka](https://www.youtube.com/@SebastianRaschka) - [Umar Jamil](https://www.youtube.com/@umarjamilai) - [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) - [MIT 6.S191 / Alexander Amini](https://www.youtube.com/@AAmini) ### Frontier, News, and Interviews - [bycloud](https://www.youtube.com/@bycloudAI) - [Yannic Kilcher](https://www.youtube.com/@YannicKilcher) - [Machine Learning Street Talk](https://www.youtube.com/@MachineLearningStreetTalk) - [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) - [AI Explained](https://www.youtube.com/@aiexplained-official) - [Theo – t3.gg](https://www.youtube.com/@t3dotgg) - [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) - [Hard Fork](https://www.youtube.com/@hardfork) ### Hardware, Builders, and Creative Systems - [Alex Ziskind](https://www.youtube.com/@AZisk) - [Donato Capitella](https://www.youtube.com/@donatocapitella) - [Token Chaser](https://www.youtube.com/@tokenchaser) - [Cole Medin](https://www.youtube.com/@ColeMedin) - [IndyDevDan](https://www.youtube.com/@indydevdan) - [Sam Witteveen](https://www.youtube.com/@samwitteveenai) - [AI Engineer](https://www.youtube.com/@aiDotEngineer) - [Latent Vision](https://www.youtube.com/@latentvision) - [Mickmumpitz](https://www.youtube.com/@mickmumpitz) - [Asianometry](https://www.youtube.com/@Asianometry) ### Primary Vendor Channels - [OpenAI](https://www.youtube.com/@OpenAI) - [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) - [Anthropic](https://www.youtube.com/@anthropic-ai) - [Hugging Face](https://www.youtube.com/@HuggingFace) ### Reddit Reputation Sources Named in the Corpus - [r/learnmachinelearning](https://www.reddit.com/r/learnmachinelearning/) - [r/LocalLLaMA](https://www.reddit.com/r/LocalLLaMA/) - [r/MachineLearning](https://www.reddit.com/r/MachineLearning/) - [r/ClaudeAI](https://www.reddit.com/r/ClaudeAI/) These communities form the reputational backbone of the supplied grades and quotations. Exact thread URLs were not included for every quote, so they are not invented here. ## [tr] 2026'da Takip Edilecek AI YouTube Kanalları: Sinyale Göre 185 Kanal URL: https://yigitkonur.com/tr/research/ai-youtube-channels-to-follow-2026 Kind: research-report Published: 2026-07-13 Updated: Mon Jul 13 | Snapshot | Notlar | | --- | --- | | Kapsam | `24 aktif tematik tier` içinde yaklaşık `185 kanal`; ayrıca bir legacy tier, graveyard, blacklist ve kabul edilmeyen adaylar log'u | | Ana sinyaller | `2026-07-12/13` tarihli kullanıcı kaynaklı live scrape, yaklaşık son 15 public upload'ın view'ları, üç research synthesis pass'i, kanal aktivitesi ve kaynakta attribution'ı bulunan Reddit reputation sinyalleri | | Net sonuç | Feed'i subscriber sayısıyla değil, `güncel erişim × recency × sinyal kalitesi × doğrulama` ile sırala; evergreen curriculum'ları küçük ve aktif bir frontier katmanı ile işine özel stack'le birleştir | ## Executive Summary 2026'da AI YouTube'da kimi takip edeceğini seçmek mayın tarlasında yürümek gibi. Bir yıldır video atmayan sekiz milyon subscriber'lı efsaneler var; 763K subscriber'ı olup video başına ~2.7K view alan kanallar var; bir de akşamını yemek için optimize edilmiş günlük “SHOCKING!!! AGI IS HERE!!!” thumbnail duvarı var. Ama iyi bir feed hızlı karar vermek zorunda. Bu rapor, kullanıcının sağladığı research corpus'la başlıyor: **2026-07-12/13** tarihinde 68 core kanal live scrape edilmiş, sonuçlar aynı haftadaki üç deep-research pass'iyle birleştirilmiş, çelişen istatistikler kanal kanal reconcile edilmiş, “[Token Chaser](https://www.youtube.com/@tokenchaser)” / “Token Chasers” gibi alias çakışmaları tekilleştirilmiş ve set **24 aktif tematik tier içinde yaklaşık 185 ayrı kanala** genişletilmiş. Graveyard bölümündeki ayrı “Tier 18” legacy etiketi de yeniden numaralandırılıp kaybedilmeden korunuyor. Bu bir “en iyi 10 AI YouTuber” listesi değil. Recency, sinyal kalitesi ve doğrulamayı ayrı değerlendiriyor; pozitif önerilerin yanında Reddit uyarılarını da saklıyor; canlı feed'lerle evergreen referans library'lerini birbirinden ayırıyor; sonunda foundations, research awareness, daily news, local modeller, agentic engineering ve image/video sistemleri için hazır stack'ler veriyor. En önemli sonuç subscriber rozetiyle güncel erişim arasındaki uçurum. [Fahd Mirza](https://www.youtube.com/@fahdmirza)'nın 763K subscriber'ı ve ~2.7K recent-view ortalaması var; [Anthropic](https://www.youtube.com/@anthropic-ai)'in 732K subscriber'ı ve ~315K ortalaması var. Rozet neredeyse aynı, güncel erişim **~115×** farklı. Derinlik de ölçeklenebiliyor: [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) uzun teknik röportajlarda ~309K, [bycloud](https://www.youtube.com/@bycloudAI) mimari explainer'larda ~83K ortalama çekiyor. Rapordaki minimum, maksimum ve ortalama view değerleri lifetime performanstan değil, her kanalın yaklaşık **son 15 public upload'ından** hesaplanıyor. Dormant kanallar eski evergreen hit'lerle yüksek ortalama gösterebilir; günlük kanallar ise şu anki gerçek çekimini gösterir. [Karpathy](https://www.youtube.com/@AndrejKarpathy)'nin ~2.06M ortalaması canlı bir yayın feed'i değil, olağanüstü back catalog'unun çekim gücü. > **Provenance notu:** Temel dataset kullanıcı tarafından sağlandı ve yönlendirilmiş deep research ile live scraping sonucu üretildi. Ben bunu research report formatına taşıdım, honesty flag'lerini korudum; bağımsız olarak yeniden scrape etmedim veya eksik veriyi sessizce değiştirmedim. Her `❓`, kaynak corpus'un doğrulayamadığı bir claim olarak kalıyor. ## Bu Rapor Nasıl Kullanılır Rapor bilinçli olarak uzun. Önündeki karara göre doğrudan ilgili bölüme git. | Durumun | Buradan başla | Ortalama süre | | --- | --- | ---: | | “Math'i gerçekten anlamak istiyorum.” | Part 1: Temeller | 20 dk | | “arXiv'de yaşamadan research-aware kalayım.” | Part 2: Frontier | 15 dk | | “Bugün ne olduğunu söyle.” | Part 3: News Diet | 10 dk | | “Local LLM rig kuruyorum.” | Part 4: Hardware Gerçeği | 15 dk | | “Her gün agent'larla code ship ediyorum.” | Part 5: Builder'lar | 15 dk | | “Image/video/weird program yapıyorum.” | Part 6: Creator'lar | 10 dk | | “Kimi unfollow etmeliyim?” | Part 7: Graveyard ve Blacklist | 5 dk | | “Bana direkt stack'leri ver.” | Part 8: Subscription Stratejisi | 5 dk | ## Değerlendirme Çerçevesi Her kanal üç ayrı grade taşıyor. Üçü farklı soruya cevap veriyor; hepsini tek skora sıkıştırmak, feed'i hiç izlemediğin 40 kanalla doldurmanın en kolay yolu. **Recency — canlı bir feed mi, müze mi?** - 🔥 bu hafta upload etti - ✅ bu ay upload etti - 🐢 son 1–3 ay içinde upload etti - 💤 4 ay veya daha uzun; feed olarak fiilen dormant **Sinyal kalitesi — içerik gerçekten ne veriyor?** - 🟢 high-signal, derin veya low-hype - 🟡 sağlam ve pratik ama mixed - 🔴 hype flag'li ya da kaynak Reddit synthesis'inde tartışmalı **Doğrulama — veri scrape'ten sağ çıktı mı?** - ❓ kanal sayfası bu pass'te Jina, Scrape.do ve Kernel'da başarısız oldu; rapor metric uydurmak yerine işaretliyor ### Subscriber Sayıları Neden Yanıltıyor Subscriber sayısı arkeolojik bir kalıntı: kanalın bir zamanlar subscribe edilmeye değer olduğunu söylüyor. Recent-view ortalaması, bugün feed'inde yer hak edip etmediği için daha güçlü sinyal. Bu yüzden aşağıdaki karşılaştırmalar **recent-view ortalaması × recency × sinyal grade'i** üzerinde duruyor; doğrulama durumu ayrı tutuluyor. ### Stat Çakışmaları ve Reconciliation Kullanıcının sağladığı research pass'leri bazen birbiriyle uyuşmadı. Freshest scrape ana kaynak; farklar sessizce ortalanmak yerine açıkça gösteriliyor. | Kanal | Pass A | Pass B | Çözüm | | --- | ---: | ---: | --- | | [Welch Labs](https://www.youtube.com/@WelchLabs) | 400K subs | 887K subs | **887K**; daha fresh scrape, `@WelchLabs` / `@welchlabs` aynı kanal | | [Julia Turc](https://www.youtube.com/@juliaturc1) | 48K subs | 72.1K subs | **72.1K**; daha fresh, tek kanal `@juliaturc1` | | [Token Chaser](https://www.youtube.com/@tokenchaser) | 25K | 7.5K | **7.5K**; daha fresh live scrape, “[Token Chaser](https://www.youtube.com/@tokenchaser)” / “Token Chasers” aynı creator | | [Donato Capitella](https://www.youtube.com/@donatocapitella) | 8K subs | 99.7K subs | **99.7K**; 8K verisi eskiydi | | [Nate B Jones](https://www.youtube.com/@NateBJones) | 6K subs | 305K subs | **305K**; 6K bir mis-scrape'ti | | [GosuCoder](https://www.youtube.com/@GosuCoder) | 15K | 27.1K | **27.1K**; daha fresh scrape | | [Emergent Garden](https://www.youtube.com/@EmergentGarden) | 200K | 273K | **273K**; daha fresh scrape | | [Asianometry](https://www.youtube.com/@asianometry) | 941K | 944K | **944K**; daha fresh scrape, küçük growth farkı | | [Brian Casel](https://www.youtube.com/@briancasel) | 23K | 69.5K | **69.5K**; daha fresh scrape | | [Latent Vision](https://www.youtube.com/@latentvision) | unverified ❓ | 38.5K confirmed | **38.5K verified**; 🟢✅ olarak upgrade edildi | Tablodaki en önemli düzeltme [Latent Vision](https://www.youtube.com/@latentvision): core scrape doğrulayamadı, sonraki pass 38.5K subscriber'ı ve recent view'ları doğruladı. Bu, ComfyUI tier'indeki yerini ciddi biçimde değiştiriyor. ## Part 1: Temeller *Math, statistics, sıfırdan implementation ve yapılandırılmış dersler. AI'ı abstraction layer'ın altında anlamak için gideceğin yer burası; içerik evergreen olduğu için dormancy'nin en az önemli olduğu bölüm de bu.* ### Tier 1 — Matematik Temelleri ve Görsel Sezgi “Abstraction layer’ın altını anlamak istiyorum” tier’i. Raw math, fizik ve low-level model mekanikleri. Yavaş cadence, evergreen değer. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [3Blue1Brown](https://www.youtube.com/@3blue1brown) | @3blue1brown | 8.47M | 403K–6.1M | ~1.69M | Entropy / “compression is intelligence”, Laplace transform, topology, quantum computing, “AI image’lar nasıl çalışıyor” | 🟢✅ | | [StatQuest](https://www.youtube.com/@statquest) | @statquest | 1.66M | 1.8K–12K* | ~6K* | Linear programming / Simplex, Random Forests pt.2, False Discovery Rate | 🟢🔥 | | [Welch Labs](https://www.youtube.com/@WelchLabs) | @WelchLabs | 887K | ~297K (recent single); historic 12K–680K | ~130K–297K | “What the Books Get Wrong About AI [Double Descent]”, *Neural Networks Demystified*, backprop/matrix visual serisi | 🟢🐢 | | [Steve Brunton](https://www.youtube.com/@Eigensteve) | @Eigensteve | 540K | 5.8K–51K | ~14K | Optimization bootcamp, Bayesian regression, Monte Carlo, hypothesis testing | 🟢🔥 | | [ritvikmath](https://www.youtube.com/@ritvikmath) | @ritvikmath | 211K | 1.8K–14K | ~5.1K | Regularization, conjugate prior, contextual bandit, bilinmesi gereken 4 LLM parametresi | 🟢🐢 | | [Serrano Academy](https://www.youtube.com/@SerranoAcademy) | @SerranoAcademy | 194K | 912–13K | ~4.2K | Neural net’lerin space’i bükmesi, RAG / vector DB, tokenization, GRPO / DeepSeek | 🟢🔥 | | [Julia Turc](https://www.youtube.com/@juliaturc1) | @juliaturc1 | 72.1K | 25.5K–36.3K | ~30K | World model, flow-matching physics, MoE gating, tensor core, FP4 quantization, efficient serving | 🟢✅ | *\*[StatQuest](https://www.youtube.com/@statquest) partial — only 3 recent view counts rendered during the scrape.* **[3Blue1Brown](https://www.youtube.com/@3blue1brown)** — Bu directory’den yalnızca bir kanala subscribe olacaksan o kanal bu. Grant Sanderson’ın entropy, “compression is intelligence”, Laplace transform ve AI image’ların nasıl çalıştığı üzerine son serisi, 20 dakikalık videonun gerçekten bir semester’ın yerini alabildiği nadir feed’lerden. 8.47M subscriber ve ~1.69M recent average; reach’i rozetine gerçekten uyan o neredeyse imkânsız kanal. **[StatQuest](https://www.youtube.com/@statquest)** — Herkes legacy sandığı sırada haftalık upload’a devam ediyor: Simplex method, Random Forests, False Discovery Rates. Küçük recent-view sayılarını yanlış okuma; statistics fundamentals trend olmaz ama birikir. Eval pipeline’ın açıklayamadığın bir p-value ürettiğinde iyi ki subscribe olmuşum diyeceğin kanal. **[Welch Labs](https://www.youtube.com/@WelchLabs)** — Efsane *Neural Networks Demystified* kanalı; backpropagation ve matrix operation’larını adım adım animate etmesi r/learnmachinelearning’de sürekli övülüyor. Reconciliation önemli: bir pass 400K subs diyordu, fresh scrape **887K** gösteriyor. “What the Books Get Wrong About AI” double-descent videosu bu rozeti haklı çıkaran içerik; textbook’ların nerede yanlış olduğunu animation’la gösteriyor. **[Steve Brunton](https://www.youtube.com/@Eigensteve)** — University of Washington professor’ından ücretsiz graduate program gibi kanal: optimization bootcamp, Bayesian regression, Monte Carlo. Bu hafta 🔥 upload ediyor. Linear algebra sağlam ama *applied* math tarafın sallanıyorsa gap-filler bu. **[ritvikmath](https://www.youtube.com/@ritvikmath)** — Interview’larda gerçekten sorulan regularization, conjugate prior ve contextual bandit konularını kompakt whiteboard formatında anlatıyor. “4 must-know LLM params” videosu, dakika başına bilgi yoğunluğunun sana uyup uymadığını anlamak için iyi test. **[Serrano Academy](https://www.youtube.com/@SerranoAcademy)** — Luis Serrano’nun geometrik anlatım yeteneği var; “neural nets bending space” tam söylediği şeyi yapıyor ve akılda kalıyor. Yeni GRPO/DeepSeek coverage’ı, visual-intuition yöntemini sadece klasiklerde değil current architecture’larda da kullandığını gösteriyor. **[Julia Turc](https://www.youtube.com/@juliaturc1)** — Bu tier’in, belki de bütün rehberin sleeper pick’i. Ex-Google Research engineer (YC S24); MoE gating, flow-matching physics, tensor core ve FP4 quantization gibi *modern* architecture’ların high-level matematik anlatımında YouTube’un en iyi teknik kaynaklarından biri sayılıyor. 72.1K subs ve ~30K average; subscriber tabanının %40’tan fazlasının her videoyu izlemesi bu tier’deki en güçlü engagement sinyali. Serving/quantization işi yüzünden local-inference tier’inde de cross-list edildi. --- ### Tier 1.5 — İstatistik ve ML Ön Koşulları AI-first feed’ler değiller; ama ML evaluation, regression, probability ve deneysel reasoning’in temelleri için gerçekten faydalılar. Subscription değil, gerektiğinde açılan supplement gibi kullan. | Kanal | Handle | Subs | Recent view | Ortalama | Odak | Grade | |---|---|---:|---|---:|---|:--:| | [Brandon Foltz](https://www.youtube.com/@BrandonFoltz) | @BrandonFoltz | — | — | — | Intro statistics, finite math, management science, statistical learning | 🟡💤 (upload’lar ~2 yıllık) | | [zedstatistics](https://www.youtube.com/@zedstatistics) | @zedstatistics | — | — | — | Regression, survival analysis, distribution, hypothesis testing, probability intuition | 🟡💤 (upload’lar ~3 yıllık) | | [Reducible](https://www.youtube.com/@Reducible) | @Reducible | — | — | — | Animated CS konseptleri — A* search, Fourier, TSP, PageRank, image compression | 🟡💤 (en yeni upload ~1 yıllık) | Üçü de dormant ve burada bunun önemi yok. **[zedstatistics](https://www.youtube.com/@zedstatistics)**, probability intuition için bir data-science thread’inde “en iyisi” diye anılmış; probability intuition da 2023’ten beri değişmedi. **[Reducible](https://www.youtube.com/@Reducible)**, A* search, Fourier transforms ve PageRank ile “computer science’ın [3Blue1Brown](https://www.youtube.com/@3blue1brown)’u”na en yakın kanal. Textbook gibi kullan: ihtiyacın olan bölümü aç. --- ### Tier 2 — Sıfırdan LLM ve Derin Implementation Engineering Transformer / GPT / attention / training loop’u elinle yazdığın developer canon’u. Baştan rahatsız edici gerçeği söyleyeyim: **çoğu dormant.** Aşağıdaki ortalamalar evergreen hit’lerle şişiyor. Fresh feed değil, referans library’si gibi yaklaş. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy) | @AndrejKarpathy | 1.57M | 36K–8.1M | ~2.06M | “How I use LLMs”, GPT-2’yi yeniden üretmek, GPT tokenizer yapmak, makemore, micrograd | 🟢💤 | | [Sebastian Raschka](https://www.youtube.com/@SebastianRaschka) | @SebastianRaschka | 90K | 11K–168K | ~52K | LLM architecture karşılaştırmaları, *Build-an-LLM-from-Scratch* serisi, finetuning, pretraining | 🟢🐢 | | [Umar Jamil](https://www.youtube.com/@umarjamilai) | @umarjamilai | 85K | 12K–219K | ~70K | Triton’da Flash Attention, sıfırdan multimodal VLM, DeepSeek-R1, DPO / RLHF, Mamba/S4 | 🟢💤 | | [Aladdin Persson](https://www.youtube.com/@AladdinPersson) | @AladdinPersson | 92.3K | 616–5.8K | ~1.7K | Paper review, recommender foundation model, LLaMA4, career content | 🟢💤 | | [Jay Alammar](https://www.youtube.com/@arp_ai) | @arp_ai | 64.6K | 3.9K–222K | ~42K | Transformer LLM dersi, tool use kullanan LLM agent’ları, tokenizer, illustrated Word2Vec | 🟢💤 | | [CodeEmporium](https://www.youtube.com/@CodeEmporium) | @CodeEmporium | 157K | 511–11K | ~2.8K | Transformer vs YOLO, CV timeline, diffusion, DALL-E, CLIP, ViT, DETR | 🟢🔥 | | [Venelin Valkov](https://www.youtube.com/@venelin_valkov) | @venelin_valkov | 34.9K | ❓ page crashed 3× | ❓ | Custom model benchmark script’leri, Python DL deploy’ları, [Hugging Face](https://www.youtube.com/@HuggingFace) pipeline’ları | 🟢❓ | | [mildlyoverfitted](https://www.youtube.com/@mildlyoverfitted) | @mildlyoverfitted | 8.05K | 1.8K–29K | ~8K | PyTorch paper-to-code (BentoML, RAG, NER) | 🔴💤 (2+ yıldır inactive) | | [Abhishek Thakur](https://www.youtube.com/@abhishekkrthakur) | @abhishekkrthakur | 124K | 430–182K | ~25K | RAG / hybrid search / BM25 tutorial’ları (4× Kaggle Grandmaster) | 🟡🐢 (yavaşlıyor) | **[Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy)** — Tartışmasız seçim; Reddit burada hedge etmiyor. r/learnmachinelearning’den (u/Log_Dogg, +128 upvote): > "Literally the goat, I can't think of a single better resource" Ve doğru: micrograd, makemore, “build the GPT tokenizer”, GPT-2’yi yeniden üretmek — platformda transformer’ı bu kadar içini açarak öğreten başka bir kaynak yok. Ama recency grade’e bak: 💤, son upload ~1 yıl önce. ~2.06M ortalama eski evergreen çekim gücü. [Karpathy](https://www.youtube.com/@AndrejKarpathy) bir *curriculum*, subscription değil. Back catalog’u kitap gibi çalış. **[Sebastian Raschka](https://www.youtube.com/@SebastianRaschka)** — *Build-an-LLM-from-Scratch* yazarı ve from-scratch canon’un en canlısı; 🐢 ama 💤 değil. Altı paper okumadan model generation’ları arasında neyin gerçekten değiştiğini anlamanın en hızlı yolu architecture-comparison videoları. **[Umar Jamil](https://www.youtube.com/@umarjamilai)** — Bu tier’in en derin teknik içeriği, net. Triton’da Flash Attention implementasyonu. Sıfırdan multimodal VLM. DPO, RLHF, Mamba/S4. “Gerçekten anlamak istiyorum” diyenlere gösterdiğim kanal; tek caveat, son upload’ın üstünden ~1 yıl geçti. **[Jay Alammar](https://www.youtube.com/@arp_ai)** — Illustrated-transformer guy. Tokenizer ve Word2Vec visual explainer’ları, [Umar Jamil](https://www.youtube.com/@umarjamilai) içeriğini takip edilebilir kılan on-ramp. Dormant, evergreen, essential. **[CodeEmporium](https://www.youtube.com/@CodeEmporium)** — Tier’in sürprizi: efsaneler uyurken haftalık 🔥 upload ediyor. Diffusion, CLIP, ViT, DETR; computer-vision ağırlıklı sağlam mid-depth explainer’lar. **Kalanlar, hızlıca:** **[Aladdin Persson](https://www.youtube.com/@AladdinPersson)** (92.3K), PyTorch implementation’dan paper review ve career içeriğine kaydı. **[Venelin Valkov](https://www.youtube.com/@venelin_valkov)** Python-heavy ve hands-on ama sayfası üç scraper’ı da çökertti; 34.9K subs confirmed, video metric’leri unverified ❓. **[mildlyoverfitted](https://www.youtube.com/@mildlyoverfitted)** çok iyi paper-to-code işi yapıyor ama 2+ yıldır inactive. **[Abhishek Thakur](https://www.youtube.com/@abhishekkrthakur)** (4× Kaggle Grandmaster) yavaşladı; RAG/BM25/hybrid-search tutorial’ları hâlâ pratik. --- ### Tier 3 — Applied ML, Bootcamp Dersleri ve Model Tooling End-to-end pipeline’lar, roadmap’ler, framework dersleri. “İzledim”in “yaptım”a dönüştüğü yer. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Krish Naik](https://www.youtube.com/@krishnaik06) | @krishnaik06 | 1.46M | 3.6K–496K | ~63K | Agentic AI dersi, LangGraph / RAG, Claude Code, AgentOps, LLM guardrail/eval | 🟡🔥 | | [sentdex](https://www.youtube.com/@sentdex) | @sentdex | 1.44M | 17K–308K | ~64K | Evde frontier AI, open-source AI, Unitree G1 humanoid robotics, LLM agent’ları | 🟢🔥 | | [CampusX](https://www.youtube.com/@campusx-official) | @campusx-official | 638K | 3.8K–68K | ~25K | LLM evaluation serisi, Claude Code hook/subagent, advanced RAG | 🟢🔥 | | [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) | @Deeplearningai | 681K | 47K–935K | — | AI for Everyone, Andrew Ng ile prompting dersi — Ng’nin **aktif** kanalı | 🟢🔥 | | [Alexander Amini](https://www.youtube.com/@AAmini) | @AAmini | 355K | 8.7K–203K | ~51K | MIT 6.S191 — CNN, RNN/transformer, deep generative, RL, AI for Science | 🟢✅ | | [Data School](https://www.youtube.com/@dataschool) | @dataschool | 261K | 1.1K–15K | ~3.5K | scikit-learn mastery, RAG, budget AI modelleri | 🟡💤 | | [Daniel Bourke](https://www.youtube.com/@mrdbourke) | @mrdbourke | 250K | 2.3K–240K | ~40K | SLM / on-device finetuning, DGX Spark, local multimodal RAG, “AI & ML Monthly” | 🟢🐢 | | [deeplizard](https://www.youtube.com/@deeplizard) | @deeplizard | 169K | 1.8K–14K | ~6.1K | Stable Diffusion masterclass, computational graph, AI art | 🟡✅ | | [Machine Learning w/ Phil](https://www.youtube.com/@MachineLearningwithPhil) | @MachineLearningwithPhil | 45.1K | 631–39K | ~6.6K | Deep RL (PPO/DDPG/SAC/TD3), Ollama local LLM, low-level programming | 🟢💤 | | [Jeremy Howard / fast.ai](https://www.youtube.com/@howardjeremyp) | @howardjeremyp | — | — | — | “Dangerous Illusion of AI Coding” röportajı, Answer.ai advocacy | 🟢✅ | | [Jeff Heaton](https://www.youtube.com/@JeffHeaton) | @JeffHeaton | 96.2K | ❓ | ❓ | Legacy ML content, Second Life ML videoları | 🟡💤 | ⚠️ **Korunması gereken düzeltme:** **Andrew Ng’nin *personal* kanalı** (`@andrewyantakng`, 25.9K subs) ölü bir Baidu-era archive; videolar 9–14 yıllık. İnsanlar name recognition yüzünden önermeye devam ediyor. Etme. Ng artık **[DeepLearning.AI](https://www.youtube.com/@Deeplearningai)** org kanalında yayınlıyor ve kanal 🔥 active. **[sentdex](https://www.youtube.com/@sentdex)** — Harrison Kinsley on yıldır Python-first ML öğretiyor; calcify olmak yerine evde frontier AI çalıştırıyor, Unitree G1 humanoid test ediyor. 1.44M subs, hâlâ 🔥, hâlâ 🟢. Yaşlandıkça *daha* ilginç hâle gelen nadir mega-channel. **[Alexander Amini](https://www.youtube.com/@AAmini)** — Bu MIT 6.S191: gerçek MIT deep learning dersi, free, updated, YouTube’da. CNN’den transformer’a, RL’den AI-for-Science’a gidiyor. Playlist mood-board değil structured semester istiyorsan buradan başla. **[CampusX](https://www.youtube.com/@campusx-official)** — Tier’in en current curriculum enerjisi: LLM evaluation serisi ve *Claude Code hook/subagent* içeriği. Course kanalları frontier’ın genelde bir yıl gerisinde kalır; bu kalmıyor. Hindi/English mix, çok structured. **[Krish Naik](https://www.youtube.com/@krishnaik06)** — Agentic AI, LangGraph, guardrail ve eval tarafında dev output. 🟡, editing’den çok volume’a oynaması için; filtrelemen gerekecek ama gerçek materyal var ve cadence’i bu hafta ship edilen şeyi bu hafta kapsıyor. **[Daniel Bourke](https://www.youtube.com/@mrdbourke)** — On-device finetuning, DGX Spark deneyleri, local multimodal RAG ve “AI & ML Monthly” digest. Gerçekten faydalı engineering detayları olan learn-in-public enerjisi. **Bilmen gereken diğerleri:** scikit-learn fundamentals için **[Data School](https://www.youtube.com/@dataschool)** (💤 ama evergreen), Stable Diffusion internals için **[deeplizard](https://www.youtube.com/@deeplizard)**, platformdaki en derin deep-RL back catalog’u için **[Machine Learning with Phil](https://www.youtube.com/@MachineLearningwithPhil)** (PPO/DDPG/SAC/TD3 implementation’ları), bir de **[Jeremy Howard](https://www.youtube.com/@howardjeremyp)**. [fast.ai](https://www.youtube.com/@howardjeremyp) felsefesi Answer.ai’da yaşıyor; “Dangerous Illusion of AI Coding” röportajı Part 5 kitlesi için zorunlu contrarian listening. --- ### Tier 3.5 — Applied Data Science ve Analyst Kariyeri Career path, portfolio projesi ve analyst tooling. AI-adjacent, pratik odaklı. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Luke Barousse](https://www.youtube.com/@LukeBarousse) | @LukeBarousse | 650K | 1.2M–3.1M | ~2M | Power BI ve Excel full data-analyst dersleri | 🟢✅ | | [Nicholas Renotte](https://www.youtube.com/@NicholasRenotte) | @NicholasRenotte | 328K | 7.2K–43K | ~22K | RL Godot agent, LoRA finetuning, LangGraph trading agent’ları | 🟢🐢 | | [Ken Jee](https://www.youtube.com/@KenJee_ds) | @KenJee_ds | 278K | 1.5K–44K | ~11K | AI-disruption / SaaS-building içeriğine pivot ediyor | 🟡✅ | | [David Robinson](https://www.youtube.com/@safe4democracy) | @safe4democracy | 15.9K | 1K–5.1K | ~2.4K | TidyTuesday / Riddler screencast’leri (6+ yıldır dormant) | 🔴💤 | | [Astroniz](https://www.youtube.com/c/Astroniz) | @Astroniz | 4.31K | 65–3.4K | ~500 | Python ile NASA SPICE, asteroid/comet tracking, “AI in Astronomy” | 🟢🐢 | **[Luke Barousse](https://www.youtube.com/@LukeBarousse)** rakamlarına tekrar bak: 650K subs, **~2M ortalama view**. Power BI ve Excel full-course formatı subscriber tabanını ciddi biçimde aşıyor; dormant efsanelerin tam tersi. **[Nicholas Renotte](https://www.youtube.com/@NicholasRenotte)** burada en AI-forward kanal: Godot içinde RL agent’ları, LoRA finetuning, LangGraph trading agent’ları. **[Ken Jee](https://www.youtube.com/@KenJee_ds)** pure data science’tan AI-disruption içeriğine pivot ediyor; grade’i buna göre oku. **[Astroniz](https://www.youtube.com/c/Astroniz)** ise harika bir micro-channel: Python ile NASA SPICE toolkit, asteroid tracking, astronomy’de AI — 4.31K subs’lik saf niche sinyal. --- ## Part 2: Frontier *Paper review'ları, researcher röportajları, safety ve podcast dünyası. arXiv'de yaşamadan research-aware kalma katmanı.* ### Tier 4 — Research Paper İncelemeleri ve Derin Teknik Analiz Primary-source walkthrough’lar. “Basics’in ötesi” tier’i ve derinliğin audience tutabildiğinin kanıtı. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Two Minute Papers](https://www.youtube.com/@TwoMinutePapers) | @TwoMinutePapers | 1.83M | 34K–320K | ~110K | DeepSeek speed hack, DeepMind/NVIDIA/Claude demo, hızlı paper awareness | 🟡🔥 | | [Yannic Kilcher](https://www.youtube.com/@YannicKilcher) | @YannicKilcher | 326K | 9.4K–172K | ~45K | Paper analizi (TiDAR, Titans, GRPO/DeepSeekMath), “AGI is not coming!”, ML News | 🟢🐢 | | [MLST](https://www.youtube.com/@MachineLearningStreetTalk) ([Machine Learning Street Talk](https://www.youtube.com/@MachineLearningStreetTalk)) | @MachineLearningStreetTalk | 218K | 4.9K–161K | ~37K | Researcher röportajları (Jumper, M. Jordan, [Jeremy Howard](https://www.youtube.com/@howardjeremyp)), AGI/cognition | 🟢🔥 | | [bycloud](https://www.youtube.com/@bycloudAI) | @bycloudAI | 228K | 18K–314K | ~83K | DeepSeek architecture, LLM efficiency, JEPA, recursive LM | 🟢🔥 | | [AI Coffee Break](https://www.youtube.com/@AICoffeeBreak) ([Letitia](https://www.youtube.com/@AICoffeeBreak)) | @AICoffeeBreak | 64.3K | 2.7K–45K | ~11.5K | Flow-matching vs diffusion, energy-based transformer, decoding strategy | 🟢💤 | | [Discover AI](https://www.youtube.com/@code4AI) | @code4AI | 15.3K | 1.1K–12K | ~4.1K | Derin teknik paper evaluation, model context limit’leri, retrieval mechanics | 🟢✅ | | [hu-po](https://www.youtube.com/@hu-po) | @hu-po | 18.2K | 1.3K–5.7K | ~2.8K | Livestream paper deep dive’ları (RLHF, Gemini context, LDM) | 🟡💤 | **[bycloud](https://www.youtube.com/@bycloudAI)** — Tier’in standout’ı ve teknik derinliğin YouTube’da scale olamayacağını söyleyenlere verdiğim counter-example. DeepSeek’in gerçek architecture’ı, JEPA, recursive LM, LLM efficiency; tek “SHOCKING” thumbnail olmadan hızlı ve komik anlatılıyor, ~83K average çekiyor. Technical-but-fun gerçek bir lane ve sahibi bu kanal. **[Yannic Kilcher](https://www.youtube.com/@YannicKilcher)** — Paper-review veteran’ı. Abstract yetmediğinde ama appendix’le tek başına kavga etmeye hazır olmadığında TiDAR, Titans, GRPO/DeepSeekMath walkthrough’ları burada. Bilinçli contrarian çizgiyi de not et: “AGI is not coming!” Exponential curve dolu feed’de en az bir skeptic gerekli. **[MLST](https://www.youtube.com/@MachineLearningStreetTalk)** — AI YouTube’un intellectually en ciddi interview programı. John Jumper, Michael Jordan — basketbolcu değil statistician — ve [Jeremy Howard](https://www.youtube.com/@howardjeremyp)’ın cognition ile AGI üzerine uzun uzun konuştuğu başka neresi var? Dense, felsefi, bazen yorucu; iyi anlamda. **[Two Minute Papers](https://www.youtube.com/@TwoMinutePapers)** — “What a time to be alive!” Károly’nin coşkusu artık meme ve format demo-hype’a kaydı; 🟡 bunun için. Ama *paper-awareness firehose* olarak hâlâ çalışıyor: sonucu birkaç gün içinde duy, sonra paper’ı kendin oku. **[Discover AI](https://www.youtube.com/@code4AI)** — 15.3K subs’lik hidden gem. Mainstream kanalların uğraşmadığı actual code ve architecture parameter’larına daha derin girdiği için Reddit’te övülüyor. Retrieval mechanics ve gerçek context-limit davranışı gibi sisteminin çalışıp çalışmamasını belirleyen şeyleri büyük kanalların atladığı depth’te anlatıyor. **Ayrıca:** **[AI Coffee Break](https://www.youtube.com/@AICoffeeBreak)** ([Letitia](https://www.youtube.com/@AICoffeeBreak)) çok iyi flow-matching-vs-diffusion explainer’ları yapıyor ama ~8 aydır sessiz. **[hu-po](https://www.youtube.com/@hu-po)**, saatler süren paper dissection livestream’leri yapıyor; niche format, gerçek depth, son dönemde dormant. --- ### Tier 4.5 — Görsel ve Teknik ML Explainer'ları Implementation tutorial’ları ile paper-driven açıklamalar arasında kompakt bir bridge tier. | Kanal | Handle | Odak | Grade | |---|---|---|:--:| | [Neural Breakdown with AVB](https://www.youtube.com/@avb_fj) | @avb_fj | LLM, NLP, CV, RL, transformer, paper walkthrough; son konu = Unsloth DPO/SLM-alignment (~1 ay) | 🟢✅ | | [Gal Lahat](https://www.youtube.com/@GalLahat) | @GalLahat | Attention visualization, CNN, LLM memory, hallucination, infinite zoom, simulated system | 🟢🐢 | İkisi de metric scrape’i çökertti; subscriber/view değerleri unverified. Yine de ikisi de zamanına değer. **[Neural Breakdown with AVB](https://www.youtube.com/@avb_fj)**, Unsloth DPO ve SLM alignment gibi current-frontier konuları boyutunun çok üstünde animation kalitesiyle anlatıyor. **[Gal Lahat](https://www.youtube.com/@GalLahat)**, attention ve LLM memory’yi hallucination mekanik olarak *anlaşılır* hâle gelecek şekilde görselleştiriyor. --- ### Tier 5 — AI Safety, Alignment ve Bilim Explainer'ları | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Computerphile](https://www.youtube.com/@Computerphile) | @Computerphile | 2.63M | 16K–583K | ~108K | Shor algorithm, AI token’ları neden pahalı, “Clever Hans” AI, post-quantum crypto | 🟢🔥 | | [Robert Miles AI Safety](https://www.youtube.com/@RobertMilesAI) | @RobertMilesAI | 170K | 53K–360K | ~189K | Alignment, mesa-optimizer, specification gaming | 🟢✅ | Küçük tier, filler yok. **[Computerphile](https://www.youtube.com/@Computerphile)** hâlâ “fanfold paper önünde whiteboard anlatan professor” formatının en iyi kanalı. “why AI tokens are expensive” ve “Clever Hans AI” videoları tam colleague’e gönderilecek içerik. **[Robert Miles](https://www.youtube.com/@RobertMilesAI)** seyrek upload ediyor ama ratio’ya bak: 170K subs, ~189K ortalama view. *Ortalama videosu subscriber sayısını geçiyor.* Her upload essential olunca böyle oluyor; mesa-optimizer ve specification gaming anlatımları canonical referansa dönüşüyor. --- ### Tier 6 — Uzun Röportaj Podcast'leri | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Lex Fridman](https://www.youtube.com/@lexfridman) | @lexfridman | 5.02M | 320K–1.7M | ~879K | Geniş röportajlar (Jensen Huang, physics, history); AI bir subset | 🔴✅ | | [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) | @DwarkeshPatel | 1.36M | 70K–904K | ~309K | Derin teknik AI röportajları (training paradigm, Terence Tao + AI, chip design) | 🟢🔥 | | [No Priors](https://www.youtube.com/@NoPriorsPodcast) | @NoPriorsPodcast | 88.2K | 1.2K–46K | ~15K | VC-adjacent founder/CEO röportajları (Zuckerberg, Intel, [OpenAI](https://www.youtube.com/@OpenAI)’dan Noam Brown) | 🟡🔥 | | [TWIML AI Podcast](https://www.youtube.com/@twimlai) | @twimlai | 30.3K | — | — | Uzun soluklu AI/ML research röportajları | 🟢✅ | | [Latent Space](https://www.youtube.com/@LatentSpaceTV) | @LatentSpaceTV | 2.35K | 46–3.7K | ~423 | AI engineer’lar için “AI in Action” + “Paper Club” (audio-first) | 🟢✅ | | [Unsupervised Learning](https://www.youtube.com/@RedpointAI) ([Redpoint](https://www.youtube.com/@RedpointAI)) | @RedpointAI | 10K | 400–12K | ~2.5K | Jacob Effron’dan AI founder’larla engineering constraint ve scaling röportajları | 🟢✅ | | The Robot Brains Podcast | — | — | — | — | Research pass’lerinde önerildi; bu pass’te YT-first olarak doğrulanmadı | 🟡❓ | **[Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel)** — Şu an yayınlanan en iyi pure-AI interview show, net. Homework’ünü yapıyor; paper’ları gerçekten okuyor, training-paradigm tartışmalarını gerçekten anlıyor. Konuklar da başka yerde vermedikleri cevapları veriyor. Terence Tao ile AI, chip design deep dive’ları, gerçekten teknik konuşmalarda ~309K average. “Depth scales” için en güçlü veri noktam. **[Lex Fridman](https://www.youtube.com/@lexfridman)** — Massive reach’e rağmen 🔴 flag’li. AI artık gittikçe genişleyen programın bir *subset’i*; Jensen Huang’ın yanında history ve physics episode’ları var. Ton polarizing, teknik follow-up az. Guest list’te değer var; ne aldığını bil. **[Latent Space](https://www.youtube.com/@LatentSpaceTV)** — 2.35K YouTube subs seni yanıltmasın; bu audio-first bir podcast, YT presence’ı yan ürün. Gerçek çalışan AI engineer’lar arasında near-canonical. “Paper Club” ve “AI in Action”, büyük programların yapamadığı practitioner discourse’un tam karşılığı. **Ayrıca:** VC/founder view için **[No Priors](https://www.youtube.com/@NoPriorsPodcast)** (Zuckerberg, Noam Brown), uzun soluklu research-interview institution olarak **TWIML**, founder’ların gerçek engineering constraint’lerini konuştuğu **[Unsupervised Learning](https://www.youtube.com/@RedpointAI)** ([Redpoint](https://www.youtube.com/@RedpointAI)). --- ### Tier 6.5 — Business ve Practitioner Podcast/News Programları | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Hard Fork](https://www.youtube.com/@hardfork) | @hardfork | 62.7K | 4.7K–258K | ~25K | Sundar Pichai / Satya Nadella röportajları, [OpenAI](https://www.youtube.com/@OpenAI) trial coverage | 🟢🔥 | | [AI For Humans](https://www.youtube.com/@AIForHumansShow) | @AIForHumansShow | 38.2K | 5.7K–9.3K | ~7.5K | GPT-5.6 Sol, Fable 5 survival, Claude/Alibaba spying story | 🟢🔥 | | [How I AI](https://www.youtube.com/@howiaipodcast) | @howiaipodcast | 102K | 3.8K–70K | ~20K | Live harness build, GPT-5.6 Sol benchmark, Claude Code loop’ları | 🟢🔥 | | [The Artificial Intelligence Show](https://www.youtube.com/@aishowpod) | @aishowpod | — | — | — | Org adoption, agent security, business transformation, policy | 🟢✅ | | [Last Week in AI](https://www.youtube.com/@lastweekinai) | @lastweekinai | 5.89K | 882–1.2K | ~1K | Numaralı haftalık AI-news recap (#249, #248…) | 🟢✅ | | [This Week in AI](https://www.youtube.com/@ThisWeekinAIPodcast) | @ThisWeekinAIPodcast | 8.2K | ❓ | ❓ | Alex Finn / Naveen Rao röportajları (sayfa çöktü) | 🟡❓ | | [Practical AI](https://www.youtube.com/@practicalai_show) | @practicalai_show | 750 | — | — | Podcast-first, minimal YT presence | 🟡❓ | Özellikle ayıracağım kanal **[How I AI](https://www.youtube.com/@howiaipodcast)**. Konuklar gerçek harness’lerini ve Claude Code loop’larını *ekranda canlı* kuruyor; podcast olup aynı zamanda Part 5 agentic-coding kaynağına dönüşen nadir format. **[Hard Fork](https://www.youtube.com/@hardfork)**, NYT yapımı big-picture katmanı; **[Last Week in AI](https://www.youtube.com/@lastweekinai)** ise completionist’ler için güvenilir numaralı haftalık recap. --- ## Part 3: News Diet *Model takibi ve günlük awareness; filtrelemen gereken hype miktarına göre sıralı. Kuralım şu: news kanalları primary source'lara giden routing layer'dır, verification layer değil.* ### Tier 7 — High-Signal AI News | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [AI Explained](https://www.youtube.com/@aiexplained-official) | @aiexplained-official | 435K | 41K–152K | ~90K | Sourced model breakdowns (GPT-5.6, Claude Fable, Gemini), benchmarks, policy | 🟢✅ | | [Theo – t3.gg](https://www.youtube.com/@t3dotgg) | @t3dotgg | 549K | 71K–170K | ~117K | Dev-lens model reviews (GPT-5.6, Codex, local models, "moving to Linux") | 🟢🔥 | **[AI Explained](https://www.youtube.com/@aiexplained-official)** — Yeni frontier model çıktığında izlemeye değer ilk non-vendor analiz. Reddit’ten (u/astgabel, +33): > "the gold standard… down-to-earth and least hype-y channel for AI news" Her claim source’lu, benchmark’lar gerçekten context’e oturtuluyor, policy coverage doomer-bait değil. Aynı thread’lerde kalıcı bir caveat da var: bir commenter kanalın “paid content için sales funnel’a dönüştüğünü” söylüyor; artık paid tier var. Ben free videoları hâlâ platformdaki en iyi model-release analizi sayıyorum, ama bütün tabloyu bilmen gerek. **[Theo (t3.gg)](https://www.youtube.com/@t3dotgg)** — Model news’a developer lens’i. [AI Explained](https://www.youtube.com/@aiexplained-official) “bu benchmark ne anlama geliyor?” diye sorarken [Theo](https://www.youtube.com/@t3dotgg) “bunu gerçek codebase’e tutarsam ne olur?” diye soruyor. Opinionated, hızlı, bazen açıkça yanlış çıkıp public düzeltiyor; hiçbir zaman yanlış değilmiş gibi konuşmaktan daha güvenilir. ### Tier 7.5 — Günlük ve Formatı Ayrı AI News | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) | @AIDailyBrief | 584K | 3.3K–11K | ~6K | Daily AI-economy news, model-release recaps (Nathaniel Whittemore) | 🟢🔥 | | [Nate B Jones](https://www.youtube.com/@NateBJones) | @NateBJones | 305K | 16K–90K | ~35K | Near-daily AI strategy, agent economics, enterprise adoption, Claude memory build | 🟢🔥 | | [Asianometry](https://www.youtube.com/@asianometry) | @asianometry | 944K | ~202K recent; historic 50K–1.2M | ~180K | Semiconductor / AI-hardware history, chip testing, ASML/TSMC, boom-bust cycles | 🟢✅ | | [What's AI](https://www.youtube.com/@WhatsAI) ([Louis Bouchard](https://www.youtube.com/@WhatsAI)) | @WhatsAI | 73.1K | 259–9.3K | ~2K | Loop / harness-engineering explainers, AI-engineering foundations course | 🟢✅ | | [Dr Alan D. Thompson](https://www.youtube.com/@DrAlanDThompson) | @DrAlanDThompson | 59.6K | 1K–26K | ~6K | "First look" humanoid robots (Figure 03, Xiaomi CyberOne), ASI tracking | 🟢✅ | **[Nate B Jones](https://www.youtube.com/@NateBJones)** spotlight hak ediyor; kendi pipeline’ım neredeyse gömüyordu. Bir pass 6K subs diye mis-scrape etti, gerçek değer **305K**. Near-daily upload ve neredeyse boş bir lane: AI *strategy* — agent economics, enterprise adoption, release’lerin organizasyonların çalışma biçimi için ne anlama geldiği. Tier 11 automation kalabalığının “$20K/month” framing’i olmayan complement’i. **[AI Daily Brief](https://www.youtube.com/@AIDailyBrief)** günlük awareness’i korumanın en düşük eforlu yolu; Nathaniel Whittemore, sakin, ~15 dakika. **[Asianometry](https://www.youtube.com/@asianometry)** burada cross-list ama asıl yeri Tier 16. **What’s AI** ve **[Dr Alan D. Thompson](https://www.youtube.com/@DrAlanDThompson)** awareness layer’ını tamamlıyor; ikincisi humanoid-robot release tracker’ın. ### Tier 8 — Mainstream AI News ve Tool Roundup'ları Day-1 awareness için faydalı. Reddit receipt’lerinin çıktığı tier de burası; kimin ne sebeple flag’lendiğini net tutalım. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Fireship](https://www.youtube.com/@Fireship) | @Fireship | 4.23M | 292K–1.0M | ~663K | Rapid dev/AI news, "code report", OSS incidents, systems concepts | 🟡🔥 | | [IBM Technology](https://www.youtube.com/@IBMTechnology) | @IBMTechnology | 1.74M | 3.8K–85K | ~19K | Agentic frameworks, MCP vs Skills, KV cache, AI security explainers | 🟢🔥 | | [Matt Wolfe](https://www.youtube.com/@mreflow) | @mreflow | 978K | 38K–109K | ~82K | Weekly "AI News" + tool roundups (FutureTools.io) | 🟡🔥 | | [AI Search](https://www.youtube.com/@theAIsearch) | @theAIsearch | 704K | 73K–498K | ~166K | Weekly AI news + tool/model demos, image/video gen | 🟡🔥 | | [Matthew Berman](https://www.youtube.com/@matthew_berman) | @matthew_berman | 623K | 42K–183K | ~98K | Model testing/news | 🔴🔥 | | [TheAIGrid](https://www.youtube.com/@TheAiGrid) | @TheAiGrid | 396K | 1.9K–77K | ~17K | Daily model leaks/news | 🔴🔥 | | [Wes Roth](https://www.youtube.com/@WesRoth) | @WesRoth | 322K | 19K–155K | ~64K | Paper/news coverage | 🔴🔥 | | [MattVidPro AI](https://www.youtube.com/@MattVidPro) | @MattVidPro | 300K | 4.6K–44K | ~13K | Model/tool testing (GPT-5.6, Fable 5, ElevenLabs, Krea) | 🟡✅ | | [David Shapiro](https://www.youtube.com/@DaveShap) | @DaveShap | 189K | 7.6K–36K | ~17.5K | Post-labor economics, UBI, AGI timelines | 🔴🔥 | | [1littlecoder](https://www.youtube.com/@1littlecoder) | @1littlecoder | 110K | 929–12K | ~3.6K | Fast, practical model tutorials (Claude, OCR, GPT, Nemotron) | 🟡✅ | **“The Matts” hakkında.** [Matt Wolfe](https://www.youtube.com/@mreflow) + [Matthew Berman](https://www.youtube.com/@matthew_berman) + [Wes Roth](https://www.youtube.com/@WesRoth) sürekli birlikte öneriliyor; bir AI videosu izleyen herkesin algorithmic starter pack’i. Her biri için Reddit record’u, aynen: **[Matthew Berman](https://www.youtube.com/@matthew_berman)** için (u/fasti-au): > "He can't code so what he sees is repeated" **[Wes Roth](https://www.youtube.com/@WesRoth)** için (u/zackler6, +86 — bu bir *savunma*): > "videos are actually good… but titles over the top" **[TheAIGrid](https://www.youtube.com/@TheAiGrid)** için (u/MysteriousPepper8908, +25): > "low-quality content mill" Grubun en çok savunulanı **[Matt Wolfe](https://www.youtube.com/@mreflow)** için (u/Substantial-Comb-148, +8): > "my go-to for quick weekly rundowns… always transparent about affiliations upfront" **[David Shapiro](https://www.youtube.com/@DaveShap)** için (u/laudanus, +16): > "eccentric hobbyist… no academic ML background" Benim net görüşüm: bu kanallar gerçek bir problemi çözüyor — bir şey yayınlandıktan birkaç saat içinde haberin oluyor — ama framing tarafında başka bir problem yaratıyor: her şey SHOCKING, INSANE veya HERE (WOAH). *Notification system* gibi kullan, sonra Tier 7 veya vendor kanallarıyla doğrula. Tek katmanın bunlar olmasın. Bu tier’de paketten ayırmaya değer iki istisna var. **[Fireship](https://www.youtube.com/@Fireship)** hype-*paced* ama hype-*brained* değil; “code report” formatı gerçek bilgi yoğunluğunu 4 dakikaya sıkıştırıyor ve 663K ortalama view formatın çalıştığını gösteriyor. **[IBM Technology](https://www.youtube.com/@IBMTechnology)** anti-hype sürprizi: agentic framework’ler, MCP vs Skills ve KV cache üzerine gerçekten sağlam whiteboard explainer’ları üreten corporate kanal, üstelik 🔥 cadence’de. --- ## Part 4: Hardware Gerçeği *Local LLM'ler, runtime benchmark'ları, VRAM gerçeği ve alttaki silicon. r/LocalLLaMA çekirdeği.* ### Tier 9 — Local LLM, Runtime ve Hardware Benchmarking Gerçek benchmark, tok/s, quantization ve local rig; marketing claim’lerinin ölçüldüğü yer. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Fahd Mirza](https://www.youtube.com/@fahdmirza) | @fahdmirza | 763K | 357–7.6K | ~2.7K | High-cadence local model tests, GPU comparisons ($2000 Huawei GPU vs NVIDIA) | 🟢🔥 | | [Alex Ziskind](https://www.youtube.com/@AZisk) | @AZisk | 531K | 58K–324K | ~117K | Apple Silicon vs DGX Spark/AMD, local AI OS impact, 4-bit, tok/s | 🟢🔥 | | [Donato Capitella](https://www.youtube.com/@donatocapitella) | @donatocapitella | 99.7K | ❓ (video list crashed) | ❓ | Strix Halo, Radeon AI Pro 9700, llama.cpp, vLLM, ROCm, agentic-AI security | 🟢🔥 (last upload ~5d) | | [Digital Spaceport](https://www.youtube.com/@DigitalSpaceport) | @DigitalSpaceport | 93.9K | 2.9K–81K | ~31.5K | Local AI server builds, motherboard/CPU combos, Gemma/Qwen benchmarks | 🟢🔥 | | [Julia Turc](https://www.youtube.com/@juliaturc1) | @juliaturc1 | 72.1K | 25.5K–36.3K | ~30K | *(cross-listed from Tier 1)* efficient serving, FP4 quant, MoE | 🟢✅ | | [Bijan Bowen](https://www.youtube.com/@bijanbowen) | @bijanbowen | 64.8K | 16K–48K | ~35K | "First Test / Hands-On" open + local coding model reviews — contested depth | 🟡🔥 | | [Mukul Tripathi](https://www.youtube.com/@MukulTripathi) | @MukulTripathi | — | — | — | RTX Pro 6000 / Blackwell, vLLM, high-context inference, home AI servers | 🟢🐢 | | [Token Chaser](https://www.youtube.com/@tokenchaser) | @tokenchaser | 7.5K | 3.4K–35K | ~9K | Rapid local-vs-cloud head-to-head battles (Qwen3.6, Fable 5, Opus), API-endpoint deploys | 🟢🔥 | | [Protorikis](https://www.youtube.com/@Protorikis) | @Protorikis | 12K | 900–14K | ~4.2K | Quantization perplexity tests, 16→4→2-bit degradation, GGUF/EXL2 | 🟢 | | [Codacus](https://www.youtube.com/@Codacus) | @Codacus | 11K | 800–11K | ~3.5K | Running models on older consumer GPUs, modest-hardware optimization | 🟢 | | [Luke's Dev Lab](https://www.youtube.com/@lukesdevlab) | @lukesdevlab | 6K | 400–5.2K | ~1.6K | Custom model API servers, local context loading, inference optimization | 🟢 | | [Tonbi's AI Garage](https://www.youtube.com/@TonbisAIGarage) | @TonbisAIGarage | 5K | 300–4.1K | ~1.3K | SD parameters, local WebUI configs, custom finetunes | 🟢 | | [Level1Techs](https://www.youtube.com/@Level1Techs) | @Level1Techs | ❓ | — | — | Local AI server hardware, PCIe/GPU virtualization (crashed every scrape pass) | 🟡❓ | #### Benchmark Uyarısı: GPU Almadan Önce Oku Bu kanallardan gelen *herhangi bir* sayıyla checkout’a gitmeden önce tier’in sembolü şu: [Donato Capitella](https://www.youtube.com/@donatocapitella)’nın Radeon AI Pro 9700 videosunun yorumlarında bir Redditor, 4-bit `gpt-oss:20b` için **~40 tok/s** gördüğünü yazdı; videoda **130 tok/s** vardı. Aynı model, aynı kart, **3× fark.** Muhtemel sebep runtime. Ollama, llama.cpp ve vLLM aynı hardware üzerinde gerçekten bu kadar ayrışabiliyor. **Her hardware benchmark’ını universal sonuç değil, config’e özel data point olarak gör.** Kanal yalan söylemiyor; senin stack’in onların stack’i değil. **[Alex Ziskind](https://www.youtube.com/@AZisk)** — Tier’deki gerçekten rigorous en büyük kanal. Apple Silicon vs DGX Spark vs AMD; actual tok/s ve ekranda methodology. Mac Studio ile dedicated GPU box arasında karar veriyorsan back catalog’u doğrudan buyer’s guide. **[Donato Capitella](https://www.youtube.com/@donatocapitella)** — Reconciliation hikâyesi önemli: erken pass 8K subs gösteriyordu; gerçek **99.7K** ve son 5 gün içinde upload var. Strix Halo, ROCm, llama.cpp vs vLLM; ayrıca neredeyse kimsenin engineering rigor ile kapsamadığı *agentic-AI security* ikinci lane’i. **[Token Chaser](https://www.youtube.com/@tokenchaser)** — 7.5K subs ve tier’de en sevdiğim follow’lardan. Format: Qwen3.6 vs Fable 5 vs Opus gibi rapid local-vs-cloud head-to-head’ler, *multi-step qualitative test* olarak çalışıyor; gerçek coding task, gerçek HTTP API deploy. Herkesin benchmark dediği one-shot “snake game yaz” prompt’u değil. Dedup notu: “[Token Chaser](https://www.youtube.com/@tokenchaser)” ve “Token Chasers” aynı creator. **[Protorikis](https://www.youtube.com/@Protorikis)** — Quantization specialist’i. 16-bit → 4-bit → 2-bit perplexity degradation, GGUF vs EXL2; düzgün ölçüm. Q2 gerçekten use case’inde kullanılabilir mi diye soruyorsan gerçek cevap burada. **[Digital Spaceport](https://www.youtube.com/@DigitalSpaceport)** — Full local-AI *server* build’leri: motherboard/CPU kombinasyonu, multi-GPU layout, biten rig üzerinde Gemma/Qwen benchmark’ı. Spektrumun homelab ucu. **Cautionary tale:** **[Fahd Mirza](https://www.youtube.com/@fahdmirza)** — 763K subscriber, ~2.7K average view. Bütün directory’deki en uç badge-vs-reach farkı. 🟢 geçerli: high-cadence, hands-on, dürüst test; $2000 Huawei GPU vs NVIDIA comparison’ı kimsenin yapmadığı içerik. Ama audience onu feed değil search index gibi kullanıyor; doğru kullanım da bu olabilir. **Küçük ama gerçek:** eski consumer GPU’larda model çalıştıran **[Codacus](https://www.youtube.com/@Codacus)** — “average Joe hardware” niche’i; custom model API server için **Luke’s Dev Lab**; local WebUI config ve finetune için **Tonbi’s AI Garage**; RTX Pro 6000 / Blackwell-class home server ve high-context inference için **[Mukul Tripathi](https://www.youtube.com/@MukulTripathi)**. **[Bijan Bowen](https://www.youtube.com/@bijanbowen)**, her open model drop’ına hızlı “first test” yapıyor; velocity faydalı, depth tartışmalı (🟡). **[Level1Techs](https://www.youtube.com/@Level1Techs)** her scrape pass’ini çökertti ama forum-adjacent hardware içeriği iyi biliniyor ❓. --- ### Tier 16 — AI Hardware ve Semiconductor Tarihi Fiziksel substrate: chip design, fab, lithography ve boom/bust cycle’ları. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Asianometry](https://www.youtube.com/@asianometry) | @Asianometry | 944K | 50K–1.2M | ~180K | Semiconductor fab history, LISP machines, "why Soviet computers failed", ASML/TSMC, AI boom-bust | 🟢✅ | Tek kanallık tier; çünkü **[Asianometry](https://www.youtube.com/@Asianometry)**’nin peer’i yok. AI’ı çalıştıran hardware economics üzerine olağanüstü researched essay’ler: ASML monopoly’si, TSMC’nin yükselişi, LISP machine’leri, Soviet computing neden başarısız oldu ve şu an en relevant konu olan semiconductor boom/bust cycle anatomisi. Mevcut AI capex dalgası 1999 mu 2004 mü anlamak istiyorsan archival işi yapan kanal bu. Relevance için news tier’lerinde cross-list, gerçek evi burası. --- ## Part 5: Builder'lar *Agentic coding, harness engineering ve automation business. Upload cadence'ine göre AI YouTube'un şu an en sıcak bölgesi burası: neredeyse herkes 🔥 ve aynı frontier'da birleşiyor — Claude Code, Codex ve multi-agent orchestration.* ### Tier 10 — Agentic Coding: Claude Code / Codex / Harness Engineering Gerçek software development’ın agent loop, context engineering ve multi-agent orchestration ile buluştuğu yer. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Cole Medin](https://www.youtube.com/@ColeMedin) | @ColeMedin | 216K | 1.7K–131K | ~32K | Harness engineering, agent orchestration, Pydantic AI 2.0, [Karpathy](https://www.youtube.com/@AndrejKarpathy) LLM Wiki | 🟢🔥 | | [Matt Pocock](https://www.youtube.com/@mattpocockuk) | @mattpocockuk | 295K | 5.2K–85K | ~32K | Building "shared domain language" w/ agents, testable architectures, deep modules | 🟢 | | [AI Jason](https://www.youtube.com/@AIJasonZ) | @AIJasonZ | 227K | 6.8K–206K | ~47K | Coding agents, Loop/Harness engineering, MCP, "[Anthropic](https://www.youtube.com/@anthropic-ai) killed tool calling" | 🟢✅ | | [IndyDevDan](https://www.youtube.com/@indydevdan) | @indydevdan | 136K | 16K–157K | ~34K | Multi-agent orchestration, Claude Code/Pi Agent, agentic security, local MLX stack | 🟢🔥 | | [Sam Witteveen](https://www.youtube.com/@samwitteveenai) | @samwitteveenai | 124K | 7.8K–82K | ~28K | Model breakdowns + agent/LLM engineering w/ Colab notebooks | 🟢🔥 | | [Brian Casel](https://www.youtube.com/@briancasel) | @briancasel | 69.5K | 2.1K–753K | ~40K | Claude Code CRM / time-tracker builds, git worktrees for parallel agents | 🟢🔥 | | [GosuCoder](https://www.youtube.com/@GosuCoder) | @GosuCoder | 27.1K | 4.1K–61K | ~15K | Weekly AI coding-agent shootouts (GLM, Gemini 3, Opus, Cursor) | 🟢🔥 | | [BMad Code](https://www.youtube.com/@BMadCode) | @BMadCode | 34.2K | ❓ | ❓ | BMad-Method agentic-dev framework tutorials (page crashed) | 🟢❓ | | [Armin Ronacher](https://www.youtube.com/@ArminRonacher) | @ArminRonacher | 9.15K | 4.1K–13K | ~8K | "State of Agentic Coding" monthly series (Flask creator) | 🟢🐢 | | [Matt Maher](https://www.youtube.com/@MetalSole) | @MetalSole | 3K | 200–5K | ~1.1K | Python scripts, local AI coding basics, beginner-friendly environments | 🟢 | Bu tier benim için kişisel; daily workflow’um bu. O yüzden kimin hangi slot’u kazandığını net anlatacağım. **[IndyDevDan](https://www.youtube.com/@indydevdan)** — Reddit’in sürekli “[Anthropic](https://www.youtube.com/@anthropic-ai) dışındaki en iyi Claude Code içeriği” diye seçtiği kanal; ben de katılıyorum. Multi-agent orchestration, agentic security, local MLX stack; median tutorial kanalından düzenli olarak 2–3 ay önde ve anlattığı workflow’ları gerçekten ship ediyor. **[Cole Medin](https://www.youtube.com/@ColeMedin)** — Systematizer. Başkaları demo yaparken Cole harness engineering ve agent orchestration hakkında düşünmek için *framework* kuruyor; Pydantic AI 2.0 materyali referans. Scrape’ten 6 saat önce upload etmişti; cadence frontier’a uyuyor. **[Sam Witteveen](https://www.youtube.com/@samwitteveenai)** — Reddit’ten (u/hassan789_, +17): > "zero fluff, zero BS" Review’un tamamı bu. Model breakdown ve agent engineering; her videoda çalıştırabileceğin Colab notebook. Tier’in en yüksek signal-to-runtime ratio’su. **[GosuCoder](https://www.youtube.com/@GosuCoder)** — 27.1K subs, haftalık coding-agent shootout’ları (GLM vs Gemini 3 vs Opus vs Cursor) ve daha önemlisi açık methodology: structured context management, spec file ve vibe yerine code review. “Don’t vibe to production” yaklaşımı bu bütün content zone için gereken adult supervision. **[Matt Pocock](https://www.youtube.com/@mattpocockuk)** — Ünlü TypeScript educator, AI’ın software engineering’i nasıl yeniden şekillendirdiğine pivot etti: agent’larla “shared domain language”, testable architecture, deep module. Tier’in en *software-engineering-brained* kanalı; agent’ları magic trick değil design problem olarak görüyor. **[Brian Casel](https://www.youtube.com/@briancasel)** — Kamerada gerçek product build ediyor; CRM, time tracker. Bu yıl gördüğüm en faydalı workflow demo’su da onda: **ayrı branch’lerde birden fazla Claude Code agent’ını parallel active tutmak için git worktree**, sonra ayrı review ve merge. Bir videosu 753K view aldı; gerçek build iştahı dev. **[Armin Ronacher](https://www.youtube.com/@ArminRonacher)** — Evet, *o* [Armin Ronacher](https://www.youtube.com/@ArminRonacher); Flask, Jinja2. Aylık “State of Agentic Coding” serisi, iki on yıllık tooling credibility’si olan biri alanı değerlendirdiğinde neye benzediğini gösteriyor: ölçülü, skeptical, sıfır affiliate link. 9.15K subs ciddi underexposure. **Ayrıca:** MCP ve başlığından daha iyi researched provocations için **[AI Jason](https://www.youtube.com/@AIJasonZ)** (“[Anthropic](https://www.youtube.com/@anthropic-ai) killed tool calling”), BMad-Method framework için **[BMad Code](https://www.youtube.com/@BMadCode)** (sayfa çöktü, ❓), gentle beginner on-ramp için **[Matt Maher](https://www.youtube.com/@MetalSole)**. ### Tier 10.5 — [AI Engineer](https://www.youtube.com/@aiDotEngineer) Konferans ve Practitioner Konuşmaları | Kanal | Handle | Son upload temaları | Grade | |---|---|---|:--:| | [AI Engineer](https://www.youtube.com/@aiDotEngineer) | @aiDotEngineer | Agent skills, AI coding workflows, local AI, context engineering, complex codebases | 🟢🔥 | **[AI Engineer](https://www.youtube.com/@aiDotEngineer)**, [AI Engineer](https://www.youtube.com/@aiDotEngineer) konferanslarının talk archive’ı: [Anthropic](https://www.youtube.com/@anthropic-ai), [OpenAI](https://www.youtube.com/@OpenAI), NVIDIA ve MIT speaker’ları; event’ten saatler veya günler sonra upload. Yukarıdaki tier’in en iyi complement’i: individual creator kendi workflow’unu gösteriyor, bu kanal elli practitioner workflow’unu parallel gösteriyor. Directory’nin sonraki edition’ına girmesi gereken insanları keşfetmek için de en iyi kanal. ### Tier 11 — AI Agent Business, Automation ve n8n Agent pipeline build et, monetize et, scale et. Framing için açık uyarı: tier outcome ve “$/month” packaging’e sert kayıyor. Engineering çoğu zaman gerçek, business claim’leri skepticism hak ediyor. | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Tina Huang](https://www.youtube.com/@TinaHuang1) | @TinaHuang1 | 1.25M | 30K–753K | ~220K | NotebookLM 2.0, Claude Cowork setup, local AI agents in 26 min | 🟢🔥 | | [Nate Herk](https://www.youtube.com/@nateherk) | @nateherk | 853K | 8.4K–175K | ~78K | n8n + Claude Code automation, agent loops, monetization | 🟡🔥 | | [Liam Ottley](https://www.youtube.com/@LiamOttley) | @LiamOttley | 819K | 8.3K–211K | ~55K | AI-automation-agency business model, "$20K/mo with Claude Code" | 🟡🔥 | | [Greg Isenberg](https://www.youtube.com/@GregIsenberg) | @GregIsenberg | 670K | 31K–157K | ~83K | "AI agents are the new SaaS", startup ideas, solo-agent business | 🟡🔥 | | [Nick Saraev](https://www.youtube.com/@nicksaraev) | @nicksaraev | 469K | 9.7K–210K | ~81K | Agentic workflows, Claude Code apps | 🔴🔥 | | [Sabrina Ramonov](https://www.youtube.com/@sabrina_ramonov) | @sabrina_ramonov | 318K | 1.8K–152K | ~20K | AI-money-making, Claude+Canva workflow, near-daily uploads | 🟡🔥 | | [Dave Ebbelaar](https://www.youtube.com/@daveebbelaar) | @daveebbelaar | 275K | 3.7K–61K | ~18K | Python for agents, agentic RAG from scratch, DS→AI engineer, Pydantic | 🟢🔥 | | [Riley Brown](https://www.youtube.com/@rileybrownai) | @rileybrownai | 259K | 8.3K–88K | ~40K | Vibe coding, Codex/Claude/Cursor, AI assistant builds | 🟡🔥 | | [All About AI](https://www.youtube.com/@AllAboutAI) | @AllAboutAI | 225K | 1.4K–10K | ~4.7K | Agentic AI trading (Polymarket/Hyperliquid), MCP, automation | 🟡🔥 | | [Mervin Praison](https://www.youtube.com/@MervinPraison) | @MervinPraison | 81.5K | 495–38K | ~6.7K | PraisonAI, local agents w/ Ollama, Claude Code + Slack | 🟡✅ | | [James Briggs](https://www.youtube.com/@jamesbriggs) | @jamesbriggs | 81.4K | 1.8K–10K | ~4.3K | LangChain / [OpenAI](https://www.youtube.com/@OpenAI) Agents SDK, RAG, vector DBs | 🟢💤 (~9 ay) | | [Raj Amjad](https://www.youtube.com/@RAmjad) | @RAmjad | 12K | 800–8.1K | ~3K | Opinionated agentic frameworks, beginner enterprise automations | 🟡 | 🟡 dolu tier’deki iki 🟢: **[Tina Huang](https://www.youtube.com/@TinaHuang1)** outcome şişirmeden workflow öğreten nadir mega-channel olduğu için hak ediyor; 1.25M subs, ~220K avg ve “local AI agents in 26 minutes” başlığın söylediğini veriyor. **[Dave Ebbelaar](https://www.youtube.com/@daveebbelaar)** marketer tier’inde engineer kalabildiği için hak ediyor: Python-first, sıfırdan agentic RAG, Pydantic pattern’ları ve data scientist’ten AI engineer’a giden yol konusunda dürüstlük. Bir 🔴 açıklaması: **[Nick Saraev](https://www.youtube.com/@nicksaraev)** içeriği competent ama Reddit thread’leri Maker Skool’u over-marketed diye flag’liyor; free content’in reklam olduğu klasik funnel pattern’i. Ona göre izle. Routing notu: Bu tier’den istediğin “agent nasıl satarım?” değil, “agent’lar *work*’ü nasıl değiştirecek?” ise aradığın Tier 7.5’teki **[Nate B Jones](https://www.youtube.com/@NateBJones)**; income-claim framing’i olmadan enterprise-workflow analizi. ### Tier 11.5 — Non-Technical ve End-User AI Adoption Tool fluency ve knowledge-work workflow’ları. Rigorous ML veya agent-engineering core’u değil; kendin izlemekten çok colleague’lerine göndereceğin tier. | Kanal | Handle | Odak | Grade | |---|---|---|:--:| | [The AI Advantage](https://www.youtube.com/@aiadvantage) | @aiadvantage | ChatGPT/Claude/Midjourney tutorials, prompting, AI workflows | 🟡 (posts within ~1 yr) | | [Natalie Lambert / GenEdge](https://www.youtube.com/@NatalieLambert-GenEdge) | @NatalieLambert-GenEdge | AI marketing workflows, NotebookLM, AI content teams, copyediting | 🟡💤 (uploads 1–2 yrs old) | **[The AI Advantage](https://www.youtube.com/@aiadvantage)**, “non-technical teammate’im ChatGPT/Claude’da iyi olmak istiyor, nereden başlasın?” sorusunun standard cevabı. **Natalie Lambert**, marketing-team açısını kapsıyor; NotebookLM workflow, AI content operation. Upload cadence’i durmuş durumda. --- ## Part 6: Creator'lar *Image gen, AI film, creative coding, robotics ve vendor kanalları.* ### Tier 12 — ComfyUI / Stable Diffusion / Image Generation | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Olivio Sarikas](https://www.youtube.com/@OlivioSarikas) | @OlivioSarikas | 250K | 1.4K–15K | ~7.4K | Seedance 2.0, Midjourney, Nano Banana, gen workflows | 🟡🐢 | | [Sebastian Kamph](https://www.youtube.com/@sebastiankamph) | @sebastiankamph | 182K | 1.7K–23K | ~7.5K | ComfyUI course + node guides, model shootouts (Z-Image, Kling) | 🟢✅ | | [Nerdy Rodent](https://www.youtube.com/@NerdyRodent) | @NerdyRodent | 64.8K | 3.1K–43K | ~11.3K | ComfyUI workflows (Krea-2, LTX, TTS, music) — scripted, non-hype | 🟢🔥 | | [Scott Detweiler](https://www.youtube.com/@sedetweiler) | @sedetweiler | 59.8K | 1.5K–149K | ~50K | ComfyUI/SDXL/ControlNet/LoRA (Stability.ai PM) | 🟢💤 | | [SECourses](https://www.youtube.com/@SECourses) ([Dr. Furkan](https://www.youtube.com/@SECourses)) | @SECourses | 53K | ❓ | ❓ | FLUX/SDXL full finetuning & DreamBooth master tutorials (page crashed) | 🟢❓ | | [Latent Vision](https://www.youtube.com/@latentvision) | @latentvision | 38.5K | 13K–61K | ~30K | ComfyUI / IPAdapter deep technical dives | 🟢✅ | | [Benji's AI Playground](https://www.youtube.com/@BenjisAIPlayground) | @BenjisAIPlayground | 32.5K | ❓ | ❓ | ComfyUI tutorials; personally polarizing per Reddit (page crashed) | 🟡❓ | Intro’da flag’lediğim düzeltme burada: **[Latent Vision](https://www.youtube.com/@latentvision)** ilk pass’te unverified’dı, şimdi 38.5K subs ve ~30K average ile confirmed. Near-1:1 ratio, kanalın kim olduğunu bilince anlamlı: IPAdapter’ın *kendi developer’ı* Matteo, ComfyUI internals anlatıyor. Tool’u kullanan tutorial kanalı değil; toolmaker öğretiyor. Klasik Reddit “SD starter pack” dört ismi beraber verir: **[Sebastian Kamph](https://www.youtube.com/@sebastiankamph) + [Olivio Sarikas](https://www.youtube.com/@OlivioSarikas) + [Latent Vision](https://www.youtube.com/@latentvision) + [Nerdy Rodent](https://www.youtube.com/@NerdyRodent)**. Hâlâ doğru dörtlü, ama trend-line caveat’i var: zone’un üst tarafı sessizce soğuyor. Olivio 🐢’ya yavaşladı; Stability.ai PM’i ve en iyi ControlNet/LoRA back catalog’larından birinin sahibi [Scott Detweiler](https://www.youtube.com/@sedetweiler) 💤 oldu. Aktif güvenilir core artık Kamph + [Nerdy Rodent](https://www.youtube.com/@NerdyRodent) + [Latent Vision](https://www.youtube.com/@latentvision). ### Tier 13 — AI Film ve Video Generation | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Mickmumpitz](https://www.youtube.com/@mickmumpitz) | @mickmumpitz | 181K | 39K–600K | ~200K | Free/local AI film pipelines, consistent characters, ComfyUI + Blender VFX | 🟢✅ | | [Theoretically Media](https://www.youtube.com/@TheoreticallyMedia) | @TheoreticallyMedia | 191K | 14K–47K | ~28K | AI video tools (Seedance, Kling, Runway, Google Omni), production tests | 🟡🔥 | Burada izlenecek isim **[Mickmumpitz](https://www.youtube.com/@mickmumpitz)**: *consistent character* üreten — gerçek zor problem — free/local AI film pipeline’ları, Blender VFX’e bağlı ComfyUI, ~200K average view. **[Theoretically Media](https://www.youtube.com/@TheoreticallyMedia)** tool-coverage layer’ın: Seedance, Kling, Runway; cherry-picked demo değil production use’a karşı test. ### Tier 14 — Resmi Vendor Kanalları: Source of Truth | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [OpenAI](https://www.youtube.com/@OpenAI) | @OpenAI | 1.99M | 3.1K–125K | ~23K | "ChatGPT Work" enterprise suite, Codex, GPT-5.6 use cases | 🟢✅ | | [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) | @GoogleDeepMind | 902K | 7.4K–588K | ~179K | Gemini 3 Deep Think, science AI (drug-resistance, WeatherNext), agents | 🟢✅ | | [Anthropic](https://www.youtube.com/@anthropic-ai) | @anthropic-ai | 732K | 6.2K–806K | ~315K | Claude Fable 5 / Opus, interpretability, Cowork, MCP, safety | 🟢✅ | | [Hugging Face](https://www.youtube.com/@HuggingFace) | @HuggingFace | 137K | 1.3K–78K | ~14.4K | Coding agents (Tau), LeRobot, MoE, RoPE, ML Club/Podcast | 🟢✅ | Dördüne de subscribe ol. Marketing, ama *primary-source* marketing; model çıktığında vendor videosu neyin gerçekten claim edildiğinin ground truth’u. Engagement kendi hikâyesini anlatıyor: **[Anthropic](https://www.youtube.com/@anthropic-ai) ~315K average view**; interpretability research ve safety content insanlar gerçekten izliyor. **DeepMind ~179K**; drug resistance ve WeatherNext gibi science-AI işi gerçekten çok iyi. **[OpenAI](https://www.youtube.com/@OpenAI) ise 1.99M subs üzerinde yalnızca ~23K average**; kendi audience’ının bile atladığı enterprise-heavy output. **[Hugging Face](https://www.youtube.com/@HuggingFace)** sleeper: ücretsiz grad seminar gibi çalışan ML Club session’ları ile RoPE/MoE explainer’ları. ### Tier 15 — Creative AI ve “Weird Programs” | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Emergent Garden](https://www.youtube.com/@EmergentGarden) | @EmergentGarden | 273K | 14K–1.7M | ~250K | "Recursive Self-Improvement", AI-in-Minecraft (Mindcraft), cellular automata, "I Quit My Job to Make Weird Programs" | 🟢✅ | Başka hiçbir şeye merge olmayı reddeden tek kanallık bir tier daha. **[Emergent Garden](https://www.youtube.com/@EmergentGarden)** emergence ve complexity üzerine narrative-driven programming videoları yapıyor: Minecraft’ta hayatta kalan LLM agent’ları (Mindcraft), cellular automata, recursive self-improvement. “I Quit My Job to Make Weird Programs” flagship’i vibe’ı tamamen anlatıyor. Gerçek playfulness içine sarılmış aşırı high signal. 273K subs, ~250K average; near-perfect engagement. ### Tier 17 — Robotics ve Maker Engineering | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Michael Reeves](https://www.youtube.com/@MichaelReeves) | @MichaelReeves | 7.8M | 5.2M–13M | ~8M | Dog catapult, scam-bot, goldfish stock-trading (comedic robotics) | 🟢💤 | | [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) | @StuffMadeHere | 4.75M | 2.2M–7.3M | ~5M | Robot golf, autocorrect putter, high-production engineering builds | 🟢🐢 | | [Code Bullet](https://www.youtube.com/@CodeBullet) | @CodeBullet | 3.46M | 1.3M–3.5M | ~2.4M | AI plays games, "same game" dev challenges | 🟡🐢 | | [Sebastian Lague](https://www.youtube.com/@SebastianLague) | @SebastianLague | 1.4M | 142K–6.1M | ~800K | Coding neural nets from scratch, Rubik's solver, fluid/ray-tracing sims | 🟢🔥 | | [James Bruton](https://www.youtube.com/@jamesbruton) | @jamesbruton | 1.4M | 47K–256K | ~100K | Ball-balancing robots, 5-servo biped, ESP32 hexapod — open code/CAD | 🟢🔥 | | [DroneBot Workshop](https://www.youtube.com/@Dronebotworkshop) | @Dronebotworkshop | 677K | 5.3K–150K | ~50K | ESP32 TTS/OTA/low-power, Arduino Uno Q, LiDAR sensors | 🟢🔥 | | [Paul McWhorter](https://www.youtube.com/@paulmcwhorter) | @paulmcwhorter | 440K | 883–1.6K | ~1.2K | "AI on the Edge" series — OpenCV facial recognition, object tracking | 🟢🔥 | | [Skyentific](https://www.youtube.com/@Skyentific) | @Skyentific | 116K | 8.7K–28K | ~17K | EtherCAT robot comms, NVIDIA Isaac Lab bipedal sim-to-real | 🟢🐢 | | [Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics) | @ArticulatedRobotics | 75.5K | ❓ | ❓ | ROS tutorials, mobile-robot build series (page crashed) | 🟢❓ | Robotics YouTube üstte entertainment-heavy: Reeves 8M, [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) 5M, [Code Bullet](https://www.youtube.com/@CodeBullet) 2.4M average. İzlemesi şahane, öğrenme depth’i ince. *Rigorous* robotics için **[Skyentific](https://www.youtube.com/@Skyentific)** (EtherCAT comms, NVIDIA Isaac Lab sim-to-real), herkesin önerdiği ROS tutorial serisiyle **[Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics)**, bir de gerçek hardware üzerinde OpenCV facial recognition’ı sonsuz sabırla öğreten ~1.2K average’lı **[Paul McWhorter](https://www.youtube.com/@paulmcwhorter) “AI on the Edge”**. Özel vaka **[Sebastian Lague](https://www.youtube.com/@SebastianLague)**. “Coding Adventures” — sıfırdan neural net, fluid sim, ray tracing — yapılmış en güzel programming videoları. Net. **[James Bruton](https://www.youtube.com/@jamesbruton)** için dürüst flag: her build’in code ve CAD’ini open-source etmesi evrensel olarak övülüyor ama birkaç Redditor, *açıklamaların* Arduino basics sonrasında surface-level kaldığını söylüyor. Inspiration için izle, depth için repo’ları oku. --- ## Part 7: Graveyard ve Blacklist *Kimden artık yeni içerik beklememelisin, kim hiç yer kazanamadı ve hangi tek isim aktif uyarı sayılmalı.* ### Tier 18 — Research Röportajları ve Temeller: Büyük Ölçüde Legacy | Kanal | Handle | Subs | Recent view (min–max) | Ortalama | Son upload temaları | Grade | |---|---|---:|---|---:|---|:--:| | [Aleksa Gordić — The AI Epiphany](https://www.youtube.com/@TheAIEpiphany) | @TheAIEpiphany | 64.5K | 1.6K–31K | ~5K | Interviews w/ Groq, HuggingFace, Meta, DeepMind researchers | 🟡💤 | | [Connor Shorten](https://www.youtube.com/@connor-shorten) | @connor-shorten | 52.3K | 1K–82K | ~15K | DSPy, Weaviate, RAG explainers | 🔴💤 (1+ yıl) | | [Michael Bronstein](https://www.youtube.com/@MichaelBronsteinGDL) | @MichaelBronsteinGDL | 14.4K | ❓ | ❓ | Geometric Deep Learning course lectures | 🟡🐢 | | [Arxiv Insights](https://www.youtube.com/@ArxivInsights) | @ArxivInsights | 103K | ~50.9K historic | — | The famous "why humans learn faster than AI" — Reddit literally asks "what happened?" | 🔴💤 | | [Henry AI Lab](https://www.youtube.com/user/HDNH2610) | @hdnh2610 | 1.6K | ❓ | ❓ | Curated DL-paper video archive; tiny/legacy | 🔴💤 | | [Brandon Rohrer](https://www.youtube.com/@BrandonRohrer) | @BrandonRohrer | 89.8K | 300–9.6K | ~1.5K | "How Data Science Works", CNN-from-scratch series | 🔴💤 | Her birine bir satır: **Aleksa Gordić**, sessizleşmeden önce gerçekten iyi researcher röportajları çekti; Groq, DeepMind, Meta. **[Michael Bronstein](https://www.youtube.com/@MichaelBronsteinGDL)** geometric deep learning lecture’ları hâlâ subfield referansı. **[Brandon Rohrer](https://www.youtube.com/@BrandonRohrer)** CNN-from-scratch serisi convolution’ı çoğu güncel içerikten iyi öğretiyor. Legacy ≠ değersiz; sadece episode 2’yi bekleme. ### Dormant ve Dead Listesi Subscriber sayıları fena değil ama *current* kaynak olarak inactive oldukları confirmed. Live feed gibi görme: | Kanal | Subs | Son aktivite | Durum | |---|---:|---|---| | [Arxiv Insights](https://www.youtube.com/@ArxivInsights) | 103K | years | 🔴💤 legacy conceptual gold, no new uploads | | [Connor Shorten](https://www.youtube.com/@connor-shorten) | 52.3K | 1+ yıl | 🔴💤 | | [Henry AI Lab](https://www.youtube.com/user/HDNH2610) | 1.6K | legacy | 🔴💤 | | [Brandon Rohrer](https://www.youtube.com/@BrandonRohrer) | 89.8K | dormant | 🔴💤 | | [mildlyoverfitted](https://www.youtube.com/@mildlyoverfitted) | 8.05K | 2+ yrs | 🔴💤 | | [David Robinson](https://www.youtube.com/@safe4democracy) | 15.9K | 6+ yrs | 🔴💤 | | Andrew Ng (personal) | 25.9K | 9–14 yrs | 🔴💤 use [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) instead | | [Karpathy](https://www.youtube.com/@AndrejKarpathy) | 1.57M | ~1 yr | 🟢💤 reference library, not a feed | | [Umar Jamil](https://www.youtube.com/@umarjamilai) / [Jay Alammar](https://www.youtube.com/@arp_ai) / [Aladdin Persson](https://www.youtube.com/@AladdinPersson) | 85K / 64.6K / 92.3K | ~1 yr | 🟢💤 evergreen but inactive | | [AI Coffee Break](https://www.youtube.com/@AICoffeeBreak) | 64.3K | ~8 mo | 🟢💤 | | [James Briggs](https://www.youtube.com/@jamesbriggs) | 81.4K | ~9 ay | 🟢💤 | | [Brandon Foltz](https://www.youtube.com/@BrandonFoltz) / [zedstatistics](https://www.youtube.com/@zedstatistics) / [Reducible](https://www.youtube.com/@Reducible) | — | 1–3 yrs | 🟡💤 prerequisite supplements only | İki farklı 💤 var. 🔴💤 satırlarında içerik usefulness sınırını aşmış ya da community başka yere taşınmış. 🟢💤 satırları — başta [Karpathy](https://www.youtube.com/@AndrejKarpathy) — *library*: feed olarak dormant, curriculum olarak kalıcı. ### Blacklist Tek isim ve tartışmaya açık değil: **Siraj Raval**. Academic paper dahil plagiarism ve course-refund fraud için tekrar tekrar flag’lendi. Reddit’ten (u/new_name_who_dis_, +18): > "I remember when this sub used to hate this guy for all his fraud" Karmaşık tarafı şu: erken videoları birçok beginner’ı gerçekten ML’e soktu; bazıları bugün researcher. Ama motivation trust değil ve Tier 1–2’de aynı materyali plagiarism olmadan öğreten on kanal var. Trusted source değil. ### Bulunan ama Kabul Edilmeyen Adaylar Eksiksizlik için: Reddit önerilerinde çıkan ama verification bar’ını geçemeyen isimler. *Atlanmadıklarını*, kontrol edildiklerini göstermek için listeliyorum: | Aday | Neden kabul edilmedi | |---|---| | @cognibuild / Cognibuild AI | YouTube page repeatedly failed to render for content/activity verification | | @spatialwebai | One Reddit link only; page didn't render enough to establish focus/identity | | @g0t4 | Resolves more to a developer/GitHub presence than a validated AI channel | | SwissCognitive | No canonical YT page recovered | | Varun Mayya | Broader career/business creator, not clearly AI-first | | MarkTechPost | Primarily a publication/site signal, not a validated YT channel | | DailyDoseofDS | No canonical YT channel / reliable current context recovered | --- ## Part 8: Subscription Stratejisi *185 kanala ihtiyacın yok. Yaptığın iş için doğru 8–12 kanala ihtiyacın var. Stack'ini seç.* ### Curated Stack'ler **🛠️ Agentic engineering (if you ship code with agents daily):** [Cole Medin](https://www.youtube.com/@ColeMedin) · [IndyDevDan](https://www.youtube.com/@indydevdan) · [Sam Witteveen](https://www.youtube.com/@samwitteveenai) · [AI Jason](https://www.youtube.com/@AIJasonZ) · [Matt Pocock](https://www.youtube.com/@mattpocockuk) · [GosuCoder](https://www.youtube.com/@GosuCoder) · [Brian Casel](https://www.youtube.com/@briancasel) · [AI Engineer](https://www.youtube.com/@aiDotEngineer) (conf) · [Anthropic](https://www.youtube.com/@anthropic-ai) · [OpenAI](https://www.youtube.com/@OpenAI) **🖥️ Local models & hardware truth (before you spend money on GPUs):** [Donato Capitella](https://www.youtube.com/@donatocapitella) · [Alex Ziskind](https://www.youtube.com/@AZisk) · [Fahd Mirza](https://www.youtube.com/@fahdmirza) · [Mukul Tripathi](https://www.youtube.com/@MukulTripathi) · [Digital Spaceport](https://www.youtube.com/@DigitalSpaceport) · [Token Chaser](https://www.youtube.com/@tokenchaser) · [Protorikis](https://www.youtube.com/@Protorikis) · [Julia Turc](https://www.youtube.com/@juliaturc1) · [bycloud](https://www.youtube.com/@bycloudAI) · [Level1Techs](https://www.youtube.com/@Level1Techs) **🔬 Research awareness without living on arXiv:** [AI Explained](https://www.youtube.com/@aiexplained-official) · [bycloud](https://www.youtube.com/@bycloudAI) · [Yannic Kilcher](https://www.youtube.com/@YannicKilcher) · [MLST](https://www.youtube.com/@MachineLearningStreetTalk) · [Two Minute Papers](https://www.youtube.com/@TwoMinutePapers) · [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) · [Discover AI](https://www.youtube.com/@code4AI) · [Neural Breakdown w/ AVB](https://www.youtube.com/@avb_fj) · [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) **🧮 Foundations from zero (the self-taught degree):** [3Blue1Brown](https://www.youtube.com/@3blue1brown) · [StatQuest](https://www.youtube.com/@statquest) · [Karpathy](https://www.youtube.com/@AndrejKarpathy) · [Sebastian Raschka](https://www.youtube.com/@SebastianRaschka) · [Umar Jamil](https://www.youtube.com/@umarjamilai) · [Serrano Academy](https://www.youtube.com/@SerranoAcademy) · [Welch Labs](https://www.youtube.com/@WelchLabs) · [Steve Brunton](https://www.youtube.com/@Eigensteve) · [Alexander Amini](https://www.youtube.com/@AAmini) · [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) **🎨 Image/video systems:** [Latent Vision](https://www.youtube.com/@latentvision) · [Sebastian Kamph](https://www.youtube.com/@sebastiankamph) · [Nerdy Rodent](https://www.youtube.com/@NerdyRodent) · [Olivio Sarikas](https://www.youtube.com/@OlivioSarikas) · [Mickmumpitz](https://www.youtube.com/@mickmumpitz) · [Theoretically Media](https://www.youtube.com/@TheoreticallyMedia) · [SECourses](https://www.youtube.com/@SECourses) **📰 Daily awareness (routing only — verify elsewhere):** [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) · [Nate B Jones](https://www.youtube.com/@NateBJones) · [AI Explained](https://www.youtube.com/@aiexplained-official) · [Hard Fork](https://www.youtube.com/@hardfork) ### Master Leaderboard: Subscriber Sayısına Göre İlk 40 Kayıt için ve bu metric’in tek başına neden neredeyse hiçbir şey söylemediğinin kalıcı örneği olarak: #25 [Fahd Mirza](https://www.youtube.com/@fahdmirza) 2.7K average, #26 [Anthropic](https://www.youtube.com/@anthropic-ai) 315K. | # | Kanal | Subs | Ortalama recent view | Tier | |--:|---|---:|---:|---| | 1 | [3Blue1Brown](https://www.youtube.com/@3blue1brown) | 8.47M | 1.69M | T1 | | 2 | [Michael Reeves](https://www.youtube.com/@MichaelReeves) | 7.8M | 8M | T17 | | 3 | [Lex Fridman](https://www.youtube.com/@lexfridman) | 5.02M | 879K | T6 | | 4 | [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) | 4.75M | 5M | T17 | | 5 | [Fireship](https://www.youtube.com/@Fireship) | 4.23M | 663K | T8 | | 6 | [Code Bullet](https://www.youtube.com/@CodeBullet) | 3.46M | 2.4M | T17 | | 7 | [Computerphile](https://www.youtube.com/@Computerphile) | 2.63M | 108K | T5 | | 8 | [OpenAI](https://www.youtube.com/@OpenAI) | 1.99M | 23K | T14 | | 9 | [Two Minute Papers](https://www.youtube.com/@TwoMinutePapers) | 1.83M | 110K | T4 | | 10 | [IBM Technology](https://www.youtube.com/@IBMTechnology) | 1.74M | 19K | T8 | | 11 | [StatQuest](https://www.youtube.com/@statquest) | 1.66M | ~6K* | T1 | | 12 | [Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy) | 1.57M | 2.06M | T2 | | 13 | [Krish Naik](https://www.youtube.com/@krishnaik06) | 1.46M | 63K | T3 | | 14 | [sentdex](https://www.youtube.com/@sentdex) | 1.44M | 64K | T3 | | 15 | [James Bruton](https://www.youtube.com/@jamesbruton) | 1.4M | 100K | T17 | | 16 | [Sebastian Lague](https://www.youtube.com/@SebastianLague) | 1.4M | 800K | T17 | | 17 | [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) | 1.36M | 309K | T6 | | 18 | [Tina Huang](https://www.youtube.com/@TinaHuang1) | 1.25M | 220K | T11 | | 19 | [Matt Wolfe](https://www.youtube.com/@mreflow) | 978K | 82K | T8 | | 20 | [Asianometry](https://www.youtube.com/@asianometry) | 944K | 180K | T16 | | 21 | [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) | 902K | 179K | T14 | | 22 | [Welch Labs](https://www.youtube.com/@WelchLabs) | 887K | ~130K | T1 | | 23 | [Nate Herk](https://www.youtube.com/@nateherk) | 853K | 78K | T11 | | 24 | [Liam Ottley](https://www.youtube.com/@LiamOttley) | 819K | 55K | T11 | | 25 | [Fahd Mirza](https://www.youtube.com/@fahdmirza) | 763K | 2.7K | T9 | | 26 | [Anthropic](https://www.youtube.com/@anthropic-ai) | 732K | 315K | T14 | | 27 | [AI Search](https://www.youtube.com/@theAIsearch) | 704K | 166K | T8 | | 28 | [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) | 681K | — | T3 | | 29 | [DroneBot Workshop](https://www.youtube.com/@Dronebotworkshop) | 677K | 50K | T17 | | 30 | [Greg Isenberg](https://www.youtube.com/@GregIsenberg) | 670K | 83K | T11 | | 31 | [Luke Barousse](https://www.youtube.com/@LukeBarousse) | 650K | 2M | T3.5 | | 32 | [CampusX](https://www.youtube.com/@campusx-official) | 638K | 25K | T3 | | 33 | [Matthew Berman](https://www.youtube.com/@matthew_berman) | 623K | 98K | T8 | | 34 | [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) | 584K | 6K | T7.5 | | 35 | [Theo](https://www.youtube.com/@t3dotgg) ([t3.gg](https://www.youtube.com/@t3dotgg)) | 549K | 117K | T7 | | 36 | [Steve Brunton](https://www.youtube.com/@Eigensteve) | 540K | 14K | T1 | | 37 | [Alex Ziskind](https://www.youtube.com/@AZisk) | 531K | 117K | T9 | | 38 | [Nick Saraev](https://www.youtube.com/@nicksaraev) | 469K | 81K | T11 | | 39 | [Paul McWhorter](https://www.youtube.com/@paulmcwhorter) | 440K | 1.2K | T17 | | 40 | [AI Explained](https://www.youtube.com/@aiexplained-official) | 435K | 90K | T7 | *(Ranks 41–185 are fully tabulated within their tier sections above; [StatQuest](https://www.youtube.com/@statquest) average is partial — only 3 recent view counts rendered.)* --- ### Dataset'in Tamamından Çıkan Bulgular Yukarıyı skim ettiysen alman gereken yedi bulgu şu: 1. **Subscribers ≠ current reach.** The sharpest example bears repeating: [Fahd Mirza](https://www.youtube.com/@fahdmirza) (763K subs, ~2.7K avg) vs [Anthropic](https://www.youtube.com/@anthropic-ai) (732K subs, ~315K avg) — **~115×** apart at the same badge. Judge live relevance by recent-view average × recency, never subscriber count alone. 2. **The legends are dormant.** [Karpathy](https://www.youtube.com/@AndrejKarpathy), [Umar Jamil](https://www.youtube.com/@umarjamilai), [Jay Alammar](https://www.youtube.com/@arp_ai), [Aladdin Persson](https://www.youtube.com/@AladdinPersson), [AI Coffee Break](https://www.youtube.com/@AICoffeeBreak), [James Briggs](https://www.youtube.com/@jamesbriggs), [Arxiv Insights](https://www.youtube.com/@ArxivInsights), [Connor Shorten](https://www.youtube.com/@connor-shorten) — enormous averages computed on stale evergreen hits. Reference libraries, not feeds. Plan your learning accordingly: back-catalog time is scheduled study, not passive subscription. 3. **Hype is formulaic but algorithmically rewarded.** Berman, [Wes Roth](https://www.youtube.com/@WesRoth), [TheAIGrid](https://www.youtube.com/@TheAiGrid), and Shapiro post 🔥 daily and pull 13K–98K averages while running exactly the "SHOCKING / INSANE / is HERE (WOAH)" titles their own communities criticize. The counter-proof that depth *can* scale: Dwarkesh (~309K), [bycloud](https://www.youtube.com/@bycloudAI) (~83K), [MLST](https://www.youtube.com/@MachineLearningStreetTalk) (~37K). The audience for substance exists; most creators just don't compete for it. 4. **Agentic coding is the hottest zone on the platform by cadence.** [Cole Medin](https://www.youtube.com/@ColeMedin) posting 6 hours before my scrape, [Nate Herk](https://www.youtube.com/@nateherk) 11h, [Riley Brown](https://www.youtube.com/@rileybrownai) 7h, [AI Engineer](https://www.youtube.com/@aiDotEngineer) within hours of events — nearly all of Tier 10/11 is 🔥, and everyone is converging on Claude Code / Codex / harness engineering. That's where the frontier is moving, measured by creator behavior rather than anyone's opinion. 5. **ComfyUI/SD is quietly cooling at the top.** Olivio has slowed to 🐢, [Scott Detweiler](https://www.youtube.com/@sedetweiler) has gone 💤 — while [Nerdy Rodent](https://www.youtube.com/@NerdyRodent), [Sebastian Kamph](https://www.youtube.com/@sebastiankamph), and the now-verified [Latent Vision](https://www.youtube.com/@latentvision) remain the active reliable core. Content ecosystems have lifecycles; this one has plateaued. 6. **Robotics skews entertainment-heavy.** Reeves (8M avg), [Stuff Made Here](https://www.youtube.com/@StuffMadeHere) (5M), [Code Bullet](https://www.youtube.com/@CodeBullet) (2.4M) dominate reach — but for rigorous robotics you want [Skyentific](https://www.youtube.com/@Skyentific), [Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics), and [Paul McWhorter](https://www.youtube.com/@paulmcwhorter)'s "AI on the Edge" at 1/1000th the views. 7. **Benchmark numbers are configuration-specific.** The 40-vs-130 tok/s Radeon discrepancy is the emblem: runtime choice (Ollama vs llama.cpp vs vLLM) can 3× a result on identical hardware. Never quote a creator's benchmark as universal — including the ones in this guide. ### Son Söz: Bir Engineer Gibi Curate Et 2026 AI content ecosystem’inin bir şekli var; bir kez görünce geri alamıyorsun: - The **foundations** are dormant but immortal — study them like books. - The **frontier** is covered brilliantly by a handful of channels that prove depth scales. - The **news** layer is a routing system — let it point you at primary sources, never let it be the source. - The **hardware** channels are honest but configuration-bound — trust the method, verify the number. - The **builders** are moving faster than any other zone — that velocity *is* the signal about where this field is going. Production system’ı unverified claim ve vanity metric üzerine kurmazsın. Information diet’ını da kurma. **Start with three:** - **[3Blue1Brown](https://www.youtube.com/@3blue1brown)** — so you understand what's underneath - **[AI Explained](https://www.youtube.com/@aiexplained-official)** — so you know what actually happened this week - **One channel from your work-specific stack** in Part 8 — so it compounds Sonra bu directory gibi üç ayda bir prune et: recency’ye bak, gerçek engagement’a bak, duygusallık yapmadan unsubscribe ol. ## Methodology ### Kapsam, Tarihler ve Veri Toplama - **Evidence snapshot:** 12–13 Temmuz 2026. - **Core scrape:** 68 kanal live scrape edildi; sonra aynı haftanın üç research-addendum pass'iyle birleştirildi. - **Directory büyüklüğü:** 24 aktif tematik tier içinde yaklaşık 185 ayrı kanal; ayrıca ayrı etiketlenmiş Tier 18 legacy bölümü, dormant/dead listesi, blacklist ve kabul edilmeyen adaylar log'u. - **Recent-view penceresi:** Kanal başına yaklaşık son 15 public upload. Lifetime average değil. - **Ana sinyaller:** Subscriber sayısı, recent view minimum/maksimum/ortalama değerleri, son upload temaları, upload recency'si, source verification ve attribution'lı Reddit reputation evidence. - **Reconciliation kuralı:** Çelişen istatistiklerde en fresh scrape kullanıldı. İlk değerler reconciliation tablosunda saklandı. - **Alias kuralı:** Kaynak corpus aynı creator olduğunu gösterdiğinde handle ve creator alias'ları tekilleştirildi. - **Editorial işlem:** Kullanıcı kaynaklı corpus, belirttiği scrape tarihleri için authoritative kabul edildi. Bu publish pass'i corpus'u yeniden düzenledi, copy-edit yaptı ve lokalize etti; yeni web scrape çalıştırmadı. ### Dahil Etme ve Dışarıda Bırakma Kuralları Bir kanal; AI, ML, data science, local inference, agentic engineering, creative AI, robotics, semiconductor, vendor ya da komşu practitioner rolü netse ve directory'de yer almasını destekleyecek kadar güncel veya evergreen evidence varsa dahil edildi. Bazı kanallar gerçekten birden fazla kategoriye yayıldığı için cross-list edildi; distinct kanal sayısında yine bir kez sayılıyor. Reddit önerilerinde bulunan adaylar; corpus canonical bir YouTube sayfası bulamadığında, stabil bir AI-first kimlik kuramadığında veya güncel aktiviteyi dürüstçe sınıflandıracak kadar doğrulayamadığında kabul edilmedi. Not-admitted tablosu evidence trail'in parçası; creator'ların düşük kaliteli olduğunu ima etmiyor. ### Coverage ve Açık Eksikler - **Tekrarlanan provider hatalarından sonra hâlâ unverified:** [Level1Techs](https://www.youtube.com/@Level1Techs), [Venelin Valkov](https://www.youtube.com/@venelin_valkov), [Donato Capitella](https://www.youtube.com/@donatocapitella)'nın video listesi (subscriber 99.7K olarak doğrulandı), [BMad Code](https://www.youtube.com/@BMadCode), [SECourses](https://www.youtube.com/@SECourses), [Benji's AI Playground](https://www.youtube.com/@BenjisAIPlayground), Peter Yang, [Articulated Robotics](https://www.youtube.com/@ArticulatedRobotics), [This Week in AI](https://www.youtube.com/@ThisWeekinAIPodcast), [Practical AI](https://www.youtube.com/@practicalai_show), [Michael Bronstein](https://www.youtube.com/@MichaelBronsteinGDL), [Jeff Heaton](https://www.youtube.com/@JeffHeaton), [Henry AI Lab](https://www.youtube.com/user/HDNH2610); ayrıca [Neural Breakdown with AVB](https://www.youtube.com/@avb_fj), [Gal Lahat](https://www.youtube.com/@GalLahat), [Reducible](https://www.youtube.com/@Reducible), [Brandon Foltz](https://www.youtube.com/@BrandonFoltz) ve [zedstatistics](https://www.youtube.com/@zedstatistics) metric'leri. - **Partial rendering:** [StatQuest](https://www.youtube.com/@statquest) ortalaması yalnızca üç recent view'a dayanıyor; kalan değerler scrape sırasında render olmadı. - **Reddit provenance:** Kaynak corpus quote'lar için username ve upvote sayısı veriyor ama her quote için exact thread URL'si vermiyor. Rapor attribution'ları koruyor, eksik link uydurmuyor. - **Freshness eskir:** Her 🔥, ✅, 🐢 ve 💤 işareti 12–13 Temmuz 2026'yı anlatıyor. Bir kanal bir çeyrekte active'den dormant'a geçebilir; ranking metodu tek tek grade'lerden daha uzun ömürlü olmalı. - **Benchmark comparability:** Local-model performansı runtime, quantization, context length, driver, kernel ve diğer config detaylarına bağlı. Buradaki değerler creator'ların test setup'larını anlatıyor, universal hardware garantisi değil. - **Sinyal grade'leri editorial:** 🟢, 🟡 ve 🔴 işaretleri kaynak research ile Reddit reputation record'unun synthesis'i. Objektif safety veya quality certification değil. ### Reproducibility Notları Corpus, en fresh scrape'e göre reconcile edilmiş on stat çakışmasını açıkça gösteriyor; her doğrulanamayan metric'i `❓` ile saklıyor; graveyard ile blacklist'i ayırıyor. Dormancy, düşük güncel fayda, hype ve aktif trust sorunları aynı bulgu değil. Kaynak ayrıca 24 aktif tematik tier ile graveyard içindeki Tier 18 legacy/sparse bölümünü ayırıyor; bu rapor yanıltıcı bir renumbering yapmak yerine original organization'ı koruyor. Directory üç ayda bir recent-upload scrape'i yeniden çalıştırılarak, alias çakışmaları kontrol edilerek, recency grade'leri yeniden değerlendirilerek ve eski unverified kanalların artık render olup olmadığına bakılarak güncellenmeli. Subscriber sayısı hedef değil, bağlam olarak kalmalı. ## Sources Bu raporun load-bearing dataset'i **12–13 Temmuz 2026 tarihli kullanıcı kaynaklı live scrape ve aynı haftadaki üç research synthesis pass'i**. Frontmatter source listesi ana tier'lerden direct channel sayfalarını gösteriyor. Aşağıdaki link'ler corpus'ta adı geçen başlıca public referanslar; eksiksiz kanal kataloğu yukarıdaki tier tablolarında. ### Foundations ve Implementation - [3Blue1Brown](https://www.youtube.com/@3blue1brown) - [StatQuest](https://www.youtube.com/@statquest) - [Welch Labs](https://www.youtube.com/@WelchLabs) - [Andrej Karpathy](https://www.youtube.com/@AndrejKarpathy) - [Sebastian Raschka](https://www.youtube.com/@SebastianRaschka) - [Umar Jamil](https://www.youtube.com/@umarjamilai) - [DeepLearning.AI](https://www.youtube.com/@Deeplearningai) - [MIT 6.S191 / Alexander Amini](https://www.youtube.com/@AAmini) ### Frontier, News ve Röportajlar - [bycloud](https://www.youtube.com/@bycloudAI) - [Yannic Kilcher](https://www.youtube.com/@YannicKilcher) - [Machine Learning Street Talk](https://www.youtube.com/@MachineLearningStreetTalk) - [Dwarkesh Patel](https://www.youtube.com/@DwarkeshPatel) - [AI Explained](https://www.youtube.com/@aiexplained-official) - [Theo – t3.gg](https://www.youtube.com/@t3dotgg) - [AI Daily Brief](https://www.youtube.com/@AIDailyBrief) - [Hard Fork](https://www.youtube.com/@hardfork) ### Hardware, Builders ve Creative Systems - [Alex Ziskind](https://www.youtube.com/@AZisk) - [Donato Capitella](https://www.youtube.com/@donatocapitella) - [Token Chaser](https://www.youtube.com/@tokenchaser) - [Cole Medin](https://www.youtube.com/@ColeMedin) - [IndyDevDan](https://www.youtube.com/@indydevdan) - [Sam Witteveen](https://www.youtube.com/@samwitteveenai) - [AI Engineer](https://www.youtube.com/@aiDotEngineer) - [Latent Vision](https://www.youtube.com/@latentvision) - [Mickmumpitz](https://www.youtube.com/@mickmumpitz) - [Asianometry](https://www.youtube.com/@Asianometry) ### Birincil Vendor Kanalları - [OpenAI](https://www.youtube.com/@OpenAI) - [Google DeepMind](https://www.youtube.com/@GoogleDeepMind) - [Anthropic](https://www.youtube.com/@anthropic-ai) - [Hugging Face](https://www.youtube.com/@HuggingFace) ### Corpus'ta Adı Geçen Reddit Reputation Kaynakları - [r/learnmachinelearning](https://www.reddit.com/r/learnmachinelearning/) - [r/LocalLLaMA](https://www.reddit.com/r/LocalLLaMA/) - [r/MachineLearning](https://www.reddit.com/r/MachineLearning/) - [r/ClaudeAI](https://www.reddit.com/r/ClaudeAI/) Bu community'ler kaynak grade ve quote'ların reputational backbone'u. Her quote için exact thread URL'si verilmediği için burada link uydurulmadı. ## [en] Framework Atlas: what to add to your coding harness URL: https://yigitkonur.com/research/spec-driven-development-atlas Kind: research-report Published: 2026-05-27 Updated: Fri Sep 04 Coding assistants are powerful, but the surrounding workflow still matters: how a task is planned, what gets remembered, when tests run, and who reviews the result. Frameworks and add-ons tackle different pieces of that work. They should be compared on those pieces. ## Browse the Atlas **[Open the Framework Atlas →](/atlas/spec-driven-development)** Search by name or purpose, choose the coding harness you use, and narrow the directory by the work you need help with. Each result explains its purpose, verified compatibility, and installation format. [Compare two to five entries](/atlas/spec-driven-development/compare) side by side. The live directory derives its counts from the published entries. Unsupported or unresolved claims stay out of those results. ## What belongs in the directory Both complete workflows and focused extensions qualify: reusable skills, rules, hooks, memory and context tools, review helpers, and orchestration layers. A project supporting just one harness is welcome when its benefit and installation are documented. Standalone agents, general SDKs, infrastructure platforms, unrelated applications, generic connectors, directories, and duplicates are outside this directory’s scope. ## Evidence before classification The [original research](https://github.com/yigitkonur/context-harness-frameworks) is preserved. Its old categories are starting points for review, not automatic inclusion decisions. The [curation ledger](/atlas/spec-driven-development/methodology) records every original entry, including those still awaiting evidence. Verification means checking upstream documentation and recording the source and date. It does not imply that every integration has been executed or independently benchmarked. Detail pages make those limits explicit. ## [tr] Framework Atlas: kodlama araçlarına ne eklemeli? URL: https://yigitkonur.com/tr/research/spec-driven-development-atlas Kind: research-report Published: 2026-05-27 Updated: Fri Sep 04 Kodlama asistanları güçlü, ancak onları çevreleyen iş akışı hâlâ önemli: görev nasıl planlanıyor, neler hatırlanıyor, testler ne zaman çalışıyor ve sonucu kim inceliyor? Framework’ler ve eklentiler bu işin farklı parçalarını ele alıyor. Karşılaştırmanın da bu parçalar üzerinden yapılması gerekiyor. ## Atlas’ı keşfet **[Framework Atlas’ı aç →](/atlas/spec-driven-development)** Ada veya amaca göre arayın, kullandığınız kodlama aracını seçin ve yardıma ihtiyaç duyduğunuz işe göre filtreleyin. Her sonuç amacını, doğrulanmış uyumluluğunu ve kurulum biçimini açıklar. [İki ile beş kaydı](/atlas/spec-driven-development/compare) yan yana karşılaştırabilirsiniz. Atlas’ın arayüzü İngilizcedir. Güncel sayılar yayımlanan kayıtlardan hesaplanır. Desteklenmeyen veya henüz çözümlenmemiş iddialar bu sonuçlara dahil edilmez. ## Rehbere neler dahil? Hem tam iş akışları hem de belirli bir işi yapan eklentiler: yeniden kullanılabilir beceriler, kurallar, hook’lar, bellek ve bağlam araçları, inceleme yardımcıları ve orkestrasyon katmanları. Faydası ve kurulumu belgelendiğinde tek bir kodlama aracını destekleyen projeler de kabul edilir. Bağımsız ajanlar, genel SDK’lar, altyapı platformları, ilgisiz uygulamalar, genel amaçlı bağlantılar, dizinler ve yinelenen kayıtlar kapsam dışındadır. ## Önce kanıt, sonra sınıflandırma [Özgün araştırma](https://github.com/yigitkonur/context-harness-frameworks) korunuyor. Eski kategoriler otomatik kabul kararları değil, inceleme için başlangıç noktaları. [Kürasyon günlüğü](/atlas/spec-driven-development/methodology), kanıt bekleyenler dahil her özgün kaydın durumunu gösteriyor. Doğrulama, projenin belgelerini kontrol etmek ve kaynakla tarihi kaydetmek demek. Her entegrasyonun çalıştırıldığı veya bağımsız olarak ölçüldüğü anlamına gelmiyor. Ayrıntı sayfaları bu sınırları açıkça belirtiyor. ## [en] reverse-engineering Warp's cli-agent notification protocol URL: https://yigitkonur.com/reverse-engineering-warp-cli-agent-protocol Kind: essay Published: 2026-04-21 Updated: Tue Apr 21 the "Warp agent sidebar" isn't magic. when Claude Code, Gemini CLI, or OpenCode finishes a turn, what actually happens is one escape sequence gets written to `/dev/tty` — a single OSC 777 call with a JSON body. Warp picks it up on the pane's output stream, parses it, and routes it into the sidebar. there's no public spec for any of this. but Warp ships three open-source adapters — [claude-code-warp](https://github.com/warpdotdev/claude-code-warp), [gemini-cli-warp](https://github.com/warpdotdev/gemini-cli-warp), [opencode-warp](https://github.com/warpdotdev/opencode-warp) — and reading them side by side surfaces the whole protocol. six envelope fields, seven events, one transport primitive, one feature flag. this post is a reverse-engineered field guide. everything here is observed behavior from commits `b8ad3cc`, `953e05b`, and `e60e068` of those three repos. if your agent can emit a tiny piece of JSON over the tty, Warp will pick it up too. ## the 30-second version agents notify Warp by writing **one OSC 777 escape sequence** directly to `/dev/tty`: ``` ESC ] 7 7 7 ; notify ; ; <BODY> BEL ``` as a raw string (`\x1b` = ESC, `\x07` = BEL): ``` \x1b]777;notify;warp://cli-agent;<JSON-body>\x07 ``` - **TITLE** is the literal string `warp://cli-agent`. any other title produces a plain-text notification (the legacy path). - **BODY** is a compact JSON object. Warp parses every OSC 777 it sees arriving on a pane's tty. if the title matches `warp://cli-agent`, the body goes into the structured agent channel. if not, it's rendered as plain text in the notification center. that's the whole transport. everything else is schema. ## the transport `OSC 777` is an old xterm operating-system command historically used for desktop notifications (gnome-terminal, urxvt). Warp co-opts it and adds a private title namespace for structured agent events. emit from any language: ```bash # POSIX shell printf '\033]777;notify;%s;%s\007' "warp://cli-agent" "$JSON_BODY" > /dev/tty ``` ```typescript // Node / Bun import { writeFileSync } from "fs"; const seq = `\x1b]777;notify;warp://cli-agent;${body}\x07`; writeFileSync("/dev/tty", seq); ``` ```python # Python with open("/dev/tty", "w") as tty: tty.write(f"\x1b]777;notify;warp://cli-agent;{body}\x07") ``` ```rust // Rust use std::fs::OpenOptions; use std::io::Write; let mut tty = OpenOptions::new().write(true).open("/dev/tty")?; write!(tty, "\x1b]777;notify;warp://cli-agent;{}\x07", body)?; ``` ## why /dev/tty stdout and stderr both fail for this. hook scripts in agent hosts usually have **stdout captured** as a structured return channel — the host reads JSON back from stdout to decide whether to block, mutate, or log the event. writing an escape sequence to stdout would corrupt that JSON. **stderr is often piped to a log file**. the user never sees it, and the escape never reaches the terminal. `/dev/tty` is the controlling terminal of the process, bypassing any pipes. writes hit the pane exactly once. all three reference adapters write to `/dev/tty` and silently swallow any error (e.g. when there is no controlling terminal). you should too. ### SSH works for free OSC 777 travels over the wire like any other terminal byte. `ssh` into a machine from Warp, run an agent there, and notifications still fire — Warp sees the sequence when it arrives at the local pty. this is literally why the OpenCode adapter's `notify.ts` comment says "working over SSH": the transport *is* the terminal stream. if Warp is **not** on the receiving end (e.g. you're tmux'd into a remote server and the outermost terminal is iTerm), nothing breaks. the escape gets silently dropped by terminals that don't understand it. but don't emit blindly — you'll see garbage in plain-text pagers if you do. that's what the capability gate is for. ## the capability gate before emitting anything, check that the terminal on the other end is a Warp build that understands `warp://cli-agent`. Warp signals support via two env vars: | variable | meaning | |---|---| | `WARP_CLI_AGENT_PROTOCOL_VERSION` | highest protocol version the client understands. currently `1`. presence is the primary feature flag. | | `WARP_CLIENT_VERSION` | Warp's client version string, e.g. `v0.2026.04.15.08.24.stable_03`. used to detect known-broken builds. | the full bash gate from all three adapters: ```bash # known-broken Warp releases per channel. these builds advertise protocol # support via WARP_CLI_AGENT_PROTOCOL_VERSION but don't actually render # structured notifications — the feature was behind a flag that wasn't # enabled in the shipped binary. LAST_BROKEN_DEV="" LAST_BROKEN_STABLE="v0.2026.03.25.08.24.stable_05" LAST_BROKEN_PREVIEW="v0.2026.03.25.08.24.preview_05" should_use_structured() { # no protocol version advertised → not Warp, or too old. [ -z "${WARP_CLI_AGENT_PROTOCOL_VERSION:-}" ] && return 1 # no client version → can't rule out broken builds. [ -z "${WARP_CLIENT_VERSION:-}" ] && return 1 # channel-specific "broken floor" check. local threshold="" case "$WARP_CLIENT_VERSION" in *dev*) threshold="$LAST_BROKEN_DEV" ;; *stable*) threshold="$LAST_BROKEN_STABLE" ;; *preview*) threshold="$LAST_BROKEN_PREVIEW" ;; esac if [ -n "$threshold" ] && [[ ! "$WARP_CLIENT_VERSION" > "$threshold" ]]; then return 1 fi return 0 } ``` the `[[ ! X > Y ]]` is bash lexicographic string comparison. Warp's version strings are lexicographically sortable because the date components dominate, so it works. the simplified TypeScript gate from opencode-warp skips the broken-build check entirely: ```typescript function warpNotify(title: string, body: string): void { if (!process.env.WARP_CLI_AGENT_PROTOCOL_VERSION) return; try { writeFileSync("/dev/tty", `\x1b]777;notify;${title};${body}\x07`); } catch { /* /dev/tty unavailable — swallow */ } } ``` OpenCode's adapter was authored after the broken stable release, so env-var presence alone is enough. for new integrations you can do the same **unless** you care about users on old Warp builds — in which case copy the full bash gate above. when the gate fails: - **subprocess-hook model (Claude / Gemini):** `exit 0` silently, or fall back to a plain-text OSC for old Warp versions. - **in-process plugins (OpenCode):** return without writing. never error — the user is probably running in a different terminal. ## the payload envelope every structured notification carries the same six-field envelope. the rest of the object is event-specific. ```json { "v": 1, "agent": "claude", "event": "prompt_submit", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app" } ``` | field | type | required | description | |---|---|---|---| | `v` | integer | yes | negotiated protocol version. currently only `1` is live. | | `agent` | string | yes | host CLI identifier. known values: `claude`, `gemini`, `opencode`. pick a stable slug. | | `event` | string | yes | event name. see the catalog below. | | `session_id` | string | yes | unique id for the agent session. lets Warp correlate events over time. empty string acceptable when unavailable. | | `cwd` | string | yes | absolute working directory of the agent. empty string acceptable. | | `project` | string | yes | `basename(cwd)` — the short project label shown in the sidebar. compute it yourself. | ### version negotiation ``` negotiated_v = min(PLUGIN_MAX_PROTOCOL_VERSION, $WARP_CLI_AGENT_PROTOCOL_VERSION) ``` only `v=1` is defined right now. the mechanism exists so that when Warp introduces a v2 schema, old adapters keep speaking v1 and new adapters down-negotiate when talking to old Warp builds. ```bash PLUGIN_CURRENT_PROTOCOL_VERSION=1 negotiate_protocol_version() { local warp_version="${WARP_CLI_AGENT_PROTOCOL_VERSION:-1}" if [ "$warp_version" -lt "$PLUGIN_CURRENT_PROTOCOL_VERSION" ] 2>/dev/null; then echo "$warp_version" else echo "$PLUGIN_CURRENT_PROTOCOL_VERSION" fi } ``` ### session binding is implicit you do not — and cannot — pass a pane or tab id. Warp owns that: 1. the OSC sequence gets written to `/dev/tty`, which is the controlling terminal *of the pane the agent runs in*. 2. Warp is reading that pane's output stream, so it sees the sequence in context. 3. the `session_id` in the payload lets Warp group events from the same conversation even if you clear the pane or span multiple windows. ## the seven events seven event values exist in the wild. the first six are emitted by all three reference adapters (modulo host support — see the matrix below). the last two (`question_asked`, `permission_replied`) are OpenCode extensions. ### session_start fires once when the agent starts a new session or resumes an old one. Warp registers the pane in the sidebar and checks whether the installed plugin is up to date. ```json { "v": 1, "agent": "claude", "event": "session_start", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "plugin_version": "2.0.0" } ``` extra field: `plugin_version` (string) — the adapter's own version. Warp compares it against a minimum required version and surfaces an "outdated plugin" banner if it's below the floor. ### prompt_submit fires the instant the user submits a prompt. transitions the tab from **idle** / **done** → **running**. ```json { "v": 1, "agent": "claude", "event": "prompt_submit", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "query": "refactor the auth middleware to use the new session store" } ``` extra field: `query` (string) — user's prompt, truncated to 200 chars (`...` suffix if longer). truncation rule is consistent across adapters: ```bash if [ -n "$QUERY" ] && [ ${#QUERY} -gt 200 ]; then QUERY="${QUERY:0:197}..." fi ``` ### tool_complete fires after each tool call completes. transitions the tab from **blocked-on-tool** → **running**. ```json { "v": 1, "agent": "claude", "event": "tool_complete", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "tool_name": "Bash" } ``` extra field: `tool_name` (string) — identifier of the tool that just ran. free-form; Warp doesn't enumerate a fixed set. ### permission_request loudest event in the protocol. fires when the agent wants to run a tool that needs user approval. triggers a native OS notification and marks the tab as **blocked-awaiting-permission**. ```json { "v": 1, "agent": "claude", "event": "permission_request", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "summary": "Wants to run Bash: rm -rf node_modules && npm install", "tool_name": "Bash", "tool_input": { "command": "rm -rf node_modules && npm install", "description": "Clean reinstall" } } ``` extra fields: | field | type | description | |---|---|---| | `summary` | string | human-readable one-liner for the notification. adapters build this as `Wants to run <tool>: <preview>` with preview truncated to 120 chars. | | `tool_name` | string | same contract as `tool_complete`. | | `tool_input` | object | full tool-input payload, passed through as-is. Warp may render specific keys (`command`, `file_path`) richly. | summary-building heuristic from `on-permission-request.sh`: ```bash TOOL_PREVIEW=$(echo "$INPUT" | jq -r ' (.tool_input | if .command then .command elif .file_path then .file_path else (tostring | .[0:80]) end) // "" ') SUMMARY="Wants to run $TOOL_NAME" if [ -n "$TOOL_PREVIEW" ]; then if [ ${#TOOL_PREVIEW} -gt 120 ]; then TOOL_PREVIEW="${TOOL_PREVIEW:0:117}..." fi SUMMARY="$SUMMARY: $TOOL_PREVIEW" fi ``` replicate this logic or your notifications will read as `Wants to run Bash` with no clue what the command actually is. ### idle_prompt fires when the agent has been idle long enough that it probably needs input. the `event` value is whatever the host's notification system labels it as — most commonly `idle_prompt` — so pass it through rather than hardcoding. ```json { "v": 1, "agent": "claude", "event": "idle_prompt", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "summary": "Claude is waiting for your input" } ``` extra field: `summary` (string) — free-form message shown in the native notification. defaults to `Input needed` if the host didn't provide one. ### stop fires when the agent finishes a turn — not session end, just "done talking for now". transitions the tab to **done** and raises a native notification with the last prompt/response pair. ```json { "v": 1, "agent": "claude", "event": "stop", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "query": "refactor the auth middleware to use the new session store", "response": "I refactored `middleware/auth.ts` to use `SessionStore.get()` and updated the two call sites. Tests pass locally.", "transcript_path": "/Users/alice/.claude/projects/my-app/conversation-01J9K7P2.jsonl" } ``` extra fields: | field | type | description | |---|---|---| | `query` | string | last user prompt of the turn, truncated to 200 chars. | | `response` | string | last assistant response of the turn, truncated to 200 chars. | | `transcript_path` | string | absolute path to a JSONL conversation transcript if the host exposes one. can be empty. Warp uses this to let users click through to the full conversation. | **the stop-hook race.** Claude Code specifics, but relevant to any host that writes transcripts async: - Claude Code fires `Stop` *before* the transcript file is flushed. the adapter sleeps 0.3s and then reads the last user + assistant messages via `jq`. - always check a `stop_hook_active` flag if your host exposes one — it's set to `true` when the stop event is being replayed (e.g. after a recovery), to prevent double notifications. ```bash STOP_HOOK_ACTIVE=$(echo "$INPUT" | jq -r '.stop_hook_active // false') [ "$STOP_HOOK_ACTIVE" = "true" ] && exit 0 sleep 0.3 # let transcript flush TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path // empty') # ... read last user + assistant messages from JSONL ``` ### question_asked (OpenCode extension) OpenCode has a built-in `question` tool the agent uses to ask clarifying questions. when it's invoked, the adapter sends this event so Warp can distinguish "needs input" from a generic tool call. ```json { "v": 1, "agent": "opencode", "event": "question_asked", "session_id": "sess_01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "tool_name": "question" } ``` if you're building an agent with a similar meta-tool pattern, reuse this event name — Warp already has UI wired up for it. ### permission_replied (OpenCode extension) fires when the user has responded to a permission request and didn't reject. lets Warp clear the "awaiting permission" state preemptively instead of waiting for the follow-up `tool_complete`. ```json { "v": 1, "agent": "opencode", "event": "permission_replied", "session_id": "sess_01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app" } ``` only emit this when the user **allowed** the action. rejections are typically followed by a `stop` or another `permission_request` anyway. ## two integration shapes the three official adapters demonstrate two integration shapes: subprocess-hook (bash) and in-process plugin (TypeScript). pick the one that matches your host's extension model. ### subprocess hooks (claude-code-warp, gemini-cli-warp) the host CLI has a hook system where each lifecycle event invokes an external command, passing event data as JSON on stdin. the command: 1. reads stdin. 2. optionally emits structured JSON on stdout to influence the host's behavior (e.g. block a tool call). 3. emits side effects — in our case, an OSC 777 to `/dev/tty`. registration is a JSON file checked into the adapter. Claude Code's format: ```json { "description": "Warp terminal notifications", "hooks": { "SessionStart": [ { "matcher": "startup|resume", "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-session-start.sh" } ] } ], "UserPromptSubmit": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-prompt-submit.sh" } ]} ], "PostToolUse": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-post-tool-use.sh" } ]} ], "PermissionRequest": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-permission-request.sh" } ]} ], "Notification": [ { "matcher": "idle_prompt", "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-notification.sh" } ] } ], "Stop": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-stop.sh" } ]} ] } } ``` Gemini's format is nearly identical with different event names: `SessionStart`, `BeforeAgent`, `AfterTool`, `Notification`, `AfterAgent`. per-event script skeleton: ```bash #!/bin/bash # on-prompt-submit.sh SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/should-use-structured.sh" if ! should_use_structured; then exit 0 fi source "$SCRIPT_DIR/build-payload.sh" INPUT=$(cat) # hook input on stdin QUERY=$(echo "$INPUT" | jq -r '.prompt // empty') [ ${#QUERY} -gt 200 ] && QUERY="${QUERY:0:197}..." BODY=$(build_payload "$INPUT" "prompt_submit" \ --arg query "$QUERY") "$SCRIPT_DIR/warp-notify.sh" "warp://cli-agent" "$BODY" ``` the envelope factory (`build-payload.sh`): ```bash PLUGIN_CURRENT_PROTOCOL_VERSION=1 negotiate_protocol_version() { local warp_version="${WARP_CLI_AGENT_PROTOCOL_VERSION:-1}" if [ "$warp_version" -lt "$PLUGIN_CURRENT_PROTOCOL_VERSION" ] 2>/dev/null; then echo "$warp_version" else echo "$PLUGIN_CURRENT_PROTOCOL_VERSION" fi } build_payload() { local input="$1" local event="$2" shift 2 local protocol_version session_id cwd project protocol_version=$(negotiate_protocol_version) session_id=$(echo "$input" | jq -r '.session_id // empty') cwd=$(echo "$input" | jq -r '.cwd // empty') project="" [ -n "$cwd" ] && project=$(basename "$cwd") jq -nc \ --argjson v "$protocol_version" \ --arg agent "myagent" \ --arg event "$event" \ --arg session_id "$session_id" \ --arg cwd "$cwd" \ --arg project "$project" \ "$@" \ '{v:$v, agent:$agent, event:$event, session_id:$session_id, cwd:$cwd, project:$project} + $ARGS.named' } ``` the transport (`warp-notify.sh`): ```bash #!/bin/bash SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/should-use-structured.sh" should_use_structured || exit 0 TITLE="${1:-Notification}" BODY="${2:-}" printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" > /dev/tty 2>/dev/null || true ``` ### in-process plugin (opencode-warp) the host CLI exposes a plugin API (TypeScript callbacks, Go plugin interfaces, Python entry points…). you register event handlers that run in the host's own process and write the OSC sequence from there. sketched in TypeScript: ```typescript import { writeFileSync } from "fs"; import path from "path"; const PLUGIN_VERSION = "0.1.0"; const PLUGIN_MAX_PROTOCOL_VERSION = 1; const NOTIFICATION_TITLE = "warp://cli-agent"; function negotiateV(): number { const w = parseInt(process.env.WARP_CLI_AGENT_PROTOCOL_VERSION ?? "1", 10); return isNaN(w) ? PLUGIN_MAX_PROTOCOL_VERSION : Math.min(w, PLUGIN_MAX_PROTOCOL_VERSION); } function buildPayload( event: string, sessionId: string, cwd: string, extra: Record<string, unknown> = {}, ): string { return JSON.stringify({ v: negotiateV(), agent: "myagent", event, session_id: sessionId, cwd, project: cwd ? path.basename(cwd) : "", ...extra, }); } function warpNotify(body: string): void { if (!process.env.WARP_CLI_AGENT_PROTOCOL_VERSION) return; try { writeFileSync("/dev/tty", `\x1b]777;notify;${NOTIFICATION_TITLE};${body}\x07`); } catch { /* no tty */ } } function truncate(s: string, n: number): string { return s.length > n ? s.slice(0, n - 3) + "..." : s; } export function onSessionStart(sessionId: string, cwd: string) { warpNotify(buildPayload("session_start", sessionId, cwd, { plugin_version: PLUGIN_VERSION })); } export function onPromptSubmit(sessionId: string, cwd: string, prompt: string) { warpNotify(buildPayload("prompt_submit", sessionId, cwd, { query: truncate(prompt, 200), })); } export function onToolComplete(sessionId: string, cwd: string, tool: string) { warpNotify(buildPayload("tool_complete", sessionId, cwd, { tool_name: tool })); } export function onPermissionRequest( sessionId: string, cwd: string, tool: string, input: Record<string, unknown>, ) { const preview = typeof input.command === "string" ? input.command : typeof input.file_path === "string" ? input.file_path : JSON.stringify(input).slice(0, 80); warpNotify(buildPayload("permission_request", sessionId, cwd, { summary: `Wants to run ${tool}${preview ? `: ${truncate(preview, 120)}` : ""}`, tool_name: tool, tool_input: input, })); } export function onIdle(sessionId: string, cwd: string, message = "Input needed") { warpNotify(buildPayload("idle_prompt", sessionId, cwd, { summary: message })); } export function onStop( sessionId: string, cwd: string, lastQuery: string, lastResponse: string, transcriptPath = "", ) { warpNotify(buildPayload("stop", sessionId, cwd, { query: truncate(lastQuery, 200), response: truncate(lastResponse, 200), transcript_path: transcriptPath, })); } ``` ## compatibility matrix which host event maps to which structured event — and who supports what. | event | claude-code-warp | gemini-cli-warp | opencode-warp | |---|---|---|---| | `session_start` | `SessionStart` (`startup\|resume`) | `SessionStart` (`startup` only) | `session.created` | | `prompt_submit` | `UserPromptSubmit` | `BeforeAgent` | `chat.message` callback | | `tool_complete` | `PostToolUse` | `AfterTool` | `tool.execute.after` | | `permission_request` | `PermissionRequest` | `Notification` w/ `notification_type=ToolPermission` | `permission.updated`, `permission.asked` | | `idle_prompt` | `Notification` (`idle_prompt`) | `Notification` (non-ToolPermission) | — | | `stop` | `Stop` + transcript parse + 0.3s wait | `AfterAgent` (prompt/response inline) | `session.idle` + SDK fetch | | `question_asked` | — | — | `tool.execute.before` when tool === "question" | | `permission_replied` | — | — | `permission.replied` (allow only) | ## legacy fallback for Warp builds that predate structured notifications, the Claude Code adapter includes a parallel tree of `legacy/*.sh` scripts that emit plain-text OSC 777 notifications with a human-readable title and body. ```bash printf '\033]777;notify;%s;%s\007' "Claude Code" "Task complete: $RESPONSE" > /dev/tty ``` these show up in Warp's notification center as generic text without the sidebar integration. dispatch pattern: ```bash if ! should_use_structured; then [ "$TERM_PROGRAM" = "WarpTerminal" ] && exec "$SCRIPT_DIR/legacy/on-stop.sh" exit 0 fi ``` new integrations can skip the legacy tree entirely. the stable-channel broken build is a year old at time of writing and most users have updated. ## edge cases that bite ### jq is a hard requirement (for bash adapters) all bash adapters build payloads with `jq -nc` for proper JSON escaping. if `jq` is missing, the Claude Code `SessionStart` hook emits a visible `systemMessage` telling the user to install it: ```bash if ! command -v jq &>/dev/null; then cat << 'EOF' {"systemMessage": "Warp notifications require jq! Install it with brew install jq"} EOF exit 0 fi ``` do not try to build JSON by hand with `printf` — payloads contain user-supplied data (commands, file paths, prompts) that break naive escaping immediately. ### never trust stdout to be silent in the subprocess-hook model, whatever your script writes to stdout gets interpreted by the host CLI. if you emit debug logs to stdout, they'll be parsed as control JSON and may crash the host or produce confusing behavior. log to stderr or to a file. Gemini CLI's adapter is especially paranoid about this — every script ends with `echo '{}'` to give the host a well-formed empty JSON object so it doesn't misinterpret silence: ```bash # ... send notification ... echo '{}' # signal "no intervention" to the host ``` ### message.updated fires many times — filter OpenCode's `message.updated` event fires on every partial token stream update, not once per message. using it as a `prompt_submit` trigger produces dozens of duplicates, and a late one clobbers the `stop` notification. use whatever "message complete" / "user message finalized" signal the host offers instead — OpenCode's is `chat.message`. if your host doesn't have one, debounce by `session_id` plus a monotonic message counter. ### don't emit from non-tty contexts if your agent runs inside CI, a subprocess without a pty, or a non-Warp terminal, writing to `/dev/tty` will either fail or corrupt the output of whatever parent is reading the stream. the env-var gate (`WARP_CLI_AGENT_PROTOCOL_VERSION`) is the load-bearing check. the `try { ... } catch {}` around the write is a safety net, not a filter. ### session-id stability Warp uses `session_id` to correlate events. if your host regenerates it mid-conversation (e.g. on resume), Warp will treat it as a new session and spawn a new sidebar entry. prefer the host's canonical session id (ULID, UUID, etc.) rather than inventing your own. ### protocol version: round-down, not round-up if Warp advertises `v=2` and your adapter only knows `v=1`, emit `v=1`. Warp must keep parsing `v=1` forever (or at least through the deprecation window). never emit a version you don't actually produce, even if Warp says it supports a higher one. ## debugging ### see what you're emitting pipe your script's tty writes to a file temporarily: ```bash # before: printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" > /dev/tty # while debugging: printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" | tee -a /tmp/warp-osc.log > /dev/tty ``` then `cat -v /tmp/warp-osc.log` to see the escape sequences in human-readable form. ### validate JSON before emitting ```bash BODY=$(build_payload "$INPUT" "stop" --arg query "$QUERY") echo "$BODY" | jq . >/dev/null 2>&1 || { echo "[warp-adapter] malformed body: $BODY" >&2 exit 0 } ``` malformed JSON in the body makes Warp silently drop the notification. you'll see no error anywhere. ### test without Warp set the env vars manually in a regular terminal: ```bash export WARP_CLI_AGENT_PROTOCOL_VERSION=1 export WARP_CLIENT_VERSION="v0.2026.04.21.08.24.stable_01" ``` now `should_use_structured` returns true and your scripts run their full code path. the OSC sequence ends up printed as garbage in the terminal — that's the point, you can `cat -v` it. great for unit tests. ### end-to-end test harness both bash adapters ship a `tests/test-hooks.sh` that stubs stdin with sample Claude / Gemini hook inputs and asserts the emitted bytes. worth reading: - `warpdotdev/claude-code-warp/tests/test-hooks.sh` - `warpdotdev/gemini-cli-warp/tests/test-hooks.sh` OpenCode's adapter has a proper vitest suite in `tests/*.test.ts`. ## a complete reference implementation drop this into any host that lets you run a shell command per lifecycle event. change `AGENT_SLUG`, wire the event handlers, done. ```bash #!/bin/bash # warp-adapter/warp-notify.sh set -euo pipefail # ----- config ----- AGENT_SLUG="myagent" PLUGIN_VERSION="1.0.0" PLUGIN_MAX_PROTOCOL_VERSION=1 LAST_BROKEN_STABLE="v0.2026.03.25.08.24.stable_05" LAST_BROKEN_PREVIEW="v0.2026.03.25.08.24.preview_05" # ----- gate ----- should_use_structured() { [ -z "${WARP_CLI_AGENT_PROTOCOL_VERSION:-}" ] && return 1 [ -z "${WARP_CLIENT_VERSION:-}" ] && return 1 local threshold="" case "$WARP_CLIENT_VERSION" in *stable*) threshold="$LAST_BROKEN_STABLE" ;; *preview*) threshold="$LAST_BROKEN_PREVIEW" ;; esac if [ -n "$threshold" ] && [[ ! "$WARP_CLIENT_VERSION" > "$threshold" ]]; then return 1 fi return 0 } # ----- payload ----- negotiate_v() { local w="${WARP_CLI_AGENT_PROTOCOL_VERSION:-1}" if [ "$w" -lt "$PLUGIN_MAX_PROTOCOL_VERSION" ] 2>/dev/null; then echo "$w" else echo "$PLUGIN_MAX_PROTOCOL_VERSION" fi } # usage: build_payload <event> <session_id> <cwd> [--arg key val ...] build_payload() { local event="$1" session_id="$2" cwd="$3" shift 3 local v project v=$(negotiate_v) project="" [ -n "$cwd" ] && project=$(basename "$cwd") jq -nc \ --argjson v "$v" \ --arg agent "$AGENT_SLUG" \ --arg event "$event" \ --arg session_id "$session_id" \ --arg cwd "$cwd" \ --arg project "$project" \ "$@" \ '{v:$v, agent:$agent, event:$event, session_id:$session_id, cwd:$cwd, project:$project} + $ARGS.named' } # ----- transport ----- emit() { local body="$1" should_use_structured || return 0 printf '\033]777;notify;warp://cli-agent;%s\007' "$body" > /dev/tty 2>/dev/null || true } # ----- public API ----- warp_session_start() { emit "$(build_payload "session_start" "$1" "$2" --arg plugin_version "$PLUGIN_VERSION")" } warp_prompt_submit() { local q="$3" [ ${#q} -gt 200 ] && q="${q:0:197}..." emit "$(build_payload "prompt_submit" "$1" "$2" --arg query "$q")" } warp_tool_complete() { emit "$(build_payload "tool_complete" "$1" "$2" --arg tool_name "$3")" } warp_permission_request() { local summary="Wants to run $3" if [ -n "$4" ]; then local p="$4" [ ${#p} -gt 120 ] && p="${p:0:117}..." summary="$summary: $p" fi emit "$(build_payload "permission_request" "$1" "$2" \ --arg summary "$summary" \ --arg tool_name "$3" \ --argjson tool_input "${5:-{\}}")" } warp_idle_prompt() { emit "$(build_payload "idle_prompt" "$1" "$2" --arg summary "${3:-Input needed}")" } warp_stop() { local q="$3" r="$4" [ ${#q} -gt 200 ] && q="${q:0:197}..." [ ${#r} -gt 200 ] && r="${r:0:197}..." emit "$(build_payload "stop" "$1" "$2" \ --arg query "$q" \ --arg response "$r" \ --arg transcript_path "${5:-}")" } if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then cmd="${1:-}"; shift || true case "$cmd" in session_start) warp_session_start "$@" ;; prompt_submit) warp_prompt_submit "$@" ;; tool_complete) warp_tool_complete "$@" ;; permission_request) warp_permission_request "$@" ;; idle_prompt) warp_idle_prompt "$@" ;; stop) warp_stop "$@" ;; *) echo "unknown: $cmd" >&2; exit 64 ;; esac fi ``` use it: ```bash source ./warp-adapter/warp-notify.sh SESSION="sess_$(uuidgen)" warp_session_start "$SESSION" "$PWD" warp_prompt_submit "$SESSION" "$PWD" "refactor the retry loop" warp_tool_complete "$SESSION" "$PWD" "Edit" warp_permission_request "$SESSION" "$PWD" "Bash" "rm -rf node_modules" '{"command":"rm -rf node_modules"}' warp_stop "$SESSION" "$PWD" "refactor the retry loop" "Done, tests pass." "/tmp/transcript.jsonl" ``` ## tldr the `warp://cli-agent` protocol is deliberately small. six envelope fields, seven events, one transport primitive, one feature flag. that minimalism is what makes it portable — the three reference implementations share a transport helper that's under 25 lines of code in any language. adding Warp support to a new agent is almost entirely work in the **host adapter layer** — mapping your CLI's native lifecycle events onto the seven structured events above. the protocol itself fits in an afternoon. three things to watch as this evolves: - **protocol v2.** the negotiation machinery exists but only v1 is live. if Warp ever bumps it, expect new optional fields in the envelope (cost, token counts, structured error codes) rather than a rework. - **new events.** `question_asked` and `permission_replied` started as OpenCode extensions and may get promoted to the core set. if your host has a "clarifying question" concept, emit `question_asked` now. - **outdated-plugin banner.** Warp compares `plugin_version` in `session_start` against a hardcoded floor. when your adapter ships a breaking change, bump the version *and* coordinate with Warp to update their `MINIMUM_PLUGIN_VERSION` constant. all three adapter repos are MIT licensed. copy the parts you need. ## [en] running 4× Claude Code Max still isn't enough — here's what actually helps URL: https://yigitkonur.com/running-4x-claude-code-max-still-isnt-enough Kind: essay Published: 2026-04-21 Updated: Tue Apr 21 i run **four 20× Claude Code Max subscriptions** in parallel. roughly 80× the default allotment. and i still hit the wall. not because i'm doing anything exotic. because Claude Code, at serious production volume, burns tokens faster than you can throw money at it. the subscription cap isn't really a "cap" — it's the speed at which a well-orchestrated agent can shovel context into an LLM. past a certain workload threshold, a single Claude Code instance doing everything end-to-end becomes the bottleneck. so i built [gossip](https://github.com/yigitkonur/gossip) — a small orchestration layer where **Claude plans**, **Codex executes**, and the two talk to each other over a structured channel. Claude is the architect, Codex is the labourer. horizontal scaling across providers, not vertical scaling on one. but before you get to that, most people hit the token ceiling and start Googling. they find **caveman**. they find **context compression plugins**. they find twenty Medium posts promising 75–95% savings. and they install all of them. so the question this post is trying to answer, honestly: > which of this "save tokens" stuff is real, which is bait, and how do you actually make a Claude Code workflow survive production load? i spent a day reading every top Reddit thread, every benchmark i could find, the actual caveman source, and the Anthropic docs. here's the deal. ## what caveman actually is caveman is a Claude Code skill by Julius Brussee. 14k stars. the pitch: strip all the "Certainly! I'd be happy to help…" fluff from Claude's output. keep the code. drop the preamble. mechanically, it injects a system rule on session start that tells Claude to respond in compressed, fragment-heavy prose. no articles, no hedging, no pleasantries. three intensity levels (`lite`, `full`, `ultra`). code blocks, file paths, commit messages, tool calls — all untouched. auto-disables for security warnings and anything where ambiguity is dangerous. install is one line: ```bash npx skills add JuliusBrussee/caveman ``` the README claims ~75% output-token reduction. that number is where it gets interesting. ## the math the README doesn't show you here's the thing nobody in the viral threads mentions: **caveman only touches output tokens**. in a real Claude Code session, output is the small slice of the bill. the cleanest teardown i found was Mejba's, which actually instrumented a real session. roughly: | bucket | tokens per session | what caveman does to it | | --- | ---: | --- | | input: system prompt + tool defs | ~15,000 | nothing | | input: conversation history (re-read every turn) | ~35,000 | nothing | | input: files Claude reads into context | ~25,000 | nothing | | output: Claude's prose + tool calls | ~25,000 | cuts ~75% of the prose portion | | **total** | **~100,000** | **~4,500 tokens saved** | that's a **~4.5% reduction on the actual bill**, not 75%. maybe $15–$20/month if you're on heavy API usage. nice to have. not a revolution. the caveman author, to his credit, admitted this on Hacker News: the 75% number came from preliminary testing, not a rigorous benchmark, and the skill was never intended to reduce hidden reasoning tokens. where the other 95% of your tokens actually go: ``` ┌─────────────────────────────────────────────────┐ │ CLAUDE CODE TOKEN BURN — REAL DISTRIBUTION │ ├─────────────────────────────────────────────────┤ │ repo exploration / file scanning ~35% │ ← biggest sink │ conversation history re-reads ~25% │ ← compounds every turn │ MCPs + skills loaded into context ~15% │ ← quietly brutal │ extended thinking / reasoning ~15% │ ← the real expense │ output prose (caveman hits this) ~10% │ ← the small slice └─────────────────────────────────────────────────┘ ``` ## what Reddit actually thinks i went in expecting the typical cargo-cult worship. what i found was a pretty sober community, at least under the surface-level hype posts. ### r/ClaudeCode: *"does caveman plugin really help with context usage?"* small thread, 14 comments, but the signal is tight. the top reply from **u/ConnectTransition660** reported actual usage — about 30% savings in practice, not 75%. still short of the README. the most-upvoted critical comment, from **u/Kaskote**: > cool idea, but this optimizes the cheapest part of the bill. that single line is the whole analysis. output tokens are the cheap part. input context — repos, history, tool schemas — is where the money actually goes, and caveman doesn't touch any of it. **u/Revolutionary-Tough7** dropped the other key insight: > it's not the prompts that cost the money. it's the thinking. on subscription plans, you get ~19M tokens per 5-hour window. saving a few thousand on output prose doesn't move that needle. disabling extended thinking when you don't need it does. ### r/ClaudeAI: *"taught Claude to talk like a caveman to use 75% less tokens"* this is the viral post that put caveman on the map. 12.6k upvotes, 581 comments. the top comment is **u/fidju** with the joke that basically explains the whole project: > why waste time say lot word when few word do trick? 12.4k upvotes on that alone. but underneath the meme layer, the substantive critiques landed. one of the higher-ranked serious replies: > forcing Claude to talk like a caveman might actually make it dumber. the argument: by forcing the model into a "less intelligent persona," you're potentially degrading reasoning quality along with the prose. sounds plausible. is it true? short answer, based on the actual benchmarks: **no**. Mejba's side-by-side testing showed first-attempt success rates actually went *up* slightly (64% → 71%) with caveman mode, and a March 2026 arXiv paper on brevity constraints found forcing concise responses can improve accuracy in large models by up to 26 percentage points on some benchmarks. counterintuitive, but there's a real effect — verbose defaults seem to encourage fluff-as-reasoning. ### r/ClaudeCode: *"I saved $60 by building this tool to reduce Claude Code token usage"* this is where the conversation gets more sophisticated. the tool is a pre-indexing layer that keeps Claude from re-exploring your repo on every task. the author's benchmark showed **54% fewer tokens**, and the comments mostly agreed that repo exploration — not prose — is where the real waste lives. a recurring comment pattern across this thread and the Kilo Code discussion: **CLI output is the hidden killer**. test runners, compilers, linters, dev servers — all of them spew verbose output that gets fed back to the LLM verbatim. one thread reported 10M tokens saved over two weeks just by filtering CLI noise before it hit the model. that's ~89% savings on a narrow but common workflow. ### r/ClaudeCode: *"don't use Claude Code's default system prompt"* different angle: skip the plugin ecosystem entirely, override the system prompt with `--system-prompt` and keep it under 500 tokens of your own rules. the consensus: **CLAUDE.md is already doing 90% of what matters** for most workflows, and the default system prompt is bloated because it's trying to serve everyone. **u/AgreeableFall5530** — a comment that combined the install pitch with honest math: > 75% is not realistic for normal English in my experience. their follow-up recommendations (short CLAUDE.md, rip out MCPs and replace with CLI flows, avoid pasting huge logs, hook-based PDF-to-markdown conversion) got more upvotes than the caveman pitch itself. the community, when you read carefully, is already a step ahead of the viral content. ## the actual hierarchy of things that save tokens if the Reddit sentiment and the benchmarks agree on anything, it's this: **caveman is fine but it's #7 on the list**. here's the impact-to-effort ranking based on what the threads and the measurements actually support: | rank | intervention | effort | realistic savings | notes | | ---: | --- | --- | --- | --- | | 1 | turn off extended thinking for routine tasks | 1 min | 10–20% | Reddit's most underrated lever. re-enable for architecture work. | | 2 | audit and nuke unused MCPs + skills | 30 min | 15–25% | some people have 160+ skills registered. each one taxes every call. | | 3 | pre-index your repo (ai-codex, GrapeRoot, ContextKing, Serena) | 15 min | 30–50% on exploration-heavy work | stops Claude from grep-ing your codebase on every task. | | 4 | filter CLI output before it enters context (RTK, Headroom) | 20 min | up to 89% for test/build-heavy loops | the hidden killer for anyone running `npm test` in a loop. | | 5 | start fresh sessions for unrelated tasks | 0 min | 10–15% | do not chat-continue a massive session for a one-line fix. | | 6 | use `/model haiku` for simple tasks, opus only when needed | 0 min | 20–40% on cost (not token count) | routing is cheaper than compression. | | 7 | caveman plugin | 5 min | ~4–5% total | funny, harmless, marginal. install it, move on. | | 8 | short CLAUDE.md with concise directives | 5 min | 5–10% | "be concise. no filler. conclusions first." — does 80% of caveman for free. | | 9 | custom `--system-prompt` override | 20 min | variable, mostly behavioural | more about quality than tokens. | **caveman is not bait.** it works, it's free, it's a 5-minute install. it's just not the thing that will save you if you're hitting the wall at production volume. the list above is roughly in order of what will actually make a difference. ## when none of this is enough here's the uncomfortable truth for anyone running Claude Code at real volume: **token optimization plugins are a rounding error compared to the load of a serious workflow**. if you're running multiple parallel coding agents, shipping features daily, doing research + refactor + review in the same pipeline — a single subscription is not going to cut it, and stacking every caveman-style plugin in existence isn't going to change that. you can maybe squeeze 30–40% more runway out of optimizations. you cannot 10× throughput by being clever with prose. what actually works at that scale is **horizontal scaling**: 1. multiple subscriptions running in parallel on separate workloads. annoying to orchestrate but real. 2. split planning and execution across different models/providers. planning is cheap, execution is expensive. let the expensive model do less thinking. 3. offload noisy work to cheaper agents. have a Haiku-tier model summarize test output before it hits your main agent's context. have Codex do grunt edits while Claude supervises. use what each model is good at. 4. cache aggressively and avoid cache-busting moves. changing the model mid-conversation, toggling thinking settings, re-ordering tool lists — all of these can invalidate prompt caching and re-cost you the entire session's history. this is basically why i built [gossip](https://github.com/yigitkonur/gossip) — Claude plans, Codex executes, they communicate over a structured channel. not because caveman is bad. because the problem caveman solves is at the wrong altitude for this kind of workload. ## actionable, in one screen if you skimmed the whole thing, here's what to do, in order: ``` WEEK 1 — free wins, zero risk ├─ [ ] turn off extended thinking by default (huge, underrated) ├─ [ ] run /doctor, audit installed skills and MCPs, remove anything unused ├─ [ ] add 4 lines to CLAUDE.md: "be concise. no filler. no hedging. │ conclusions first. skip pleasantries." ├─ [ ] start a new session for any task that isn't a direct continuation └─ [ ] stop changing models mid-conversation (cache-busts everything) WEEK 2 — light tooling ├─ [ ] install a repo pre-indexer (ai-codex, Serena, ContextKing) ├─ [ ] if you run tests/builds in loops, add a CLI output filter ├─ [ ] install caveman if you want the joke — it does help a little └─ [ ] measure with /usage before and after every change WEEK 3 — structural ├─ [ ] if still hitting limits, look at horizontal scaling — │ multiple subs, multi-provider orchestration ├─ [ ] split planning vs execution across models ├─ [ ] consider moving the noisy stuff off-agent entirely └─ [ ] only now is caveman's 4–5% actually worth optimizing for ``` ## tldr caveman is a clever skill. it's fun. it works as advertised — *on the specific thing it targets*. the problem is that the thing it targets is the cheapest slice of your bill, and the viral content implied otherwise. the Reddit community, once you read past the meme replies, already knows this. the serious comments keep pointing at the same handful of actual levers: kill extended thinking when you don't need it, stop loading 100 skills you never use, pre-index your repo, filter CLI noise, start fresh sessions. those are the things that buy you 50%+ breathing room, not 4%. and if you're at the scale where even all of that combined isn't enough — welcome to the club. you're not going to plugin your way out. you're going to architecture your way out. multiple accounts, multiple models, smart orchestration. that's where the actual headroom lives. install caveman. have a laugh. then go do the real work. ## [tr] Warp cli-agent notification protokolünü reverse-engineer etmek URL: https://yigitkonur.com/tr/reverse-engineering-warp-cli-agent-protocol Kind: essay Published: 2026-04-21 Updated: Tue Apr 21 "Warp agent sidebar" dediğimiz şey sihir değil. Claude Code, Gemini CLI ya da OpenCode bir turu bitirdiğinde aslında olan şey şu: `/dev/tty`'ye tek bir escape sequence yazılıyor — JSON body'li tek bir OSC 777 çağrısı. Warp bunu pane'in output stream'inde yakalıyor, parse ediyor, sidebar'a yönlendiriyor. bu işin public bir spec'i yok. ama Warp üç tane açık kaynak adapter ship'liyor — [claude-code-warp](https://github.com/warpdotdev/claude-code-warp), [gemini-cli-warp](https://github.com/warpdotdev/gemini-cli-warp), [opencode-warp](https://github.com/warpdotdev/opencode-warp) — ve üçünü yan yana okuyunca tüm protokol gün yüzüne çıkıyor. altı envelope alanı, yedi event, tek bir transport primitive'i, tek bir feature flag. bu post reverse-engineer edilmiş bir saha rehberi. buradaki her şey o üç repo'nun `b8ad3cc`, `953e05b` ve `e60e068` commit'lerinden gözlemlenmiş davranış. agent'ın tty üzerinden küçük bir parça JSON emit edebiliyorsa Warp onu da yakalıyor. ## 30 saniyelik özet agent'lar Warp'a bildirim göndermek için `/dev/tty`'ye **tek bir OSC 777 escape sequence** yazıyor: ``` ESC ] 7 7 7 ; notify ; <TITLE> ; <BODY> BEL ``` ham string olarak (`\x1b` = ESC, `\x07` = BEL): ``` \x1b]777;notify;warp://cli-agent;<JSON-body>\x07 ``` - **TITLE** literal olarak `warp://cli-agent` string'i. başka bir title verirsen plain-text notification çıkıyor (legacy yol). - **BODY** compact bir JSON object. Warp, pane'in tty'sinden gelen her OSC 777'yi parse ediyor. title `warp://cli-agent` ile eşleşirse body structured agent channel'a düşüyor. değilse notification center'da plain text olarak render ediliyor. transport'un tamamı bu. gerisi sadece şema. ## transport `OSC 777`, desktop notification'lar için tarihten beri (gnome-terminal, urxvt) kullanılan eski bir xterm operating-system command'ı. Warp bunu kendine mal edip structured agent event'leri için private bir title namespace'i ekliyor. herhangi bir dilden emit et: ```bash # POSIX shell printf '\033]777;notify;%s;%s\007' "warp://cli-agent" "$JSON_BODY" > /dev/tty ``` ```typescript // Node / Bun import { writeFileSync } from "fs"; const seq = `\x1b]777;notify;warp://cli-agent;${body}\x07`; writeFileSync("/dev/tty", seq); ``` ```python # Python with open("/dev/tty", "w") as tty: tty.write(f"\x1b]777;notify;warp://cli-agent;{body}\x07") ``` ```rust // Rust use std::fs::OpenOptions; use std::io::Write; let mut tty = OpenOptions::new().write(true).open("/dev/tty")?; write!(tty, "\x1b]777;notify;warp://cli-agent;{}\x07", body)?; ``` ## neden /dev/tty stdout da stderr de bu iş için yetmiyor. agent host'larındaki hook script'lerinde **stdout genelde capture edilmiş** — structured return channel olarak kullanılıyor; host, event'i block'lamak, değiştirmek ya da log'lamak için stdout'tan JSON okuyor. stdout'a escape sequence yazarsan bu JSON bozuluyor. **stderr çoğu zaman log file'a pipe'lanıyor**. kullanıcı görmüyor ve daha önemlisi escape terminale hiç ulaşmıyor. `/dev/tty` process'in controlling terminal'i; pipe'ları bypass ediyor. write'lar pane'e tam olarak bir kez ulaşıyor. üç referans adapter de `/dev/tty`'ye yazıyor ve bir hata çıkarsa (örneğin controlling terminal yoksa) sessizce yutuyor. sen de aynısını yap. ### SSH bedavaya geliyor OSC 777 herhangi bir terminal byte'ı gibi pty üzerinden akıyor. Warp'tan bir makineye `ssh` at, orada agent çalıştır — notification'lar yine çalışıyor. Warp sequence'i yerel pty'ye ulaştığında görüyor. OpenCode adapter'ının `notify.ts` dosyasındaki "working over SSH" yorumu tam olarak bunu söylüyor: transport zaten terminal stream'i. Warp receiving uçta değilse (örneğin remote server'a tmux'la girmişsin, dış terminal iTerm) bir şey bozulmuyor. escape'i anlamayan terminaller onu sessizce drop ediyor. ama kör körüne emit etme — böyle yaparsan plain-text pager'larda çöp görürsün. capability gate bunun için var. ## capability gate emit etmeden önce, karşı taraftaki terminal'in `warp://cli-agent`'i anlayan bir Warp build'i olduğundan emin ol. Warp desteği iki env var ile sinyalliyor: | değişken | anlamı | |---|---| | `WARP_CLI_AGENT_PROTOCOL_VERSION` | client'ın anladığı en yüksek protokol versiyonu. şu an `1`. bu değişkenin varlığı birincil feature flag. | | `WARP_CLIENT_VERSION` | Warp'un client version string'i, örneğin `v0.2026.04.15.08.24.stable_03`. known-broken build'leri yakalamak için. | üç adapter'ın da kullandığı tam bash gate: ```bash # known-broken Warp release'leri (channel başına). bu build'ler # WARP_CLI_AGENT_PROTOCOL_VERSION üzerinden protokol desteği # advertise ediyor ama structured notification'ı aslında render # etmiyor — feature, shipped binary'de enable olmayan bir flag # arkasındaydı. LAST_BROKEN_DEV="" LAST_BROKEN_STABLE="v0.2026.03.25.08.24.stable_05" LAST_BROKEN_PREVIEW="v0.2026.03.25.08.24.preview_05" should_use_structured() { # protokol version advertise edilmemiş → Warp değil ya da çok eski. [ -z "${WARP_CLI_AGENT_PROTOCOL_VERSION:-}" ] && return 1 # client version yok → broken build'leri eleyemiyoruz. [ -z "${WARP_CLIENT_VERSION:-}" ] && return 1 # channel'a özel "broken floor" check. local threshold="" case "$WARP_CLIENT_VERSION" in *dev*) threshold="$LAST_BROKEN_DEV" ;; *stable*) threshold="$LAST_BROKEN_STABLE" ;; *preview*) threshold="$LAST_BROKEN_PREVIEW" ;; esac if [ -n "$threshold" ] && [[ ! "$WARP_CLIENT_VERSION" > "$threshold" ]]; then return 1 fi return 0 } ``` `[[ ! X > Y ]]` bash'in lexicographic string karşılaştırması. Warp'un version string'leri lexicographic olarak sıralanabiliyor çünkü tarih component'leri dominant — o yüzden çalışıyor. opencode-warp'taki sadeleştirilmiş TypeScript gate broken-build kontrolünü tamamen atlıyor: ```typescript function warpNotify(title: string, body: string): void { if (!process.env.WARP_CLI_AGENT_PROTOCOL_VERSION) return; try { writeFileSync("/dev/tty", `\x1b]777;notify;${title};${body}\x07`); } catch { /* /dev/tty yok — yut */ } } ``` OpenCode adapter'ı broken stable release'ten sonra yazılmış, yani env var varlığı tek başına yeterli. yeni integration'larda sen de aynısını yapabilirsin **eğer** eski Warp build'indeki kullanıcıları umursamıyorsan — umursuyorsan yukarıdaki tam bash gate'i kopyala. gate fail ettiğinde: - **subprocess-hook modeli (Claude / Gemini):** `exit 0` ile sessizce çık ya da eski Warp versiyonları için plain-text OSC'ye fallback at. - **in-process plugin'ler (OpenCode):** yazmadan dön. asla error verme — kullanıcı muhtemelen farklı bir terminaldedir. ## payload envelope her structured notification aynı altı alanlı envelope'u taşıyor. geri kalanı event'e özel. ```json { "v": 1, "agent": "claude", "event": "prompt_submit", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app" } ``` | alan | tip | zorunlu | açıklama | |---|---|---|---| | `v` | integer | evet | negotiate edilmiş protokol versiyonu. şu anda sadece `1` canlı. | | `agent` | string | evet | host CLI tanımlayıcısı. bilinen değerler: `claude`, `gemini`, `opencode`. kendi agent'ına sabit bir slug seç. | | `event` | string | evet | event adı. aşağıdaki katalog. | | `session_id` | string | evet | agent session'ının unique id'si. Warp birden fazla event'i zaman içinde aynı conversation'a bağlıyor. yoksa boş string OK. | | `cwd` | string | evet | agent'ın absolute working directory'si. boş string OK. | | `project` | string | evet | `basename(cwd)` — sidebar'da görünen kısa proje etiketi. kendin hesapla. | ### version negotiation ``` negotiated_v = min(PLUGIN_MAX_PROTOCOL_VERSION, $WARP_CLI_AGENT_PROTOCOL_VERSION) ``` şu anda sadece `v=1` tanımlı. mekanizma, Warp v2 şemasına geçtiğinde eski adapter'lar hâlâ v1 konuşsun ve yeni adapter'lar eski Warp build'leriyle konuşurken aşağı negotiate etsin diye var. ```bash PLUGIN_CURRENT_PROTOCOL_VERSION=1 negotiate_protocol_version() { local warp_version="${WARP_CLI_AGENT_PROTOCOL_VERSION:-1}" if [ "$warp_version" -lt "$PLUGIN_CURRENT_PROTOCOL_VERSION" ] 2>/dev/null; then echo "$warp_version" else echo "$PLUGIN_CURRENT_PROTOCOL_VERSION" fi } ``` ### session binding implicit pane ya da tab id'si gönderemezsin — Warp onu kendi yönetiyor: 1. OSC sequence `/dev/tty`'ye yazılıyor, o da *agent'ın çalıştığı pane'in* controlling terminal'i. 2. Warp o pane'in output stream'ini okuyor, yani sequence'i context içinde görüyor. 3. payload'daki `session_id`, pane'i temizlesen ya da birden fazla pencereye yayılsan bile aynı conversation'ın event'lerini gruplamasını sağlıyor. ## yedi event şu an canlı yedi event var. ilk altısını üç referans adapter de emit ediyor (host desteğine göre — aşağıdaki matrise bak). son ikisi (`question_asked`, `permission_replied`) OpenCode extension'ı. ### session_start agent yeni bir session başlattığında ya da eskisini resume ettiğinde bir kez tetikleniyor. Warp pane'i sidebar'a kaydediyor ve yüklü plugin'in güncel olup olmadığını kontrol ediyor. ```json { "v": 1, "agent": "claude", "event": "session_start", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "plugin_version": "2.0.0" } ``` ekstra alan: `plugin_version` (string) — adapter'ın kendi versiyonu. Warp bunu minimum required version'a karşı karşılaştırıyor ve altında kalırsa "outdated plugin" banner'ı gösteriyor. ### prompt_submit kullanıcı prompt submit ettiği an tetikleniyor. tab'ı **idle** / **done** → **running** durumuna geçiriyor. ```json { "v": 1, "agent": "claude", "event": "prompt_submit", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "query": "refactor the auth middleware to use the new session store" } ``` ekstra alan: `query` (string) — kullanıcının prompt'u, 200 karaktere truncate (daha uzunsa sonuna `...`). adapter'lar arası truncation kuralı tutarlı: ```bash if [ -n "$QUERY" ] && [ ${#QUERY} -gt 200 ]; then QUERY="${QUERY:0:197}..." fi ``` ### tool_complete her tool call tamamlandığında tetikleniyor. tab'ı **blocked-on-tool** → **running** durumuna geçiriyor. ```json { "v": 1, "agent": "claude", "event": "tool_complete", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "tool_name": "Bash" } ``` ekstra alan: `tool_name` (string) — az önce çalışan tool'un tanımlayıcısı. serbest form; Warp sabit bir set belirlemiyor. ### permission_request protokolün en yüksek sesli event'i. agent, kullanıcı onayı gerektiren bir tool çalıştırmak istediğinde tetikleniyor. native OS notification tetikliyor ve tab'ı **blocked-awaiting-permission** olarak işaretliyor. ```json { "v": 1, "agent": "claude", "event": "permission_request", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "summary": "Wants to run Bash: rm -rf node_modules && npm install", "tool_name": "Bash", "tool_input": { "command": "rm -rf node_modules && npm install", "description": "Clean reinstall" } } ``` ekstra alanlar: | alan | tip | açıklama | |---|---|---| | `summary` | string | notification için insan-okunur tek satır. adapter'lar `Wants to run <tool>: <preview>` şeklinde kuruyor, preview 120 karaktere truncate oluyor. | | `tool_name` | string | `tool_complete` ile aynı sözleşme. | | `tool_input` | object | tam tool-input payload'u, olduğu gibi geçiyor. Warp belirli key'leri (`command`, `file_path`) zengin şekilde render edebiliyor. | `on-permission-request.sh`'ten summary-building heuristic'i: ```bash TOOL_PREVIEW=$(echo "$INPUT" | jq -r ' (.tool_input | if .command then .command elif .file_path then .file_path else (tostring | .[0:80]) end) // "" ') SUMMARY="Wants to run $TOOL_NAME" if [ -n "$TOOL_PREVIEW" ]; then if [ ${#TOOL_PREVIEW} -gt 120 ]; then TOOL_PREVIEW="${TOOL_PREVIEW:0:117}..." fi SUMMARY="$SUMMARY: $TOOL_PREVIEW" fi ``` bu mantığı birebir kopyala — yoksa notification'ların "Wants to run Bash" diyor, komutun ne olduğuna dair en ufak ipucu olmadan. ### idle_prompt agent yeterince uzun süre idle kaldığında — muhtemelen input bekliyordur diye — tetikleniyor. `event` değeri host'un notification system'i ne diyorsa o oluyor, en sık `idle_prompt`, o yüzden hardcode etme, aynen geçir. ```json { "v": 1, "agent": "claude", "event": "idle_prompt", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "summary": "Claude is waiting for your input" } ``` ekstra alan: `summary` (string) — native notification'da gösterilen serbest-form mesaj. host vermemişse default olarak `Input needed`. ### stop agent bir turu bitirdiğinde tetikleniyor — session sonu değil, sadece "şu an için konuşma bitti". tab **done** durumuna geçiyor ve son prompt/response çifti ile native notification raise ediyor. ```json { "v": 1, "agent": "claude", "event": "stop", "session_id": "01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "query": "refactor the auth middleware to use the new session store", "response": "I refactored `middleware/auth.ts` to use `SessionStore.get()` and updated the two call sites. Tests pass locally.", "transcript_path": "/Users/alice/.claude/projects/my-app/conversation-01J9K7P2.jsonl" } ``` ekstra alanlar: | alan | tip | açıklama | |---|---|---| | `query` | string | turun son kullanıcı prompt'u, 200 karaktere truncate. | | `response` | string | turun son assistant cevabı, 200 karaktere truncate. | | `transcript_path` | string | host veriyorsa JSONL conversation transcript'inin absolute path'i. boş olabilir. Warp bunu kullanıcının full conversation'a tıklaması için kullanıyor. | **stop-hook race.** Claude Code'a özel detay ama transcript'i async yazan tüm host'lar için geçerli: - Claude Code `Stop`'u transcript file flush olmadan *önce* tetikliyor. adapter 0.3s uyuyor, sonra `jq` ile son user + assistant mesajlarını okuyor. - host `stop_hook_active` flag'i veriyorsa mutlaka kontrol et — stop event'i replay edildiğinde (örneğin recovery sonrası) `true` oluyor, double notification'ı önlüyor. ```bash STOP_HOOK_ACTIVE=$(echo "$INPUT" | jq -r '.stop_hook_active // false') [ "$STOP_HOOK_ACTIVE" = "true" ] && exit 0 sleep 0.3 # transcript flush olsun TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path // empty') # ... JSONL'den son user + assistant mesajlarını oku ``` ### question_asked (OpenCode extension) OpenCode'un yerleşik bir `question` tool'u var, agent clarifying soru sormak için kullanıyor. çağrıldığında adapter bu event'i gönderiyor, Warp "input lazım" durumunu generic tool call'dan ayırabiliyor. ```json { "v": 1, "agent": "opencode", "event": "question_asked", "session_id": "sess_01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app", "tool_name": "question" } ``` benzer bir meta-tool pattern'i olan agent yazıyorsan bu event adını tekrar kullan — Warp'ta UI zaten bağlı. ### permission_replied (OpenCode extension) kullanıcı permission request'e cevap verdiğinde ve reddetmediğinde tetikleniyor. Warp "awaiting permission" state'ini preemptively temizleyebiliyor, takip eden `tool_complete`'i beklemeden. ```json { "v": 1, "agent": "opencode", "event": "permission_replied", "session_id": "sess_01J9K7P2E5S8V1Z3B2C4D6F8G0", "cwd": "/Users/alice/projects/my-app", "project": "my-app" } ``` sadece kullanıcı **izin verdiğinde** emit et. reject'ler zaten ya `stop` ya da başka bir `permission_request` ile devam ediyor. ## iki integration shape'i üç resmi adapter iki integration shape'i gösteriyor: subprocess-hook (bash) ve in-process plugin (TypeScript). host'unun extension modeline uyanı seç. ### subprocess hook'lar (claude-code-warp, gemini-cli-warp) host CLI'da her lifecycle event'inin bir external command'ı tetiklediği bir hook sistemi var, event verisini JSON olarak stdin'den geçiriyor. command: 1. stdin'i okuyor. 2. host'un davranışını etkilemek için (örneğin bir tool call'u block'lamak için) opsiyonel olarak stdout'a structured JSON emit ediyor. 3. side effect emit ediyor — bizim durumumuzda `/dev/tty`'ye bir OSC 777. registration adapter'a check'lenmiş bir JSON file. Claude Code formatı: ```json { "description": "Warp terminal notifications", "hooks": { "SessionStart": [ { "matcher": "startup|resume", "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-session-start.sh" } ] } ], "UserPromptSubmit": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-prompt-submit.sh" } ]} ], "PostToolUse": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-post-tool-use.sh" } ]} ], "PermissionRequest": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-permission-request.sh" } ]} ], "Notification": [ { "matcher": "idle_prompt", "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-notification.sh" } ] } ], "Stop": [ { "hooks": [ { "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/on-stop.sh" } ]} ] } } ``` Gemini'nin formatı neredeyse aynı, sadece event adları farklı: `SessionStart`, `BeforeAgent`, `AfterTool`, `Notification`, `AfterAgent`. event başına script iskeleti: ```bash #!/bin/bash # on-prompt-submit.sh SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/should-use-structured.sh" if ! should_use_structured; then exit 0 fi source "$SCRIPT_DIR/build-payload.sh" INPUT=$(cat) # hook input stdin'den QUERY=$(echo "$INPUT" | jq -r '.prompt // empty') [ ${#QUERY} -gt 200 ] && QUERY="${QUERY:0:197}..." BODY=$(build_payload "$INPUT" "prompt_submit" \ --arg query "$QUERY") "$SCRIPT_DIR/warp-notify.sh" "warp://cli-agent" "$BODY" ``` envelope factory (`build-payload.sh`): ```bash PLUGIN_CURRENT_PROTOCOL_VERSION=1 negotiate_protocol_version() { local warp_version="${WARP_CLI_AGENT_PROTOCOL_VERSION:-1}" if [ "$warp_version" -lt "$PLUGIN_CURRENT_PROTOCOL_VERSION" ] 2>/dev/null; then echo "$warp_version" else echo "$PLUGIN_CURRENT_PROTOCOL_VERSION" fi } build_payload() { local input="$1" local event="$2" shift 2 local protocol_version session_id cwd project protocol_version=$(negotiate_protocol_version) session_id=$(echo "$input" | jq -r '.session_id // empty') cwd=$(echo "$input" | jq -r '.cwd // empty') project="" [ -n "$cwd" ] && project=$(basename "$cwd") jq -nc \ --argjson v "$protocol_version" \ --arg agent "myagent" \ --arg event "$event" \ --arg session_id "$session_id" \ --arg cwd "$cwd" \ --arg project "$project" \ "$@" \ '{v:$v, agent:$agent, event:$event, session_id:$session_id, cwd:$cwd, project:$project} + $ARGS.named' } ``` transport (`warp-notify.sh`): ```bash #!/bin/bash SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/should-use-structured.sh" should_use_structured || exit 0 TITLE="${1:-Notification}" BODY="${2:-}" printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" > /dev/tty 2>/dev/null || true ``` ### in-process plugin (opencode-warp) host CLI bir plugin API'si açıyor (TypeScript callback'leri, Go plugin interface'leri, Python entry point'ler…). event handler'ları kaydediyorsun, host'un kendi process'inde çalışıyor ve OSC sequence oradan yazılıyor. TypeScript taslağı: ```typescript import { writeFileSync } from "fs"; import path from "path"; const PLUGIN_VERSION = "0.1.0"; const PLUGIN_MAX_PROTOCOL_VERSION = 1; const NOTIFICATION_TITLE = "warp://cli-agent"; function negotiateV(): number { const w = parseInt(process.env.WARP_CLI_AGENT_PROTOCOL_VERSION ?? "1", 10); return isNaN(w) ? PLUGIN_MAX_PROTOCOL_VERSION : Math.min(w, PLUGIN_MAX_PROTOCOL_VERSION); } function buildPayload( event: string, sessionId: string, cwd: string, extra: Record<string, unknown> = {}, ): string { return JSON.stringify({ v: negotiateV(), agent: "myagent", event, session_id: sessionId, cwd, project: cwd ? path.basename(cwd) : "", ...extra, }); } function warpNotify(body: string): void { if (!process.env.WARP_CLI_AGENT_PROTOCOL_VERSION) return; try { writeFileSync("/dev/tty", `\x1b]777;notify;${NOTIFICATION_TITLE};${body}\x07`); } catch { /* tty yok */ } } function truncate(s: string, n: number): string { return s.length > n ? s.slice(0, n - 3) + "..." : s; } export function onSessionStart(sessionId: string, cwd: string) { warpNotify(buildPayload("session_start", sessionId, cwd, { plugin_version: PLUGIN_VERSION })); } export function onPromptSubmit(sessionId: string, cwd: string, prompt: string) { warpNotify(buildPayload("prompt_submit", sessionId, cwd, { query: truncate(prompt, 200), })); } export function onToolComplete(sessionId: string, cwd: string, tool: string) { warpNotify(buildPayload("tool_complete", sessionId, cwd, { tool_name: tool })); } export function onPermissionRequest( sessionId: string, cwd: string, tool: string, input: Record<string, unknown>, ) { const preview = typeof input.command === "string" ? input.command : typeof input.file_path === "string" ? input.file_path : JSON.stringify(input).slice(0, 80); warpNotify(buildPayload("permission_request", sessionId, cwd, { summary: `Wants to run ${tool}${preview ? `: ${truncate(preview, 120)}` : ""}`, tool_name: tool, tool_input: input, })); } export function onIdle(sessionId: string, cwd: string, message = "Input needed") { warpNotify(buildPayload("idle_prompt", sessionId, cwd, { summary: message })); } export function onStop( sessionId: string, cwd: string, lastQuery: string, lastResponse: string, transcriptPath = "", ) { warpNotify(buildPayload("stop", sessionId, cwd, { query: truncate(lastQuery, 200), response: truncate(lastResponse, 200), transcript_path: transcriptPath, })); } ``` ## uyumluluk matrisi hangi host event'i hangi structured event'e map oluyor — ve kim neyi destekliyor. | event | claude-code-warp | gemini-cli-warp | opencode-warp | |---|---|---|---| | `session_start` | `SessionStart` (`startup\|resume`) | `SessionStart` (sadece `startup`) | `session.created` | | `prompt_submit` | `UserPromptSubmit` | `BeforeAgent` | `chat.message` callback | | `tool_complete` | `PostToolUse` | `AfterTool` | `tool.execute.after` | | `permission_request` | `PermissionRequest` | `Notification` w/ `notification_type=ToolPermission` | `permission.updated`, `permission.asked` | | `idle_prompt` | `Notification` (`idle_prompt`) | `Notification` (ToolPermission dışı) | — | | `stop` | `Stop` + transcript parse + 0.3s bekleme | `AfterAgent` (prompt/response inline) | `session.idle` + SDK fetch | | `question_asked` | — | — | tool === "question" iken `tool.execute.before` | | `permission_replied` | — | — | `permission.replied` (sadece allow) | ## legacy fallback structured notification'lardan önceki Warp build'leri için Claude Code adapter'ı paralel bir `legacy/*.sh` tree'si bulunduruyor, human-readable title ve body ile plain-text OSC 777 notification emit ediyor. ```bash printf '\033]777;notify;%s;%s\007' "Claude Code" "Task complete: $RESPONSE" > /dev/tty ``` bunlar Warp'ın notification center'ında sidebar entegrasyonu olmayan generic text olarak görünüyor. dispatch pattern: ```bash if ! should_use_structured; then [ "$TERM_PROGRAM" = "WarpTerminal" ] && exec "$SCRIPT_DIR/legacy/on-stop.sh" exit 0 fi ``` yeni integration'lar legacy tree'yi tamamen atlayabilir. stable-channel broken build bu yazı yazıldığında bir yaşında ve çoğu kullanıcı güncel. ## seni ısıran edge case'ler ### jq hard requirement (bash adapter'lar için) tüm bash adapter'lar payload'ı `jq -nc` ile kuruyor — doğru JSON escaping için. `jq` yoksa Claude Code `SessionStart` hook'u görünür bir `systemMessage` ile kullanıcıya kurmasını söylüyor: ```bash if ! command -v jq &>/dev/null; then cat << 'EOF' {"systemMessage": "Warp notifications require jq! Install it with brew install jq"} EOF exit 0 fi ``` `printf` ile JSON'u elle kurmaya kalkışma — payload'lar naif escaping'i anında kıran kullanıcı verisi (komut, file path, prompt) taşıyor. ### stdout'un sessiz kaldığına güvenme subprocess-hook modelinde script'inin stdout'a yazdığı her şey host CLI tarafından interpret ediliyor. stdout'a debug log basarsan control JSON olarak parse edilip host'u bozabilir ya da kafa karıştırıcı davranışa yol açabilir. stderr'e ya da dosyaya log bas. Gemini CLI adapter'ı özellikle bu konuda paranoyak — her script `echo '{}'` ile bitiyor, host'a well-formed boş JSON objesi verip sessizliği yanlış yorumlamasını engelliyor: ```bash # ... notification gönder ... echo '{}' # "müdahale yok" sinyali ``` ### message.updated defalarca tetikleniyor — filtrele OpenCode'un `message.updated` event'i her partial token stream update'inde tetikleniyor, mesaj başına bir kez değil. bunu `prompt_submit` tetikleyicisi olarak kullanırsan onlarca duplicate üretiyor ve geç gelen biri `stop` notification'ını eziyor. onun yerine host'un sunduğu "message complete" / "user message finalized" sinyali ne ise onu kullan — OpenCode'da `chat.message`. host'unda öyle bir sinyal yoksa `session_id` + monoton bir message counter ile debounce et. ### tty olmayan context'lerden emit etme agent CI içinde, pty'siz subprocess'te ya da Warp olmayan bir terminalde çalışıyorsa `/dev/tty`'ye yazmak ya fail eder ya da stream'i okuyan parent'ın çıktısını bozar. env-var gate'i (`WARP_CLI_AGENT_PROTOCOL_VERSION`) kritik kontrol. write'ın etrafındaki `try { ... } catch {}` sadece safety net, filter değil. ### session-id stability Warp event'leri `session_id` ile correlate ediyor. host bunu conversation ortasında yeniden üretirse (örneğin resume'da) Warp bunu yeni bir session olarak algılıyor ve yeni bir sidebar entry açıyor. host'un canonical session id'sini (ULID, UUID, vs.) kullan, kendinkini icat etme. ### protocol version: aşağı yuvarla, yukarı değil Warp `v=2` advertise ediyor ve adapter'ın sadece `v=1` biliyorsa `v=1` emit et. Warp `v=1`'i sonsuza kadar (en azından deprecation window boyunca) parse etmek zorunda. kendi üretmediğin bir version'ı asla emit etme, Warp yüksek destek verdiğini söylese bile. ## debugging ### ne emit ettiğini gör script'inin tty write'larını geçici olarak bir dosyaya pipe'la: ```bash # önce: printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" > /dev/tty # debug sırasında: printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" | tee -a /tmp/warp-osc.log > /dev/tty ``` sonra `cat -v /tmp/warp-osc.log` ile escape sequence'leri insan-okunur formda görebilirsin. ### emit etmeden önce JSON'u validate et ```bash BODY=$(build_payload "$INPUT" "stop" --arg query "$QUERY") echo "$BODY" | jq . >/dev/null 2>&1 || { echo "[warp-adapter] malformed body: $BODY" >&2 exit 0 } ``` body'deki malformed JSON Warp'ın notification'ı sessizce drop etmesine yol açıyor. hiçbir yerde error görmüyorsun. ### Warp olmadan test et env var'ları normal bir terminalde elle set et: ```bash export WARP_CLI_AGENT_PROTOCOL_VERSION=1 export WARP_CLIENT_VERSION="v0.2026.04.21.08.24.stable_01" ``` şimdi `should_use_structured` true dönüyor ve script'lerin full code path'ini çalıştırıyor. OSC sequence terminalde çöp olarak yazılıyor — amaç bu, `cat -v` ile bakabilirsin. unit test için iyi. ### end-to-end test harness her iki bash adapter'ı da bir `tests/test-hooks.sh` ship'liyor, sample Claude / Gemini hook input'larıyla stdin'i stub'lıyor ve emit edilen byte'ları assert ediyor. okumaya değer: - `warpdotdev/claude-code-warp/tests/test-hooks.sh` - `warpdotdev/gemini-cli-warp/tests/test-hooks.sh` OpenCode adapter'ının `tests/*.test.ts` altında düzgün bir vitest suite'i var. ## tam bir reference implementation her lifecycle event'inde shell command çalıştırmana izin veren bir host'a bunu at. `AGENT_SLUG`'ı değiştir, event handler'ları bağla, bitti. ```bash #!/bin/bash # warp-adapter/warp-notify.sh set -euo pipefail # ----- config ----- AGENT_SLUG="myagent" PLUGIN_VERSION="1.0.0" PLUGIN_MAX_PROTOCOL_VERSION=1 LAST_BROKEN_STABLE="v0.2026.03.25.08.24.stable_05" LAST_BROKEN_PREVIEW="v0.2026.03.25.08.24.preview_05" # ----- gate ----- should_use_structured() { [ -z "${WARP_CLI_AGENT_PROTOCOL_VERSION:-}" ] && return 1 [ -z "${WARP_CLIENT_VERSION:-}" ] && return 1 local threshold="" case "$WARP_CLIENT_VERSION" in *stable*) threshold="$LAST_BROKEN_STABLE" ;; *preview*) threshold="$LAST_BROKEN_PREVIEW" ;; esac if [ -n "$threshold" ] && [[ ! "$WARP_CLIENT_VERSION" > "$threshold" ]]; then return 1 fi return 0 } # ----- payload ----- negotiate_v() { local w="${WARP_CLI_AGENT_PROTOCOL_VERSION:-1}" if [ "$w" -lt "$PLUGIN_MAX_PROTOCOL_VERSION" ] 2>/dev/null; then echo "$w" else echo "$PLUGIN_MAX_PROTOCOL_VERSION" fi } # kullanım: build_payload <event> <session_id> <cwd> [--arg key val ...] build_payload() { local event="$1" session_id="$2" cwd="$3" shift 3 local v project v=$(negotiate_v) project="" [ -n "$cwd" ] && project=$(basename "$cwd") jq -nc \ --argjson v "$v" \ --arg agent "$AGENT_SLUG" \ --arg event "$event" \ --arg session_id "$session_id" \ --arg cwd "$cwd" \ --arg project "$project" \ "$@" \ '{v:$v, agent:$agent, event:$event, session_id:$session_id, cwd:$cwd, project:$project} + $ARGS.named' } # ----- transport ----- emit() { local body="$1" should_use_structured || return 0 printf '\033]777;notify;warp://cli-agent;%s\007' "$body" > /dev/tty 2>/dev/null || true } # ----- public API ----- warp_session_start() { emit "$(build_payload "session_start" "$1" "$2" --arg plugin_version "$PLUGIN_VERSION")" } warp_prompt_submit() { local q="$3" [ ${#q} -gt 200 ] && q="${q:0:197}..." emit "$(build_payload "prompt_submit" "$1" "$2" --arg query "$q")" } warp_tool_complete() { emit "$(build_payload "tool_complete" "$1" "$2" --arg tool_name "$3")" } warp_permission_request() { local summary="Wants to run $3" if [ -n "$4" ]; then local p="$4" [ ${#p} -gt 120 ] && p="${p:0:117}..." summary="$summary: $p" fi emit "$(build_payload "permission_request" "$1" "$2" \ --arg summary "$summary" \ --arg tool_name "$3" \ --argjson tool_input "${5:-{\}}")" } warp_idle_prompt() { emit "$(build_payload "idle_prompt" "$1" "$2" --arg summary "${3:-Input needed}")" } warp_stop() { local q="$3" r="$4" [ ${#q} -gt 200 ] && q="${q:0:197}..." [ ${#r} -gt 200 ] && r="${r:0:197}..." emit "$(build_payload "stop" "$1" "$2" \ --arg query "$q" \ --arg response "$r" \ --arg transcript_path "${5:-}")" } if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then cmd="${1:-}"; shift || true case "$cmd" in session_start) warp_session_start "$@" ;; prompt_submit) warp_prompt_submit "$@" ;; tool_complete) warp_tool_complete "$@" ;; permission_request) warp_permission_request "$@" ;; idle_prompt) warp_idle_prompt "$@" ;; stop) warp_stop "$@" ;; *) echo "unknown: $cmd" >&2; exit 64 ;; esac fi ``` kullan: ```bash source ./warp-adapter/warp-notify.sh SESSION="sess_$(uuidgen)" warp_session_start "$SESSION" "$PWD" warp_prompt_submit "$SESSION" "$PWD" "refactor the retry loop" warp_tool_complete "$SESSION" "$PWD" "Edit" warp_permission_request "$SESSION" "$PWD" "Bash" "rm -rf node_modules" '{"command":"rm -rf node_modules"}' warp_stop "$SESSION" "$PWD" "refactor the retry loop" "Done, tests pass." "/tmp/transcript.jsonl" ``` ## tldr `warp://cli-agent` protokolü bilinçli olarak küçük. altı envelope alanı, yedi event, tek bir transport primitive'i, tek bir feature flag. portable olmasını sağlayan bu minimalizm — üç referans implementation'ı, herhangi bir dilde 25 satırın altında bir transport helper paylaşıyor. yeni bir agent'a Warp desteği eklemek neredeyse tamamen **host adapter layer'ında** iş — CLI'nın native lifecycle event'lerini yukarıdaki yedi structured event'e map etmek. protokolün kendisi bir öğleden sonrada bitiyor. protokol evrilirken bakılacak üç şey: - **protokol v2.** negotiation mekanizması hazır ama şu an sadece v1 canlı. Warp bir gün bump ederse rework yerine envelope'a yeni opsiyonel alanlar (cost, token count, structured error code) beklemek daha doğru. - **yeni event'ler.** `question_asked` ve `permission_replied` OpenCode extension'ı olarak başladı, core set'e terfi edebilir. host'unda "clarifying question" konsepti varsa `question_asked`'i şimdiden emit et. - **outdated-plugin banner'ı.** Warp, `session_start`'taki `plugin_version`'u hardcoded bir floor'a karşı karşılaştırıyor. adapter'ın breaking change ship'lediğinde version'u bump et *ve* Warp ile koordine et — `MINIMUM_PLUGIN_VERSION` constant'ını güncellesinler. üç adapter repo'su da MIT lisanslı. ihtiyacın olan parçaları kopyala. ## [tr] 4× Claude Code Max hala yetmiyor — gerçekten işe yarayan şeyler bunlar URL: https://yigitkonur.com/tr/running-4x-claude-code-max-still-isnt-enough Kind: essay Published: 2026-04-21 Updated: Tue Apr 21 **dört adet 20× Claude Code Max aboneliği** paralel çalıştırıyorum. default kotanın yaklaşık 80 katı. yine de duvara çarpıyorum. egzotik bir şey yaptığım için değil. ciddi production hacminde Claude Code, üzerine para atabildiğinden daha hızlı token yakıyor. abonelik sınırı aslında bir "sınır" değil — iyi orchestrate edilmiş bir agent'ın LLM'e context yükleme hızı. belirli bir iş yükü eşiğinin ötesinde, her şeyi uçtan uca yapan tek bir Claude Code instance bottleneck haline geliyor. o yüzden [gossip](https://github.com/yigitkonur/gossip)'i yazdım — **Claude planlar**, **Codex çalıştırır**, ikisi yapılandırılmış bir channel üzerinden birbirleriyle konuşur. Claude mimar, Codex işçi. tek bir provider'da dikey scale değil, provider'lar arasında yatay scale. ama oraya gelmeden önce çoğu kişi token tavanına çarpar ve Google'a koşar. **caveman** bulur. **context compression plugin'ları** bulur. %75–95 tasarruf vaat eden yirmi tane Medium yazısı bulur. ve hepsini yükler. bu yazının dürüstçe cevaplamaya çalıştığı soru şu: > bu "token tasarrufu" şeylerinin hangisi gerçek, hangisi tuzak — ve Claude Code workflow'unu gerçekten production yüküne nasıl dayanıklı hale getiriyorsun? bir gün harcadım: her önemli Reddit thread'ini, bulabildiğim her benchmark'ı, gerçek caveman kaynak kodunu ve Anthropic dokümanlarını okudum. işte durum bu. ## caveman gerçekte ne caveman, Julius Brussee'nin yazdığı bir Claude Code skill'i. 14k yıldız. söz verdiği şey: Claude'un output'undaki "Certainly! I'd be happy to help…" gibi dolgu cümlelerini kazımak. kodu bırak, girişi at. teknik olarak şunu yapıyor: session başlangıcında bir sistem kuralı inject ediyor ve Claude'a sıkıştırılmış, fragment ağırlıklı yazmasını söylüyor. artikel yok, çekince yok, nezaket lafları yok. üç yoğunluk seviyesi (`lite`, `full`, `ultra`). code block'lar, dosya yolları, commit mesajları, tool call'lar — hepsi dokunulmaz. güvenlik uyarıları ve belirsizliğin tehlikeli olduğu her şey için otomatik kapanıyor. kurulum tek satır: ```bash npx skills add JuliusBrussee/caveman ``` README ~%75 output-token azalması iddia ediyor. bu sayı işin ilginçleştiği yer. ## README'nin göstermediği matematik viral thread'lerde kimsenin söylemediği şey şu: **caveman sadece output token'larına dokunuyor**. gerçek bir Claude Code session'ında output faturanın küçük dilimi. bulduğum en temiz analiz Mejba'nın — gerçek bir session'ı gerçekten ölçmüş. kabaca: | bucket | session başına token | caveman ne yapıyor | | --- | ---: | --- | | input: system prompt + tool def'ler | ~15.000 | hiçbir şey | | input: conversation history (her turda yeniden okunan) | ~35.000 | hiçbir şey | | input: Claude'un context'e çektiği dosyalar | ~25.000 | hiçbir şey | | output: Claude'un prose + tool call'ları | ~25.000 | prose kısmının ~%75'ini kesiyor | | **toplam** | **~100.000** | **~4.500 token tasarruf** | bu **gerçek faturada ~%4,5 azalma** demek, %75 değil. ağır API kullanımındaysan belki aylık 15–20 dolar. güzel. devrim değil. caveman'ın yazarı, kendine kredi verelim, Hacker News'te bunu kabul etti: %75 rakamı ön testlerden geliyordu, titiz bir benchmark'tan değil; skill zaten gizli reasoning token'larını azaltmak için tasarlanmamıştı. geri kalan %95'in nereye gittiği: ``` ┌─────────────────────────────────────────────────┐ │ CLAUDE CODE TOKEN BURN — REAL DISTRIBUTION │ ├─────────────────────────────────────────────────┤ │ repo exploration / file scanning ~35% │ ← biggest sink │ conversation history re-reads ~25% │ ← compounds every turn │ MCPs + skills loaded into context ~15% │ ← quietly brutal │ extended thinking / reasoning ~15% │ ← the real expense │ output prose (caveman hits this) ~10% │ ← the small slice └─────────────────────────────────────────────────┘ ``` ## Reddit aslında ne düşünüyor içeri girerken tipik bir cargo-cult tapınması bekliyordum. bulduğum şey yüzey hype yazılarının altında oldukça ayakları yere basan bir topluluktu. ### r/ClaudeCode: *"does caveman plugin really help with context usage?"* küçük thread, 14 yorum, ama sinyal sıkı. **u/ConnectTransition660**'ın en üstteki cevabı gerçek kullanımı aktarıyordu — pratikte yaklaşık %30 tasarruf, %75 değil. README'nin hala gerisinde. en çok upvote alan eleştirel yorum, **u/Kaskote**'dan: > cool idea, but this optimizes the cheapest part of the bill. o tek satır analizin tamamı. output token'lar ucuz kısım. input context — repo'lar, history, tool schema'ları — paranın gerçekte gittiği yer; caveman bunların hiçbirine dokunmuyor. **u/Revolutionary-Tough7** diğer kilit içgörüyü bıraktı: > it's not the prompts that cost the money. it's the thinking. abonelik planlarında 5 saatlik pencerede ~19 milyon token alıyorsun. output prose'dan birkaç bin token kazanmak bu ibreyi oynamıyor. ihtiyaç duymadığında extended thinking'i kapatmak oynuyor. ### r/ClaudeAI: *"taught Claude to talk like a caveman to use 75% less tokens"* caveman'ı haritaya koyan viral post bu. 12,6k upvote, 581 yorum. en üstteki yorum projenin tamamını anlatan şakayla **u/fidju**'dan: > why waste time say lot word when few word do trick? sadece bu 12,4k upvote aldı. ama meme katmanının altında ciddi eleştiriler de karşılık buldu. yüksek puanlı ciddi cevaplardan biri: > forcing Claude to talk like a caveman might actually make it dumber. argüman şu: modeli "daha az zeki bir persona"ya zorlarken prose'la birlikte reasoning kalitesini de düşürebilirsin. kulağa mantıklı geliyor. doğru mu? gerçek benchmark'lara dayanan kısa cevap: **hayır**. Mejba'nın yan yana testleri caveman moduyla first-attempt başarı oranlarının hafifçe *arttığını* gösterdi (64% → 71%); Mart 2026 tarihli bir arXiv makalesi ise kısa yanıtları zorlamanın büyük modellerde bazı benchmark'larda doğruluğu 26 yüzde puanına kadar artırabildiğini buldu. mantığa aykırı ama gerçek bir etki var — verbose default'lar fluff-as-reasoning'i teşvik ediyor gibi. ### r/ClaudeCode: *"I saved $60 by building this tool to reduce Claude Code token usage"* konuşmanın daha olgunlaştığı yer burası. tool, Claude'un her task'ta repo'nu yeniden keşfetmesini engelleyen bir pre-indexing katmanı. yazarın benchmark'ı **%54 daha az token** gösterdi; yorumlar da büyük ölçüde anlaştı: asıl israf prose değil, repo exploration. bu thread ve Kilo Code tartışmasında tekrarlayan bir yorum kalıbı: **CLI output gizli katil**. test runner'lar, derleyiciler, linter'lar, dev server'lar — hepsi verbose output fışkırtıyor ve bu çıktı LLM'e olduğu gibi besleniyor. bir thread model'e ulaşmadan önce CLI noise'u filtreleyerek iki haftada 10 milyon token tasarruf edildiğini aktardı. dar ama yaygın bir workflow için ~%89 tasarruf bu. ### r/ClaudeCode: *"don't use Claude Code's default system prompt"* farklı bir açı: plugin ekosistemini tamamen geç, system prompt'u `--system-prompt` ile override et ve kendi kurallarını 500 token'ın altında tut. consensus şu: **CLAUDE.md zaten çoğu workflow için önemli olan şeylerin %90'ını yapıyor**, default system prompt herkese hizmet etmeye çalıştığı için şişirilmiş durumda. **u/AgreeableFall5530** — kurulum pitchi ile dürüst matematiği birleştiren bir yorum: > 75% is not realistic for normal English in my experience. devamında önerdiği şeyler (kısa CLAUDE.md, MCPs'i söküp CLI flow'larıyla değiştirmek, büyük log yapıştırmaktan kaçınmak, hook tabanlı PDF-to-markdown dönüşümü) caveman pitchinden daha fazla upvote aldı. topluluk, dikkatli okuyunca, viral içeriğin bir adım önünde zaten. ## token tasarrufu sağlayan şeylerin gerçek hiyerarşisi Reddit duyarlılığı ve benchmark'lar bir konuda hemfikirse bu şu: **caveman iyi ama listede #7**. thread'lerin ve ölçümlerin gerçekten desteklediği şeylere dayanan etki-emek sıralaması: | sıra | müdahale | efor | gerçekçi tasarruf | notlar | | ---: | --- | --- | --- | --- | | 1 | rutin task'larda extended thinking'i kapat | 1 dk | %10–20 | Reddit'in en hafife alınan kolu. mimari işler için tekrar aç. | | 2 | kullanılmayan MCPs + skill'leri denetle ve sil | 30 dk | %15–25 | bazı kişilerin 160+ kayıtlı skill'i var. her biri her çağrıya vergi kesiyor. | | 3 | repo'nu önceden index'le (ai-codex, GrapeRoot, ContextKing, Serena) | 15 dk | exploration ağırlıklı işlerde %30–50 | Claude'un her task'ta codebase'ini grep'lemesini durduruyor. | | 4 | CLI output'unu context'e girmeden önce filtrele (RTK, Headroom) | 20 dk | test/build döngüleri için %89'a kadar | `npm test` döngüsü çalıştıran herkes için gizli katil. | | 5 | ilgisiz task'lar için yeni session başlat | 0 dk | %10–15 | tek satırlık bir düzeltme için devasa bir session'a chat-continue yapma. | | 6 | basit task'lar için `/model haiku` kullan, gerektiğinde opus | 0 dk | maliyette %20–40 (token sayısında değil) | routing compression'dan ucuz. | | 7 | caveman plugin'ı | 5 dk | toplamda ~%4–5 | komik, zararsız, marjinal. kur, geç. | | 8 | kısa CLAUDE.md ile özlü direktifler | 5 dk | %5–10 | "be concise. no filler. conclusions first." — caveman'ın %80'ini bedavaya yapıyor. | | 9 | custom `--system-prompt` override | 20 dk | değişken, çoğunlukla davranışsal | token'dan çok kaliteyle ilgili. | **caveman tuzak değil.** çalışıyor, bedava, 5 dakikalık kurulum. sadece production hacminde duvara çarparsan seni kurtaracak şey bu değil. yukarıdaki liste gerçekten fark yaratacak şeylerin kabaca sırasında. ## bunların hiçbiri yetmediğinde gerçek hacimde Claude Code çalıştıran herkes için rahatsız edici gerçek şu: **token optimizasyon plugin'ları ciddi bir workflow'un yüküne kıyasla yuvarlama hatası**. paralel birden fazla coding agent çalıştırıyorsan, her gün feature gönderiyorsan, aynı pipeline'da araştırma + refactor + review yapıyorsan — tek abonelik yetmeyecek; var olan her caveman tarzı plugin'ı üst üste yığmak bunu değiştirmiyor. optimizasyonlarla belki %30–40 daha fazla nefes alanı açabilirsin. prose üzerinde zekice olmakla throughput'u 10 katına çıkaramazsın. o ölçekte gerçekten işe yarayan şey **yatay scaling**: 1. ayrı workload'larda paralel çalışan birden fazla abonelik. orchestrate etmesi can sıkıcı ama gerçek. 2. planlama ve çalıştırmayı farklı model/provider'lara böl. planlama ucuz, çalıştırma pahalı. pahalı modelin daha az düşünmesine izin ver. 3. gürültülü işi daha ucuz agent'lara devret. test output'unu ana agent'ın context'ine ulaşmadan önce Haiku seviyesi bir modele özetle. Claude denetlerken Codex kaba düzenleme yapsın. her modelin iyi olduğu şeyi yap. 4. agresif cache'le ve cache'i bozan hamlelerden kaçın. konuşmanın ortasında model değiştirmek, thinking ayarlarını açıp kapatmak, tool listelerini yeniden sıralamak — bunların hepsi prompt caching'i geçersiz kılıp tüm session history'nin maliyetini yeniden üstüne yükleyebilir. [gossip](https://github.com/yigitkonur/gossip)'i yazmamın sebebi temelde bu — Claude planlar, Codex çalıştırır, yapılandırılmış bir channel üzerinden iletişim kuruyorlar. caveman kötü olduğu için değil. caveman'ın çözdüğü problem bu tür bir iş yükü için yanlış irtifada olduğu için. ## tek ekranda aksiyon planı her şeyi hızlıca gezdiysen, sırayla yapılacaklar: ``` WEEK 1 — free wins, zero risk ├─ [ ] turn off extended thinking by default (huge, underrated) ├─ [ ] run /doctor, audit installed skills and MCPs, remove anything unused ├─ [ ] add 4 lines to CLAUDE.md: "be concise. no filler. no hedging. │ conclusions first. skip pleasantries." ├─ [ ] start a new session for any task that isn't a direct continuation └─ [ ] stop changing models mid-conversation (cache-busts everything) WEEK 2 — light tooling ├─ [ ] install a repo pre-indexer (ai-codex, Serena, ContextKing) ├─ [ ] if you run tests/builds in loops, add a CLI output filter ├─ [ ] install caveman if you want the joke — it does help a little └─ [ ] measure with /usage before and after every change WEEK 3 — structural ├─ [ ] if still hitting limits, look at horizontal scaling — │ multiple subs, multi-provider orchestration ├─ [ ] split planning vs execution across models ├─ [ ] consider moving the noisy stuff off-agent entirely └─ [ ] only now is caveman's 4–5% actually worth optimizing for ``` ## tldr caveman akıllıca bir skill. eğlenceli. söylediği gibi çalışıyor — *hedeflediği spesifik şeyde*. sorun şu: hedeflediği şey faturanın en ucuz dilimi, viral içerik ise başka şeyi ima etti. Reddit topluluğu, meme yorumlarının ötesini okuyunca, bunu zaten biliyor. ciddi yorumlar hep aynı birkaç gerçek kola işaret ediyor: ihtiyaç duymadığında extended thinking'i kapat, hiç kullanmadığın 100 skill'i yüklemeyi bırak, repo'nu önceden index'le, CLI noise'u filtrele, yeni session başlat. bunlar sana %4 değil %50+ nefes alanı kazandıran şeyler. ve tüm bunları bir arada yapsan bile yetmeyecek bir ölçekteysen — welcome to the club. plugin'larınla çıkış bulamazsın. mimarınla çıkış bulursun. birden fazla hesap, birden fazla model, akıllı orchestration. gerçek nefes alanı orada. caveman'ı kur. biraz gül. sonra gerçek işe dön. ## [en] Claude Code Statuslines Compared URL: https://yigitkonur.com/research/claude-code-statuslines-compared Kind: research-report Published: 2026-04-16 Updated: Thu Apr 16 Date: 2026-04-16 | Snapshot | Notes | | --- | --- | | Coverage | `24 repos + 2 gists` reviewed with live metadata on April 16, 2026 | | Primary signals | Official Claude Code docs, current repo metadata, install paths, and open [anthropics/claude-code](https://github.com/anthropics/claude-code) statusline issues | | Bottom line | [ccstatusline](https://github.com/sirmalloc/ccstatusline), [claude-powerline](https://github.com/Owloops/claude-powerline), [cship](https://github.com/stephenleo/cship), [claudeline](https://github.com/fredrikaverpil/claudeline), and [claude-hud](https://github.com/jarrodwatts/claude-hud) lead different parts of the market | ## Executive Summary - There is no single best Claude Code statusline anymore. There are at least five distinct product shapes: - a configurable framework: [ccstatusline](https://github.com/sirmalloc/ccstatusline) - a plugin-first themeable powerline: [claude-powerline](https://github.com/Owloops/claude-powerline) - a Rust performance play: [CCometixLine](https://github.com/Haleclipse/CCometixLine) - a Starship bridge: [cship](https://github.com/stephenleo/cship) - a transcript-aware operational HUD: [claude-hud](https://github.com/jarrodwatts/claude-hud) - [ccstatusline](https://github.com/sirmalloc/ccstatusline) remains the category leader because it is the most legible general-purpose answer for most people. It has the biggest adoption signal in the dedicated-statusline field, the broadest widget surface, and the most approachable TUI editor. - The ecosystem is now differentiated less by "can it show model, context, git, and cost?" and more by: - how it installs - what data it trusts - whether it performs network or transcript work at render time - how much terminal/aesthetic ambition it carries - Official Claude Code support is now good enough that a lot of older hackiness is no longer mandatory. The `statusLine` payload already carries model, context, cost, worktree, agent, and `rate_limits`. But the open issue queue shows the platform is still missing several fields and refresh guarantees that builders clearly want. - The best quick-glance layout I tested in day-to-day use is still not a framework. It is the shell lineage closest to [SippieCup’s March 30, 2026 gist](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871), especially when tuned for Ghostty with stronger severity colors and a giant context row. > **Short answer:** If you want one recommendation without overthinking it, use [ccstatusline](https://github.com/sirmalloc/ccstatusline). If you want the cleanest plugin-native path, use [claude-powerline](https://github.com/Owloops/claude-powerline). If you care more about what Claude is doing than about pure visual polish, use [claude-hud](https://github.com/jarrodwatts/claude-hud). ## Inclusion Criteria and Market Definition This report includes public GitHub-hosted projects that meet at least one of these conditions: - they are explicitly built as a Claude Code statusline - they install into Claude Code's `statusLine` hook as a first-class feature - they are statusline-adjacent enough that users genuinely compare them in practice, such as [ccusage](https://github.com/ryoppippi/ccusage)'s beta `statusline` subcommand or [claude-hud](https://github.com/jarrodwatts/claude-hud)'s HUD-style status area This report does not try to catalog every personal `~/.claude/statusline.sh` dotfile in existence. It is focused on projects that have public docs, public install guidance, or enough community visibility to matter as an option category. ### Market Map | Segment | Best-known projects | What defines the segment | | --- | --- | --- | | Frameworks and full systems | [ccstatusline](https://github.com/sirmalloc/ccstatusline), [claude-powerline](https://github.com/Owloops/claude-powerline), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [cship](https://github.com/stephenleo/cship) | A real product surface: presets, themes, multiple layouts, config files, or interactive setup flows | | Operational plugins and HUDs | [claude-hud](https://github.com/jarrodwatts/claude-hud), [claudeline](https://github.com/fredrikaverpil/claudeline) | Treat the status area as an observability surface, not just a formatter | | Opinionated midweights | [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine), [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline), [claude-pace](https://github.com/Astro-Han/claude-pace), [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline), [pyccsl](https://github.com/wolfdenpublishing/pyccsl), [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline) | Smaller surface area, stronger defaults, and a clearer taste profile | | Long-tail specialists and experiments | [pcvelz/ccstatusline-usage](https://github.com/pcvelz/ccstatusline-usage), [syou6162/ccstatusline](https://github.com/syou6162/ccstatusline), [FlineDev/CustomStatusline](https://github.com/FlineDev/CustomStatusline), [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline), [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch), [rz1989s/claude-code-statusline](https://github.com/rz1989s/claude-code-statusline), [Wangnov/claude-code-statusline-pro](https://github.com/Wangnov/claude-code-statusline-pro), [sotayamashita/claude-code-statusline](https://github.com/sotayamashita/claude-code-statusline), [daliovic/cc-statusline](https://github.com/daliovic/cc-statusline), [leeguooooo/claude-code-usage-bar](https://github.com/leeguooooo/claude-code-usage-bar) | Narrower bets, smaller adoption, or feature overlap that keeps them out of the top tier | ### What Changed Since the Earliest Statusline Wave The earliest public statuslines were mostly shell scripts compensating for missing platform data. The current market looks different because the official Claude Code payload now exposes much more: - `model` - `cost` - `context_window` - `agent` - `worktree` - `rate_limits` - multi-line ANSI output and OSC 8 links That changed the job. The most interesting statusline tools in 2026 are no longer just "parsing stdin nicely." They are making product decisions around configuration UX, extra data sources, security posture, and visual hierarchy. ## Official Claude Code Statusline Platform Baseline The official [Claude Code statusline docs](https://docs.anthropic.com/en/docs/claude-code/statusline) define a very simple contract: - Claude Code runs a shell command from `settings.json` - it sends a JSON blob over stdin - your command prints a string or multi-line block - ANSI colors and OSC 8 links are supported That simplicity is why the ecosystem exploded so fast. ### The Baseline Capability Set As of April 16, 2026, the official payload is already rich enough for most mainstream statuslines: - model identity via `model.id` and `model.display_name` - session cost and code-change stats via `cost.*` - context-window size and current usage via `context_window.*` - rate-limit windows via `rate_limits.five_hour` and `rate_limits.seven_day` - workspace and worktree context - agent name - output style and vim mode There are also two important product-level conveniences: - `/statusline` can scaffold a statusline from a natural-language prompt - the official docs support multi-line output, which is why two-line and three-line designs are now common instead of hacks ### The Practical Consequence If you only need model, context, cost, and subscriber limits, you no longer need to scrape credentials or parse logs. The builders who still do extra work are usually trying to get one of four things: - more accurate or broader usage tracking - live tool or subagent activity - richer session analytics like cache efficiency or burn rate - better install and configuration ergonomics ## Comparison Framework and Signal Legend This report compares projects across five lenses. | Lens | Why it matters | | --- | --- | | Install trust | A statusline runs constantly. The install and update path matters more here than it does for a one-off CLI. | | Data source model | `stdin`, transcript parsing, direct API calls, and background hooks each have different accuracy and failure modes. | | Configuration surface | Some users want a one-line script; others want themes, presets, and a TUI. | | Terminal ambition | Powerline glyphs, Nerd Font requirements, gradients, hyperlinks, and fallback modes all shape real-world usability. | | Maintenance signal | Stars are noisy, but release cadence, current pushes, docs quality, and issue hygiene still help separate durable tools from novelty repos. | Signal labels used below: - `Leader`: strong adoption plus a differentiated product shape - `Specialist`: clear value for a specific user or workflow - `Appendix`: interesting, but narrower, newer, smaller, or too overlapping to justify core-tier treatment ## Tier 1: Frameworks, Plugins, and Full Systems ### Core Comparison | Project | Stars | Runtime | Install path | Main data sources | Why it matters | | --- | ---: | --- | --- | --- | --- | | [sirmalloc/ccstatusline](https://github.com/sirmalloc/ccstatusline) | 7,638 | TypeScript | `npx` or `bunx` TUI | stdin, git, optional usage API widgets | The de facto framework reference for this category | | [Owloops/claude-powerline](https://github.com/Owloops/claude-powerline) | 1,010 | TypeScript | Claude plugin marketplace or `npx` | stdin, local config, git | Best plugin-first aesthetic and wizard-driven setup | | [Haleclipse/CCometixLine](https://github.com/Haleclipse/CCometixLine) | 2,683 | Rust | npm-distributed binary | stdin, transcript analysis, git | Strongest "Rust binary with TUI and themes" play | | [stephenleo/cship](https://github.com/stephenleo/cship) | 321 | Rust | install script or `cargo install` | stdin, Starship modules, usage-limit helpers | Best Starship bridge and most coherent Rust config model | | [jarrodwatts/claude-hud](https://github.com/jarrodwatts/claude-hud) | 19,627 | JavaScript | Claude plugin marketplace | stdin plus transcript JSONL | Best observability surface for tools, agents, and todos | | [fredrikaverpil/claudeline](https://github.com/fredrikaverpil/claudeline) | 34 | Go | Claude plugin marketplace, releases, or `go install` | stdin, OAuth usage API, status API, release API | Most operationally opinionated single-binary plugin | ### Capability Matrix | Capability | [ccstatusline](https://github.com/sirmalloc/ccstatusline) | [claude-powerline](https://github.com/Owloops/claude-powerline) | [CCometixLine](https://github.com/Haleclipse/CCometixLine) | [cship](https://github.com/stephenleo/cship) | [claude-hud](https://github.com/jarrodwatts/claude-hud) | [claudeline](https://github.com/fredrikaverpil/claudeline) | | --- | --- | --- | --- | --- | --- | --- | | Interactive setup | TUI | Wizard | TUI | Config-first | Guided setup | Guided setup | | Plugin marketplace install | No | Yes | No | No | Yes | Yes | | Theme system | Yes | Yes | Yes | TOML styling | Light config styling | Limited by design | | Transcript parsing | Some internals and caches | Not the core bet | Yes | No | Yes | No | | External API reliance | Optional usage widgets | Not required | Not primary | Optional usage-limit helpers | No | Yes | | Starship reuse | No | No | No | Yes | No | No | | Best fit | Most users | Theme lovers who want plugin flow | Rust + TUI tinkerers | Starship users | Observability-first users | Conservative operators | ### What Each Tier-One Leader Actually Wins #### [ccstatusline](https://github.com/sirmalloc/ccstatusline) [ccstatusline](https://github.com/sirmalloc/ccstatusline) is still the category leader because it looks and behaves like a real product instead of a script pack. It has the broadest widget system, the best-known TUI editor, multi-line flexibility, powerline support, and a genuinely approachable default experience for users who do not want to hand-author TOML or shell. Its main weakness is not capability. It is operational posture. The easiest documented path still leans on moving-version `npx` or `bunx` patterns, and the project surface can feel larger than some users really need. #### [claude-powerline](https://github.com/Owloops/claude-powerline) If [ccstatusline](https://github.com/sirmalloc/ccstatusline) is the framework answer, [claude-powerline](https://github.com/Owloops/claude-powerline) is the plugin-native answer. It feels like a polished Claude plugin first and a statusline package second: slash-command setup, config auto-reload, theme families, Unicode or ASCII modes, and a visual taste that is much more deliberate than most utilitarian lines. For users who want something pretty and strongly packaged without living in a TUI, this is the cleanest recommendation. #### [CCometixLine](https://github.com/Haleclipse/CCometixLine) [CCometixLine](https://github.com/Haleclipse/CCometixLine) is not just "Rust [ccstatusline](https://github.com/sirmalloc/ccstatusline)." It has a different personality. The project combines a Rust statusline binary, built-in themes, a TUI, transcript-based usage logic, and optional Claude Code patching utilities like context-warning disabling and verbose-mode helpers. That makes it powerful, but also broader and more invasive than a pure formatter. People who want a strict statusline-only tool may love the rendering speed and dislike the adjacent utility surface. #### [cship](https://github.com/stephenleo/cship) [cship](https://github.com/stephenleo/cship) has the cleanest technical thesis in the whole market: reuse the Starship mental model instead of inventing another bespoke config language. If you already invested in `starship.toml`, this is the only serious option that lets that investment follow you into Claude Code. The tradeoff is obvious too. If you do not care about Starship, some of [cship](https://github.com/stephenleo/cship)'s brilliance is wasted on you. #### [claude-hud](https://github.com/jarrodwatts/claude-hud) [claude-hud](https://github.com/jarrodwatts/claude-hud) is arguably not a statusline in the classic sense anymore. It is a compact HUD. The reason it matters is simple: the official stdin payload still does not tell you what tool Claude is currently using, which subagents are alive, or how the todo list is moving. [claude-hud](https://github.com/jarrodwatts/claude-hud) gets that by reading transcript JSONL, and that makes it the strongest answer for "what is Claude doing right now?" If your priority is operational awareness rather than visual minimalism, [claude-hud](https://github.com/jarrodwatts/claude-hud) has the clearest product value in the space. #### [claudeline](https://github.com/fredrikaverpil/claudeline) [claudeline](https://github.com/fredrikaverpil/claudeline) is a small project with a much stronger architecture story than its star count implies. It is a Go stdlib binary, has an offline capture/render workflow, distinguishes subscription plan versus provider, exposes service disruption state, and thinks carefully about cache TTLs and failure behavior. This is the project I would point infrastructure-minded users toward when they want something intentionally constrained and operationally legible. ### Tier-One Verdict - Best general default: [ccstatusline](https://github.com/sirmalloc/ccstatusline) - Best plugin-first setup: [claude-powerline](https://github.com/Owloops/claude-powerline) - Best Rust product surface: [CCometixLine](https://github.com/Haleclipse/CCometixLine) - Best for existing Starship users: [cship](https://github.com/stephenleo/cship) - Best observability layer: [claude-hud](https://github.com/jarrodwatts/claude-hud) - Best minimal binary with strong operational thinking: [claudeline](https://github.com/fredrikaverpil/claudeline) ## Tier 2: Opinionated Midweights These projects do not define the whole market, but they are exactly where most of the interesting taste lives. | Project | Stars | Core bet | Distinctive detail | Why it stays out of tier one | | --- | ---: | --- | --- | --- | | [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline) | 1,064 | Simple trusted install wrapper | Copies a shell script into `~/.claude/` and restores backups on uninstall | Great default taste, smaller product surface | | [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) | 418 | Cross-platform reference script | Ships Bash and PowerShell, plus update notices and 60-second API cache | More script pack than product system | | [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline) | 7 | Go + TOML prompt engine | Starship-inspired formatting, built-in presets, OSC 8 links | Early project with low adoption so far | | [Astro-Han/claude-pace](https://github.com/Astro-Han/claude-pace) | 107 | Pace-aware quota thinking | Shows whether your burn rate is sustainable, not just raw percent used | Narrower scope than a full framework | | [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline) | 117 | Visual density done well | Gradient progress bar, terminal-aware fallback, smart hiding | Excellent shell design reference, not a broad ecosystem product | | [wolfdenpublishing/pyccsl](https://github.com/wolfdenpublishing/pyccsl) | 82 | Pure Python richness | Nine themes, five separator styles, zero dependencies, rich performance metrics | Single-file Python is great, but niche as a market center | | [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline) | 564 | Generator that emits a tailored script | Short questionnaire generates a customized bash statusline | More installer/generator than long-lived runtime platform | | [leeguooooo/claude-code-usage-bar](https://github.com/leeguooooo/claude-code-usage-bar) | 203 | Usage-bar specialist | Official-header-based rate-limit tracking, pip install, optional ASCII pet | Strong specialist, not the broadest statusline answer | ### The Midweights That Matter Most #### [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline) This is the "I just want a sane default from someone I already trust" option. It is small, opinionated, and does the important boring things correctly: copy a script, patch settings, back up what existed before, and offer uninstall. That is a more valuable product shape than people sometimes give it credit for. #### [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) Daniel Oliveira's repo is one of the strongest cross-platform reference implementations in the public set. The Bash and PowerShell pairing matters because a lot of otherwise good statusline repos quietly stop being serious the moment Windows enters the discussion. It also makes the old "copy this script and let Claude install it for me" workflow extremely legible. #### [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline) Felipe's project is tiny in adoption but conceptually clean: Go, TOML, presets, preview commands, and hyperlink support. It feels like a prompt engine written by someone who wanted a statusline in Go because none of the existing tools matched that preference. I would not call it market-leading yet, but it is one of the better-structured small projects. #### [claude-pace](https://github.com/Astro-Han/claude-pace) [claude-pace](https://github.com/Astro-Han/claude-pace) deserves more attention than its star count implies because it reframes the problem correctly. A raw "60% used" number is weak information. A pace delta that tells you whether you are outrunning the remaining window is much more operationally useful. If you care mostly about quota behavior and want pure Bash plus `jq`, this is one of the smartest narrow tools in the whole category. #### [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline) This repo matters as a design reference even if it never becomes the biggest project in the field. The gradient context bar, truecolor fallback story, smart hiding, and compact density are all good examples of statusline design that cares about peripheral readability instead of just stuffing in more tokens. It is one of the strongest public examples of "dense, shell-native, and still tasteful." #### [pyccsl](https://github.com/wolfdenpublishing/pyccsl) [pyccsl](https://github.com/wolfdenpublishing/pyccsl) is the best answer for someone who wants a zero-dependency Python statusline with unusually rich metrics. Cache hit rate, token breakdowns, response timing, and theme variety make it one of the most information-rich non-framework tools available. That said, it is still a single-file Python world. That is a strength for some users and a hard no for others. ## Tier 3: Shell Scripts, Specialists, and Long-Tail Projects The long tail matters because this market still innovates through shell scripts faster than polished frameworks do. ### The Long-Tail Projects Worth Knowing - [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) - Important not because it is huge, but because it normalized the "refresh the usage cache in hooks, keep render fast" pattern. - [FlineDev/CustomStatusline](https://github.com/FlineDev/CustomStatusline) - Pluginized rate-limit monitor. Good reference if your main concern is usage windows, not a whole statusline framework. - [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline) - A very direct script-first answer for `/oauth/usage` tracking and reset countdowns. - [syou6162/ccstatusline](https://github.com/syou6162/ccstatusline) - Despite the name collision, this is a separate Go project with a different philosophy: YAML-defined shell actions and caches rather than fixed widgets. - [sotayamashita/claude-code-statusline](https://github.com/sotayamashita/claude-code-statusline) - A small Rust project borrowing Starship's modular ideas into an embeddable Claude-specific binary. - [Wangnov/claude-code-statusline-pro](https://github.com/Wangnov/claude-code-statusline-pro) - Multilingual, preset-heavy, and much more ambitious than a simple shell script, but not yet a category-shaping choice outside its current audience. - [rz1989s/claude-code-statusline](https://github.com/rz1989s/claude-code-statusline) - Extremely feature-heavy shell suite with many components and installer transparency language. It is interesting, but feature maximalism is not the same thing as category leadership. - [daliovic/cc-statusline](https://github.com/daliovic/cc-statusline) - Distinctive for prayer times and MCP-oriented extras. ### Why the Long Tail Still Matters The long tail keeps discovering patterns that later frameworks copy: - hook-based background refreshes - better SSH or fallback glyph stories - more truthful rate-limit semantics - smarter context bars - novel install patterns The frameworks get the stars. The scripts still do a lot of the original invention. ## Architecture Patterns and Data-Source Lineages This is the single most useful way to understand the market. | Pattern | Representative projects | What it reads | Why builders choose it | Main weakness | | --- | --- | --- | --- | --- | | Payload-first renderer | [claude-powerline](https://github.com/Owloops/claude-powerline), [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline), [claude-pace](https://github.com/Astro-Han/claude-pace) | Official stdin JSON | Fast, simple, less brittle, aligns with the official platform | Limited by whatever the official payload omits | | Payload + direct usage API | [claudeline](https://github.com/fredrikaverpil/claudeline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine), older shell scripts | stdin plus `/api/oauth/usage` | Richer or more reliable subscriber-limit data in uneven environments | Needs credential lookup, cache discipline, and network tolerance | | Payload + transcript parsing | [claude-hud](https://github.com/jarrodwatts/claude-hud), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [pyccsl](https://github.com/wolfdenpublishing/pyccsl) | stdin plus local JSONL transcripts | Unlocks tool activity, subagent visibility, cache stats, and richer analytics | More local I/O and more version-sensitive parsing logic | | Hook-refreshed cache | [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch), several shell gists | Hook events, cache files, then render | Keeps the hot render path fast even with API-backed metrics | More moving parts in setup and lifecycle behavior | | Generator / installer | [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline), [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline) | Generates or installs a simpler runtime artifact | Easier adoption for people who do not want to author scripts | Customization ceiling is often lower afterward | | Plugin-first statusline | [claude-powerline](https://github.com/Owloops/claude-powerline), [claude-hud](https://github.com/jarrodwatts/claude-hud), [claudeline](https://github.com/fredrikaverpil/claudeline), [claude-pace](https://github.com/Astro-Han/claude-pace) | Marketplace plus setup command | Best adoption story inside Claude Code itself | Depends on plugin ecosystem maturity and platform quirks | ### The Biggest Lineage Split The most important historical split is this: - pre-`rate_limits` statuslines often scraped OAuth credentials and queried Anthropic directly - post-`rate_limits` statuslines increasingly prefer official stdin data and only do extra work for features the payload still lacks That is why modern statuslines look more like product choices than hacks. The baseline is now stable enough that extra complexity usually reflects deliberate ambition, not pure necessity. ## Quick-Glance Shell Lineage: The Ghostty Case Study After trying more than ten public statusline variants, the most visually satisfying one I used in practice was still a tuned shell script, not a framework. ![A Ghostty-friendly Claude Code statusline that keeps model, context, daily and weekly quota resets, and a giant context bar readable at a glance.](/images/research/claude-code-statusline-ghostty.png) ### Why This Layout Works So Well - it is legible from peripheral vision, not just from close reading - the current and weekly windows sit on the same line, so the relationship is obvious - the colors shift aggressively enough that you notice them instantly in Ghostty - the giant third-line context row turns "how full am I?" into a shape rather than a number - the line feels calm even when it is information-dense That combination is still surprisingly rare. > **Field note:** I have tried more than ten public Claude Code statusline variants at this point. For quick visual satisfaction, especially in Ghostty, this is still the one I most enjoy glancing at. ### Closest Public Upstream Found The closest public upstream I found for the local script lineage is [SippieCup's March 30, 2026 gist](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871). That is the strongest public code overlap I found. There are earlier public relatives in the same family, especially [jtbr's February 8, 2026 gist](https://gist.github.com/jtbr/4f99671d1cee06b44106456958caba8b), but the local script overlaps much more strongly with [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) than with the earlier public gist chain. Important nuance: - I am not claiming a perfect one-hop provenance chain - I am saying [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) is the closest public upstream I could verify from the code ### What Changed in the Local Ghostty-Tuned Variant | Public lineage shape | Local variant | Why the local change improves quick-glance use | | --- | --- | --- | | Pace-aware usage bars with separate reset rows | Current and weekly usage merged with inline reset countdowns | Faster scan, fewer separate visual bands | | Running or idle detection and peer-session logic | Removed from the default layout | Less flicker and less cognitive noise | | Separate extra-usage section | Hidden from the main layout | Keeps attention on the two windows that matter most all day | | Token-heavy top-line context display | Replaced with a giant dedicated context row | Much easier to read from a quick glance | | Less terminal-specific visual shaping | Added Ghostty-aware glyph choices plus ASCII-safe fallbacks for SSH and simpler terminals | Looks great in Ghostty without becoming fragile elsewhere | | No explicit operator cue for risky permission mode | Adds a `⚡` indicator when `--dangerously-skip-permissions` is active | Operationally useful without taking a whole segment | This is the best example I found of a statusline that optimizes for "observable in one glance" instead of "pack in one more metric." ## Security, Reliability, and Supply-Chain Risks The biggest ecosystem gap is not missing features. It is update trust. ### The Core Risk Several popular projects still document install paths like: - `npx -y ccstatusline@latest` - `npx -y @owloops/claude-powerline@latest --style=powerline` - `npx claude-pace` Combined with the official model where Claude Code reruns the statusline command repeatedly, that creates an obvious operational question: - do you want a constantly re-executed UI hook to resolve moving package versions at runtime? That risk statement is an inference from the official hook contract plus the documented install patterns, not a claim of a known compromise. But the operational tradeoff is still real. ### Reliability Matrix | Pattern | Example projects | Render-time external dependency | Operational risk | | --- | --- | --- | --- | | Local binary or copied script | [claudeline](https://github.com/fredrikaverpil/claudeline), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [cship](https://github.com/stephenleo/cship), [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) | Low | Lower | | Moving-version `npx` or equivalent | [ccstatusline](https://github.com/sirmalloc/ccstatusline) quick start, manual [claude-powerline](https://github.com/Owloops/claude-powerline), [claude-pace](https://github.com/Astro-Han/claude-pace) `npx` path | npm registry and current package tag | Higher | | Direct API polling for usage | [claudeline](https://github.com/fredrikaverpil/claudeline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine), [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline), older shell scripts | Anthropic API plus token lookup | Medium | | Transcript parsing | [claude-hud](https://github.com/jarrodwatts/claude-hud), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [pyccsl](https://github.com/wolfdenpublishing/pyccsl) | Local files and parser stability | Medium | | Hook-driven background caches | [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) lineage | Hook setup plus cache lifecycle | Medium | ### Practical Guidance - If you want the lowest-drama setup, prefer a copied script or installed binary over `npx @latest` in the hot path. - If you want richer subscriber-limit data, cached API polling is still reasonable, but only if the tool handles credential lookup and cache TTLs sanely. - If you want tool and subagent visibility, transcript parsing is still the only serious path, but you should accept that it is inherently closer to Claude Code's evolving internals. ## Recommendations by Persona and Use Case | If you want... | Use this | Why | | --- | --- | --- | | One broadly safe recommendation | [ccstatusline](https://github.com/sirmalloc/ccstatusline) | Best mix of adoption, capability breadth, and setup polish | | The cleanest plugin-native setup | [claude-powerline](https://github.com/Owloops/claude-powerline) | Marketplace install, slash-command wizard, strong visual taste | | Rust speed plus Starship reuse | [cship](https://github.com/stephenleo/cship) | The only serious Starship bridge in the field | | Rust speed without Starship baggage | [CCometixLine](https://github.com/Haleclipse/CCometixLine) | Binary distribution, themes, TUI, and strong performance story | | Live tool and subagent observability | [claude-hud](https://github.com/jarrodwatts/claude-hud) | Transcript-aware HUD beats pure formatters here | | Conservative binary with good ops hygiene | [claudeline](https://github.com/fredrikaverpil/claudeline) | Go stdlib binary, cache discipline, clear architecture | | Pure shell, no Node, quota-focused | [claude-pace](https://github.com/Astro-Han/claude-pace) | Pace delta is one of the most operationally useful metrics in the market | | Cross-platform copy-paste reference | [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) | Bash and PowerShell side by side | | Rich Python statusline with no dependencies | [pyccsl](https://github.com/wolfdenpublishing/pyccsl) | Strongest pure-Python answer | | A design reference for dense shell UI | [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline) | One of the best compact shell aesthetics in the public set | | The most visually satisfying Ghostty quick-glance layout | [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) lineage plus a local Ghostty-tuned shell variant | Best visual severity signaling and fast-scanning hierarchy I tested | ## Open Platform Gaps and GitHub Issue Watchlist The open [anthropics/claude-code](https://github.com/anthropics/claude-code) queue makes the market's pressure points pretty clear. As of April 16, 2026, these are the issues I would watch most closely. | Issue | Why it matters | | --- | --- | | [`#48445`](https://github.com/anthropics/claude-code/issues/48445) `statusLine.refreshInterval` re-runs but does not repaint | Undercuts the whole idea of refresh-driven live statuslines | | [`#47071`](https://github.com/anthropics/claude-code/issues/47071) external binaries produce no captured stdout without a shell wrapper | Makes some statusline binaries feel broken unless users know the wrapper workaround | | [`#49022`](https://github.com/anthropics/claude-code/issues/49022) add `context_breakdown` to statusline JSON | Would reduce a lot of transcript or custom parsing just to explain context composition | | [`#49270`](https://github.com/anthropics/claude-code/issues/49270) Nerd Font Unicode rendering is broken in parts of the UI | Directly affects powerline and icon-heavy statuslines | | [`#47534`](https://github.com/anthropics/claude-code/issues/47534) and related effort-level issues | Builders clearly want effort level exposed consistently without private heuristics | | [`#44982`](https://github.com/anthropics/claude-code/issues/44982) add permission or execution mode to the statusline payload | Useful for surfacing risky operator modes without shell hacks | | [`#40279`](https://github.com/anthropics/claude-code/issues/40279) multiline statusline collapses on terminal resize | A direct bug for the many tools now using two-line and three-line layouts | | [`#40287`](https://github.com/anthropics/claude-code/issues/40287) no refresh after `/rename` | Session-name-aware statuslines still need this fixed | | [`#37216`](https://github.com/anthropics/claude-code/issues/37216) OSC 8 hyperlinks broken inside `tmux` | Affects clickable branch, repo, and file-link patterns | The meta-pattern is straightforward: - builders want better repaint semantics - builders want a few more operational fields - builders want Unicode and hyperlink behavior to be more predictable across terminals ## Methodology and Full Source Appendix ### Methodology - Research date: April 16, 2026 - Primary source order: - official Claude Code docs - current GitHub repo metadata via `gh` - current project READMEs - open [anthropics/claude-code](https://github.com/anthropics/claude-code) issues - local lineage comparison against public gists - Coverage: - 24 public GitHub projects with statusline or statusline-capable relevance - 2 public gists used for lineage analysis - current repo stars, push dates, release tags, and install paths checked live on publication day ### Appendix Catalog: Notable Projects Outside the Main Narrative | Project | Stars | Lane | Notable angle | | --- | ---: | --- | --- | | [pcvelz/ccstatusline-usage](https://github.com/pcvelz/ccstatusline-usage) | 124 | Fork | Adds real usage and pace widgets to the [ccstatusline](https://github.com/sirmalloc/ccstatusline) family | | [FlineDev/CustomStatusline](https://github.com/FlineDev/CustomStatusline) | 7 | Specialist | Pluginized usage monitor with cache fallback | | [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline) | 3 | Specialist | Direct `/oauth/usage` script with reset countdowns | | [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) | 44 | Shell pattern | Important hook-driven cache-refresh lineage | | [syou6162/ccstatusline](https://github.com/syou6162/ccstatusline) | 9 | Go experiment | YAML plus arbitrary shell-command composition | | [daliovic/cc-statusline](https://github.com/daliovic/cc-statusline) | 7 | Novelty specialist | Adds prayer times and MCP count ideas | | [rz1989s/claude-code-statusline](https://github.com/rz1989s/claude-code-statusline) | 424 | Feature-maximalist shell suite | Large component surface and strong installer transparency story | | [Wangnov/claude-code-statusline-pro](https://github.com/Wangnov/claude-code-statusline-pro) | 193 | Multilingual preset system | Ambitious npm-plus-Rust hybrid with multiple themes and widgets | | [sotayamashita/claude-code-statusline](https://github.com/sotayamashita/claude-code-statusline) | 7 | Rust micro-framework | Starship-inspired modular Rust binary | | [ryoppippi/ccusage](https://github.com/ryoppippi/ccusage) | 12,956 | Adjacent tool | Primary product is usage analytics, but `npx ccusage statusline` matters | | [leeguooooo/claude-code-usage-bar](https://github.com/leeguooooo/claude-code-usage-bar) | 203 | Usage-bar specialist | Pip-installable quota bar with optional extras | | [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline) | 564 | Generator | Generates a customized script rather than becoming the runtime platform itself | ### Notable Gists | Gist | Date | Why it matters | | --- | --- | --- | | [SippieCup/0cd2567...](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) | March 30, 2026 | Closest public upstream found for the Ghostty-tuned local case study | | [jtbr/4f99671...](https://gist.github.com/jtbr/4f99671d1cee06b44106456958caba8b) | February 8, 2026 | Earlier public lineage in the quota-bar shell-script family | ## Bottom Line The Claude Code statusline market is mature enough now that "best" is the wrong question. The better question is: best for which operating style? - For most people: [ccstatusline](https://github.com/sirmalloc/ccstatusline) - For plugin-first polish: [claude-powerline](https://github.com/Owloops/claude-powerline) - For Starship-heavy Rust users: [cship](https://github.com/stephenleo/cship) - For observability: [claude-hud](https://github.com/jarrodwatts/claude-hud) - For conservative operators: [claudeline](https://github.com/fredrikaverpil/claudeline) - For shell lovers who care about quick visual satisfaction more than feature count: the [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871)-style Ghostty lineage is still hard to beat That last point is worth ending on. The most satisfying statuslines are not always the ones with the largest README or the most widgets. Sometimes the winner is just the one you can understand without really needing to read it. ## [tr] Claude Code Statusline Araçları Karşılaştırması URL: https://yigitkonur.com/tr/research/claude-code-statuslines-compared Kind: research-report Published: 2026-04-16 Updated: Thu Apr 16 Tarih: 2026-04-16 | Özet | Not | | --- | --- | | Kapsam | 16 Nisan 2026'da canlı metadata ile incelenmiş `24 repo + 2 gist` | | Ana sinyaller | Resmi Claude Code docs, güncel repo metadata'sı, install akışları ve açık [anthropics/claude-code](https://github.com/anthropics/claude-code) statusline issue'ları | | Net sonuç | [ccstatusline](https://github.com/sirmalloc/ccstatusline), [claude-powerline](https://github.com/Owloops/claude-powerline), [cship](https://github.com/stephenleo/cship), [claudeline](https://github.com/fredrikaverpil/claudeline) ve [claude-hud](https://github.com/jarrodwatts/claude-hud) pazarın farklı işlerini kazanıyor | ## Yönetici Özeti - Artık "tek bir en iyi Claude Code statusline" yok. En az beş ayrı ürün şekli var: - konfigürasyon framework'ü: [ccstatusline](https://github.com/sirmalloc/ccstatusline) - plugin-first, theme odaklı powerline: [claude-powerline](https://github.com/Owloops/claude-powerline) - Rust performans yaklaşımı: [CCometixLine](https://github.com/Haleclipse/CCometixLine) - Starship köprüsü: [cship](https://github.com/stephenleo/cship) - transcript-aware operasyon HUD'ı: [claude-hud](https://github.com/jarrodwatts/claude-hud) - [ccstatusline](https://github.com/sirmalloc/ccstatusline) hâlâ kategori lideri çünkü çoğu kullanıcı için en okunabilir genel amaçlı cevap o. En güçlü widget yüzeyine, en bilinen TUI editörüne ve en erişilebilir default deneyime sahip. - Ekosistemde ayrışma artık "model, context, git ve cost gösterebiliyor mu?" seviyesinde değil. Asıl farklar şu eksenlerde oluşuyor: - nasıl kurulduğu - hangi veriye güvendiği - render anında network ya da transcript işi yapıp yapmadığı - terminal estetiğine ne kadar yatırım yaptığı - Resmi Claude Code desteği artık o kadar gelişti ki eski dönemin birçok hack'i mecburi olmaktan çıktı. `statusLine` payload'ı zaten model, context, cost, worktree, agent ve `rate_limits` verisini veriyor. Ama açık issue kuyruğu, platformun hâlâ ciddi şekilde istenen alanlar ve refresh garantileri eksik olduğunu gösteriyor. - Günlük kullanımda test ettiğim en tatmin edici hızlı bakış düzeni hâlâ bir framework değil. [SippieCup'ın 30 Mart 2026 tarihli gist](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) çizgisine en yakın shell yaklaşımı, özellikle Ghostty için biraz daha iyi ayarlanmış haliyle, hâlâ en hoş görünen aile. > **Kısa cevap:** Hiç fazla düşünmeden tek öneri istiyorsan [ccstatusline](https://github.com/sirmalloc/ccstatusline) kullan. Plugin-native ve daha temiz bir kurulum akışı istiyorsan [claude-powerline](https://github.com/Owloops/claude-powerline) kullan. "Claude şu an ne yapıyor?" senin için görsel şıklıktan daha önemliyse [claude-hud](https://github.com/jarrodwatts/claude-hud) kullan. ## Dahil Etme Kriterleri ve Pazar Tanımı Bu rapor, aşağıdaki koşullardan en az birini karşılayan herkese açık GitHub projelerini kapsıyor: - doğrudan Claude Code statusline olarak üretilmiş olması - Claude Code'un `statusLine` hook'una birinci sınıf özellik olarak kurulması - pratikte kullanıcıların gerçekten statusline seçeneği gibi değerlendirdiği kadar yakın olması; örneğin [ccusage](https://github.com/ryoppippi/ccusage)'ın beta `statusline` komutu ya da [claude-hud](https://github.com/jarrodwatts/claude-hud) gibi HUD tarzı çözümler Amaç, internetteki her kişisel `~/.claude/statusline.sh` dosyasını toplamak değil. Kamuya açık dokümantasyonu, install rehberi ya da gerçek seçenek olarak sayılmasını sağlayacak kadar görünürlüğü olan projelere odaklandım. ### Pazar Haritası | Segment | En bilinen projeler | Segmenti tanımlayan şey | | --- | --- | --- | | Framework ve tam sistemler | [ccstatusline](https://github.com/sirmalloc/ccstatusline), [claude-powerline](https://github.com/Owloops/claude-powerline), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [cship](https://github.com/stephenleo/cship) | Preset'ler, theme'ler, çoklu layout'lar, config dosyaları veya interaktif setup akışları gibi gerçek ürün yüzeyi | | Operasyon plugin'leri ve HUD'lar | [claude-hud](https://github.com/jarrodwatts/claude-hud), [claudeline](https://github.com/fredrikaverpil/claudeline) | Status alanını sadece formatter değil, gözlem ve operasyon yüzeyi olarak ele alması | | Opinionated orta katman araçlar | [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine), [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline), [claude-pace](https://github.com/Astro-Han/claude-pace), [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline), [pyccsl](https://github.com/wolfdenpublishing/pyccsl), [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline) | Daha dar yüzey, daha güçlü default'lar ve daha belirgin bir zevk profili | | Uzun kuyruk uzman ve deneysel araçlar | [pcvelz/ccstatusline-usage](https://github.com/pcvelz/ccstatusline-usage), [syou6162/ccstatusline](https://github.com/syou6162/ccstatusline), [FlineDev/CustomStatusline](https://github.com/FlineDev/CustomStatusline), [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline), [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch), [rz1989s/claude-code-statusline](https://github.com/rz1989s/claude-code-statusline), [Wangnov/claude-code-statusline-pro](https://github.com/Wangnov/claude-code-statusline-pro), [sotayamashita/claude-code-statusline](https://github.com/sotayamashita/claude-code-statusline), [daliovic/cc-statusline](https://github.com/daliovic/cc-statusline), [leeguooooo/claude-code-usage-bar](https://github.com/leeguooooo/claude-code-usage-bar) | Daha dar iddia, daha düşük benimsenme ya da üst katmandaki araçlarla fazla örtüşen yaklaşım | ### İlk Dalgadan Bu Yana Ne Değişti İlk public statusline örnekleri büyük ölçüde shell script'lerden oluşuyordu; çünkü platformda eksik veri vardı. Bugünkü pazar farklı çünkü resmi Claude Code payload'ı artık çok daha zengin: - `model` - `cost` - `context_window` - `agent` - `worktree` - `rate_limits` - çok satırlı ANSI output ve OSC 8 link desteği Bu, problemin şeklini değiştirdi. 2026'nın ilginç statusline araçları artık sadece "stdin'i güzel parse ediyor mu?" diye ayrışmıyor. Asıl ayrışma konfigürasyon UX'i, ek veri kaynakları, güvenlik duruşu ve görsel hiyerarşi tarafında. ## Resmi Claude Code Statusline Platformunun Temeli Resmi [Claude Code statusline docs](https://docs.anthropic.com/en/docs/claude-code/statusline) çok basit bir kontrat tanımlıyor: - Claude Code, `settings.json` içinden bir shell komutu çalıştırıyor - komuta stdin üzerinden JSON gönderiyor - senin komutun string ya da çok satırlı bir blok basıyor - ANSI renkler ve OSC 8 linkler destekleniyor Ekosistemin bu kadar hızlı büyümesinin sebebi tam olarak bu basitlik. ### Temel Kabiliyet Seti 16 Nisan 2026 itibarıyla resmi payload, çoğu ana akım statusline için zaten yeterince zengin: - `model.id` ve `model.display_name` ile model kimliği - `cost.*` ile session cost ve code-change istatistikleri - `context_window.*` ile context size ve current usage - `rate_limits.five_hour` ve `rate_limits.seven_day` ile rate-limit pencereleri - workspace ve worktree bilgisi - agent adı - output style ve vim mode Ürün seviyesinde iki önemli kolaylık da var: - `/statusline`, doğal dilden statusline scaffold edebiliyor - resmi docs çok satırlı output'u destekliyor; bu yüzden artık iki ya da üç satırlı tasarımlar hack değil, doğal desen ### Bunun Pratik Sonucu Sadece model, context, cost ve subscriber limitlerini göstermek istiyorsan artık credential scrape etmene ya da log parse etmene gerek yok. Ek iş yapan araçlar bunu genelde şu dört sebepten biri için yapıyor: - daha zengin ya da daha tutarlı usage verisi almak - canlı tool ya da subagent aktivitesi göstermek - cache efficiency, burn rate gibi daha derin session analitiği üretmek - daha iyi install ve config UX'i sunmak ## Karşılaştırma Çerçevesi ve Sinyal Efsanesi Bu raporda projeleri beş lens üzerinden kıyaslıyorum. | Lens | Neden önemli | | --- | --- | | Install güven modeli | Statusline sürekli çalışan bir yüzey. Bu yüzden install ve update yolu burada normal CLI'lardan daha önemli. | | Veri kaynağı modeli | `stdin`, transcript parsing, doğrudan API çağrısı ve background hook'lar farklı doğruluk ve kırılganlık profilleri yaratıyor. | | Konfigürasyon yüzeyi | Bazı kullanıcı bir satırlık script istiyor, bazıları theme, preset ve TUI istiyor. | | Terminal iddiası | Powerline glyph'ler, Nerd Font beklentisi, gradient, hyperlink ve fallback modları gerçek kullanım deneyimini değiştiriyor. | | Bakım sinyali | Star sayısı tek başına yeterli değil, ama release akışı, son push tarihi, docs kalitesi ve issue hijyeni yine de iyi ayrım yapıyor. | Aşağıda kullandığım sinyal etiketleri: - `Leader`: yüksek benimsenme + gerçekten farklılaşan ürün şekli - `Specialist`: belirli kullanıcı ya da workflow için çok net değer - `Appendix`: ilginç ama daha dar, daha yeni, daha küçük ya da ana katmanla fazla örtüşen proje ## 1. Katman: Framework'ler, Plugin'ler ve Tam Sistemler ### Ana Karşılaştırma | Project | Stars | Runtime | Install yolu | Ana veri kaynakları | Neden önemli | | --- | ---: | --- | --- | --- | --- | | [sirmalloc/ccstatusline](https://github.com/sirmalloc/ccstatusline) | 7,638 | TypeScript | `npx` veya `bunx` TUI | stdin, git, opsiyonel usage API widget'ları | Bu kategorinin fiili framework referansı | | [Owloops/claude-powerline](https://github.com/Owloops/claude-powerline) | 1,010 | TypeScript | Claude plugin marketplace veya `npx` | stdin, local config, git | Plugin-first estetik ve wizard deneyiminde en temiz seçenek | | [Haleclipse/CCometixLine](https://github.com/Haleclipse/CCometixLine) | 2,683 | Rust | npm üzerinden dağıtılan binary | stdin, transcript analizi, git | "TUI'li, themeli Rust binary" yaklaşımının en güçlü örneği | | [stephenleo/cship](https://github.com/stephenleo/cship) | 321 | Rust | install script veya `cargo install` | stdin, Starship modülleri, usage-limit yardımcıları | Starship köprüsü olarak kategoride tek ciddi oyuncu | | [jarrodwatts/claude-hud](https://github.com/jarrodwatts/claude-hud) | 19,627 | JavaScript | Claude plugin marketplace | stdin + transcript JSONL | Tool, agent ve todo görünürlüğünde en güçlü çözüm | | [fredrikaverpil/claudeline](https://github.com/fredrikaverpil/claudeline) | 34 | Go | Claude plugin marketplace, release veya `go install` | stdin, OAuth usage API, status API, release API | Operasyonel bakışı en güçlü tek binary plugin | ### Kabiliyet Matrisi | Kabiliyet | [ccstatusline](https://github.com/sirmalloc/ccstatusline) | [claude-powerline](https://github.com/Owloops/claude-powerline) | [CCometixLine](https://github.com/Haleclipse/CCometixLine) | [cship](https://github.com/stephenleo/cship) | [claude-hud](https://github.com/jarrodwatts/claude-hud) | [claudeline](https://github.com/fredrikaverpil/claudeline) | | --- | --- | --- | --- | --- | --- | --- | | İnteraktif setup | TUI | Wizard | TUI | Config-first | Guided setup | Guided setup | | Plugin marketplace install | Hayır | Evet | Hayır | Hayır | Evet | Evet | | Theme sistemi | Evet | Evet | Evet | TOML tabanlı stil | Hafif config stili | Bilinçli şekilde sınırlı | | Transcript parsing | Bazı iç mekanikler ve cache'ler | Ana yaklaşım değil | Evet | Hayır | Evet | Hayır | | Harici API bağımlılığı | Opsiyonel usage widget'ları | Şart değil | Birincil yaklaşım değil | Opsiyonel usage-limit yardımcıları | Hayır | Evet | | Starship reuse | Hayır | Hayır | Hayır | Evet | Hayır | Hayır | | En uygun kullanıcı | Çoğu kullanıcı | Theme seven plugin kullanıcıları | Rust + TUI meraklıları | Starship kullanıcıları | Gözlem ve görünürlük isteyenler | Daha muhafazakâr operatörler | ### Her Birinci Katman Lideri Aslında Neyi Kazanıyor #### [ccstatusline](https://github.com/sirmalloc/ccstatusline) [ccstatusline](https://github.com/sirmalloc/ccstatusline) hâlâ kategori lideri çünkü bir script paketi gibi değil, gerçek bir ürün gibi davranıyor. En geniş widget yüzeyi, en bilinen TUI editörü, multi-line esnekliği, powerline desteği ve kendi config'ini elle yazmak istemeyen kullanıcılar için gerçekten erişilebilir bir default deneyimi var. En büyük zayıflığı kabiliyet tarafında değil; operasyonel duruş tarafında. En kolay belgelenmiş yol hâlâ hareketli versiyonlu `npx` ya da `bunx` desenlerine yaslanıyor ve proje yüzeyi bazı kullanıcılar için ihtiyaçtan büyük gelebiliyor. #### [claude-powerline](https://github.com/Owloops/claude-powerline) Eğer [ccstatusline](https://github.com/sirmalloc/ccstatusline) framework cevabıysa, [claude-powerline](https://github.com/Owloops/claude-powerline) da plugin-native cevap. Bu araç önce Claude plugin'i, sonra statusline paketi gibi hissettiriyor: slash-command setup, config auto-reload, tema aileleri, Unicode ve ASCII modları ve utilitarian çizgiden daha bilinçli bir görsel zevk. Güzel bir şey isteyen ama TUI içinde yaşamak istemeyen kullanıcı için en temiz önerilerden biri bu. #### [CCometixLine](https://github.com/Haleclipse/CCometixLine) [CCometixLine](https://github.com/Haleclipse/CCometixLine), "Rust ile yazılmış bir [ccstatusline](https://github.com/sirmalloc/ccstatusline)" değil. Daha farklı bir karakteri var. Rust statusline binary'si, built-in theme'ler, TUI, transcript tabanlı usage mantığı ve context warning kapatma ya da verbose mode patch etme gibi Claude Code yardımcıları aynı yerde. Bu onu güçlü yapıyor, ama daha da geniş bir yüzeye taşıyor. Sadece formatter isteyenler render hızını sevebilir ama yanındaki yardımcı araç katmanını fazla bulabilir. #### [cship](https://github.com/stephenleo/cship) [cship](https://github.com/stephenleo/cship), pazarın en temiz teknik tezine sahip: yeni bir config dili icat etmek yerine Starship mental modelini Claude Code içine taşımak. Halihazırda `starship.toml` yatırımın varsa, o yatırımın Claude Code içinde de devam etmesini sağlayan tek ciddi seçenek bu. Bunun tradeoff'u da açık. Starship umurunda değilse, [cship](https://github.com/stephenleo/cship)'in dehasının bir kısmı senin için boşa gidiyor. #### [claude-hud](https://github.com/jarrodwatts/claude-hud) [claude-hud](https://github.com/jarrodwatts/claude-hud) artık klasik anlamda statusline olmaktan biraz çıktı. Daha çok kompakt bir HUD. Önemli olmasının sebebi basit: resmi stdin payload'ı sana Claude'un tam şu anda hangi tool'u kullandığını, hangi subagent'ların aktif olduğunu ya da todo listesinin nasıl ilerlediğini söylemiyor. [claude-hud](https://github.com/jarrodwatts/claude-hud) bunu transcript JSONL okuyarak getiriyor. "Claude şu an ne yapıyor?" sorusu senin için görsel sadelikten daha önemliyse, bu alanın en net ürün değerine sahip çözümü [claude-hud](https://github.com/jarrodwatts/claude-hud). #### [claudeline](https://github.com/fredrikaverpil/claudeline) [claudeline](https://github.com/fredrikaverpil/claudeline), star sayısının düşündürdüğünden daha güçlü bir mimari hikâyeye sahip küçük bir proje. Go stdlib binary, offline capture/render workflow, subscription plan ile provider ayrımı, service disruption göstergesi ve cache TTL tarafında bilinçli kararlar var. Operasyonel açıdan sade ve anlaşılır bir çözüm isteyen altyapı kafalı kullanıcıya önereceğim proje bu olurdu. ### Birinci Katman Özeti - En iyi genel default: [ccstatusline](https://github.com/sirmalloc/ccstatusline) - En iyi plugin-first setup: [claude-powerline](https://github.com/Owloops/claude-powerline) - En iyi Rust ürün yüzeyi: [CCometixLine](https://github.com/Haleclipse/CCometixLine) - Halihazırda Starship kullananlar için en iyisi: [cship](https://github.com/stephenleo/cship) - En iyi gözlem katmanı: [claude-hud](https://github.com/jarrodwatts/claude-hud) - Operasyonel olarak en temiz minimal binary: [claudeline](https://github.com/fredrikaverpil/claudeline) ## 2. Katman: Opinionated Orta Katman Araçlar Bu projeler pazarın tamamını tanımlamıyor olabilir, ama zevk ve fikir tarafındaki en ilginç farklar genelde burada çıkıyor. | Project | Stars | Ana iddia | Ayırt edici detay | Neden birinci katmana çıkmıyor | | --- | ---: | --- | --- | --- | | [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline) | 1,064 | Basit ve güven veren install wrapper | Shell script'i `~/.claude/` içine kopyalıyor, uninstall sırasında backup geri yüklüyor | Çok iyi default zevk, ama daha dar ürün yüzeyi | | [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) | 418 | Çapraz platform referans script | Bash ve PowerShell birlikte geliyor, update notu ve 60 saniyelik API cache'i var | Ürün sistemi olmaktan çok script paketi | | [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline) | 7 | Go + TOML prompt engine | Starship benzeri format, built-in preset'ler, OSC 8 link'ler | Erken dönem proje, benimsenmesi düşük | | [Astro-Han/claude-pace](https://github.com/Astro-Han/claude-pace) | 107 | Pace-aware quota düşüncesi | Sadece ne kadar kullandığını değil, sürdürülebilir hızda gidip gitmediğini gösteriyor | Tam framework yerine dar ama akıllı bir uzmanlaşma | | [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline) | 117 | Görsel yoğunluğu doğru yapmak | Gradient progress bar, terminal-aware fallback, smart hiding | Çok iyi shell tasarım referansı, ama geniş ekosistem ürünü değil | | [wolfdenpublishing/pyccsl](https://github.com/wolfdenpublishing/pyccsl) | 82 | Pure Python zenginliği | Dokuz tema, beş separator, sıfır dependency, çok zengin performans metrikleri | Tek dosyalık Python dünyası herkese hitap etmiyor | | [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline) | 564 | Kişiye özel script üreten generator | Kısa bir soru-cevap akışından sonra optimize bash statusline üretiyor | Uzun ömürlü runtime platformundan çok generator | | [leeguooooo/claude-code-usage-bar](https://github.com/leeguooooo/claude-code-usage-bar) | 203 | Usage-bar uzmanı | Official-header tabanlı rate-limit takibi, pip install, opsiyonel ASCII pet | Geniş kapsamlı statusline cevabı değil, iyi bir uzman araç | ### Özellikle Önemli Olan Orta Katmanlar #### [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline) Bu, "güvendiğim birinin mantıklı default'unu istiyorum" seçeneği. Küçük, opinionated ve sıkıcı ama önemli işleri doğru yapıyor: script'i kopyalamak, settings'i patch etmek, eski durumu yedeklemek ve uninstall sunmak. Bu, düşündüğünden daha değerli bir ürün şekli. #### [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) Daniel Oliveira'nın repo'su, public setteki en iyi çapraz platform referans implementasyonlardan biri. Bash ve PowerShell'in beraber gelmesi önemli; çünkü birçok iyi statusline reposu Windows devreye girdiği an ciddiyetini kaybediyor. Ayrıca "bu script'i Claude'a verip kendine kurdur" akışını da çok okunur hâle getiriyor. #### [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline) Felipe'nin projesi benimsenme açısından küçük ama fikir olarak temiz: Go, TOML, preset'ler, preview komutları ve hyperlink desteği. Var olan araçların hiçbiri kendi zevkine uymadığı için Go ile prompt engine yazmış birinin işi gibi duruyor. Henüz pazar lideri demem, ama küçük projeler içinde en derli toplu olanlardan biri. #### [claude-pace](https://github.com/Astro-Han/claude-pace) [claude-pace](https://github.com/Astro-Han/claude-pace), star sayısından daha fazla ilgiyi hak ediyor çünkü problemi doğru çerçeveliyor. "Yüzde 60 kullandın" tek başına zayıf bilgi. Kalan süreye göre sürdürülebilir hızda gidip gitmediğini gösteren pace delta ise çok daha operasyonel bir ölçü. Özellikle quota davranışıyla ilgileniyorsan ve saf Bash + `jq` istiyorsan, bu kategorinin en zeki dar araçlarından biri. #### [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline) Bu repo büyüklüğünden bağımsız olarak tasarım referansı olarak önemli. Gradient context bar, truecolor fallback hikâyesi, smart hiding ve kompakt yoğunluk, "bir metrik daha sıkıştıralım" mantığından ziyade çevresel bakış okunabilirliğini önemseyen statusline tasarımına iyi örnek. Kamuya açık set içinde "yoğun ama zevkli shell UI" örneklerinden biri. #### [pyccsl](https://github.com/wolfdenpublishing/pyccsl) [pyccsl](https://github.com/wolfdenpublishing/pyccsl), sıfır dependency ile zengin metrik sunan Python statusline isteyen biri için en güçlü cevap. Cache hit rate, token breakdown, response time ve tema çeşitliliği, onu framework olmayan ama çok veri veren araçlar arasında üst sıraya koyuyor. Ama hâlâ tek dosyalık bir Python dünyası. Bazı kullanıcı için artı, bazıları için otomatik eksi. ## 3. Katman: Shell Script'ler, Uzman Araçlar ve Uzun Kuyruk Uzun kuyruk önemli çünkü bu pazarda yenilik hâlâ framework'lerden çok shell script tarafında çıkıyor. ### Bilmeye Değer Uzun Kuyruk Projeleri - [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) - Büyük olduğu için değil, usage cache'i hook'larla arka planda yenileyip render'ı hızlı tutma desenini normalize ettiği için önemli. - [FlineDev/CustomStatusline](https://github.com/FlineDev/CustomStatusline) - Rate-limit izleme odaklı pluginize edilmiş bir yaklaşım. Tüm framework yerine usage pencerelerine odaklananlar için iyi referans. - [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline) - `/oauth/usage` takibi ve reset countdown'ları için doğrudan, script-first bir cevap. - [syou6162/ccstatusline](https://github.com/syou6162/ccstatusline) - İsim benzerliğine rağmen farklı bir Go projesi. Sabit widget'lar yerine YAML ile tanımlanan shell aksiyonları ve cache yaklaşımı var. - [sotayamashita/claude-code-statusline](https://github.com/sotayamashita/claude-code-statusline) - Starship fikirlerini Claude'a özel gömülebilir Rust binary'sine taşıyan küçük bir proje. - [Wangnov/claude-code-statusline-pro](https://github.com/Wangnov/claude-code-statusline-pro) - Çok dilli, preset ağırlıklı ve basit shell script'ten daha iddialı. Ama bugünkü hâliyle kendi kitlesi dışında kategori belirleyici değil. - [rz1989s/claude-code-statusline](https://github.com/rz1989s/claude-code-statusline) - Aşırı özellikli shell paketi. İlginç, ama feature kalabalığı her zaman kategori liderliği etmiyor. - [daliovic/cc-statusline](https://github.com/daliovic/cc-statusline) - Prayer times ve MCP tarzı yan sinyallerle farklılaşmaya çalışıyor. ### Uzun Kuyruk Neden Hâlâ Değerli Uzun kuyruk, framework'lerin daha sonra kopyaladığı desenleri erken keşfediyor: - hook tabanlı background refresh - daha iyi SSH ya da fallback glyph hikâyeleri - daha dürüst rate-limit semantiği - daha akıllı context bar'lar - yeni install desenleri Star'ları framework'ler topluyor olabilir. Ama orijinal fikirlerin önemli kısmı hâlâ script dünyasından geliyor. ## Mimari Desenler ve Veri Kaynağı Soyları Bu pazarı anlamanın en faydalı yolu bence burası. | Desen | Temsilci projeler | Ne okuyor | Neden seçiliyor | Asıl zayıflık | | --- | --- | --- | --- | --- | | Payload-first renderer | [claude-powerline](https://github.com/Owloops/claude-powerline), [felipeelias/claude-statusline](https://github.com/felipeelias/claude-statusline), [claude-pace](https://github.com/Astro-Han/claude-pace) | Resmi stdin JSON | Hızlı, basit, daha az kırılgan, platformla hizalı | Resmi payload'ın vermediği şeylerde tavan yapıyor | | Payload + doğrudan usage API | [claudeline](https://github.com/fredrikaverpil/claudeline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine), eski shell script'ler | stdin + `/api/oauth/usage` | Subscriber limit tarafında daha zengin ya da daha tutarlı veri | Credential lookup, cache disiplini ve network toleransı gerekiyor | | Payload + transcript parsing | [claude-hud](https://github.com/jarrodwatts/claude-hud), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [pyccsl](https://github.com/wolfdenpublishing/pyccsl) | stdin + local JSONL transcript'ler | Tool activity, subagent görünürlüğü, cache istatistiği ve derin analitik açıyor | Daha fazla local I/O ve versiyon değişimine duyarlı parser mantığı | | Hook ile yenilenen cache | [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) çizgisi | Hook event'leri ve cache dosyaları | Hot render path'i hızlı tutuyor | Kurulum ve yaşam döngüsü daha hareketli | | Generator / installer | [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline), [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline) | Daha basit bir runtime artefact üretiyor ya da kuruyor | El ile script yazmak istemeyenler için onboarding iyi | Sonradan özelleştirme tavanı daha düşük olabilir | | Plugin-first statusline | [claude-powerline](https://github.com/Owloops/claude-powerline), [claude-hud](https://github.com/jarrodwatts/claude-hud), [claudeline](https://github.com/fredrikaverpil/claudeline), [claude-pace](https://github.com/Astro-Han/claude-pace) | Marketplace + setup komutu | Claude Code içinde en temiz adoption hikâyesi | Plugin ekosisteminin kendi olgunluğuna ve platform tuhaflıklarına bağlı | ### En Büyük Soy Ayrımı Tarihsel olarak en önemli ayrım şu: - `rate_limits` öncesi statusline'lar çoğunlukla OAuth credential okuyup Anthropic API'sine direkt gidiyordu - `rate_limits` sonrası statusline'lar resmi stdin verisini daha çok tercih ediyor ve ekstra işi sadece payload'ın vermediği özellikler için yapıyor Bu yüzden modern statusline'lar artık hack değil, ürün tercihi gibi görünüyor. Baseline yeterince stabil; ek karmaşıklık çoğu zaman mecburiyetten değil, bilinçli iddiadan geliyor. ## Hızlı Bakış İçin Shell Soyu: Ghostty Vaka Çalışması Benim günlük kullanımda denediğim ondan fazla public statusline arasında en görsel olarak tatmin edici olanı hâlâ bir framework değil, ayarlanmış bir shell script oldu. ![Ghostty için ayarlanmış, model, context, günlük ve haftalık quota reset'leri ile devasa context bar'ı hızlı bakışta okunabilir kılan Claude Code statusline.](/images/research/claude-code-statusline-ghostty.png) ### Bu Düzen Neden Bu Kadar İyi Çalışıyor - yakından okumaya değil, çevresel bakışa göre tasarlanmış - current ve weekly aynı satırda olduğu için ilişkileri anında görülüyor - renk geçişleri Ghostty'de dikkat çekecek kadar belirgin - dev üçüncü satır context'i sayı olmaktan çıkarıp şekle dönüştürüyor - bilgi yoğun olmasına rağmen çizgi sakin hissettiriyor Bu kombinasyon sanıldığından daha nadir. > **Saha notu:** Şu ana kadar 10'dan fazla public Claude Code statusline varyasyonu denedim. Özellikle Ghostty'de hızlı bakış ve görsel tatmin açısından hâlâ en çok hoşuma giden çözüm bu çizgi oldu. ### Bulabildiğim En Yakın Public Upstream Local script soyunun bulabildiğim en yakın public upstream'i [SippieCup'ın 30 Mart 2026 tarihli gist'i](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871). Kod benzerliği açısından en güçlü eşleşme buydu. Aynı ailede daha eski public akrabalar da var; özellikle [jtbr'nin 8 Şubat 2026 tarihli gist'i](https://gist.github.com/jtbr/4f99671d1cee06b44106456958caba8b). Ama local script ile en güçlü örtüşme [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) tarafında çıktı. Buradaki önemli nüans şu: - bunun kusursuz bir tek-adımlı provenance zinciri olduğunu iddia etmiyorum - sadece public olarak doğrulayabildiğim en yakın upstream'in [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) olduğunu söylüyorum ### Local Ghostty-Tuned Varyantta Neler Değişmiş | Public soy şekli | Local varyant | Bu değişiklik neden hızlı bakış kullanımını iyileştiriyor | | --- | --- | --- | | Pace-aware kullanım bar'ları ve ayrı reset satırları | Current ve weekly kullanım aynı satırda, reset countdown'ları inline | Daha hızlı taranıyor, görsel bant sayısı azalıyor | | Running ya da idle algısı ve peer-session mantığı | Default görünümden çıkarılmış | Daha az titreşim, daha az zihinsel gürültü | | Ayrı extra-usage bölümü | Ana yerleşimde gizlenmiş | Gün boyu asıl önemli iki pencereye odak kalıyor | | Token-ağır top-line context gösterimi | Devasa ayrı bir context satırına çevrilmiş | Tek bakışta anlaması çok daha kolay | | Daha az terminale özel şekillendirme | Ghostty uyumlu glyph tercihleri ve SSH ya da daha basit terminaller için ASCII-safe fallback eklenmiş | Ghostty'de çok iyi görünüp diğer ortamlarda kırılmıyor | | Riskli permission moduna dair görünür ipucu yok | `--dangerously-skip-permissions` aktifken `⚡` işareti eklenmiş | Operasyonel olarak faydalı ama layout'u boğmuyor | Benim gördüğüm kadarıyla bu, "bir metrik daha sığdıralım" yerine "tek bakışta anlaşılabilir olsun" diye optimize edilmiş en iyi örneklerden biri. ## Güvenlik, Güvenilirlik ve Supply-Chain Riskleri Ekosistemdeki en büyük açık eksik özellik değil. Update güven modeli. ### Temel Risk Popüler projelerin bir kısmı hâlâ şu tip kurulum desenleri öneriyor: - `npx -y ccstatusline@latest` - `npx -y @owloops/claude-powerline@latest --style=powerline` - `npx claude-pace` Bunu resmi modelle birleştirince, yani Claude Code'un statusline komutunu tekrar tekrar çalıştırdığı gerçeğiyle, kaçınılmaz bir operasyon sorusu çıkıyor: - sürekli çalışan bir UI hook'unun çalışma anında hareketli paket versiyonu çözmesini gerçekten istiyor musun? Bu risk cümlesi, resmi hook kontratı ve README'lerdeki install örneklerinden çıkan bir çıkarım. Bilinen bir güvenlik olayı iddiası değil. Ama operasyonel tradeoff yine de gerçek. ### Güvenilirlik Matrisi | Desen | Örnek projeler | Render anında harici bağımlılık | Operasyonel risk | | --- | --- | --- | --- | | Local binary ya da kopyalanmış script | [claudeline](https://github.com/fredrikaverpil/claudeline), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [cship](https://github.com/stephenleo/cship), [kamranahmedse/claude-statusline](https://github.com/kamranahmedse/claude-statusline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) | Düşük | Daha düşük | | Hareketli versiyonlu `npx` benzeri yol | [ccstatusline](https://github.com/sirmalloc/ccstatusline) quick start, manual [claude-powerline](https://github.com/Owloops/claude-powerline), [claude-pace](https://github.com/Astro-Han/claude-pace) `npx` akışı | npm registry ve anlık paket etiketi | Daha yüksek | | Usage için doğrudan API polling | [claudeline](https://github.com/fredrikaverpil/claudeline), [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine), [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline), eski shell script'ler | Anthropic API + token lookup | Orta | | Transcript parsing | [claude-hud](https://github.com/jarrodwatts/claude-hud), [CCometixLine](https://github.com/Haleclipse/CCometixLine), [pyccsl](https://github.com/wolfdenpublishing/pyccsl) | Local dosyalar ve parser stabilitesi | Orta | | Hook-driven background cache | [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) çizgisi | Hook setup + cache yaşam döngüsü | Orta | ### Pratik Tavsiyeler - En az drama istiyorsan, hot path içinde `npx @latest` yerine local binary ya da kopyalanmış script tercih et. - Subscriber-limit verisini daha zengin istiyorsan cached API polling hâlâ mantıklı olabilir; ama sadece credential lookup ve cache TTL tarafı düzgün düşünülmüşse. - Tool ve subagent görünürlüğü istiyorsan transcript parsing hâlâ tek ciddi yol; bunun da doğası gereği Claude Code internallerine daha yakın ve daha kırılgan olduğunu kabul etmek gerekiyor. ## Persona ve Kullanım Senaryosuna Göre Öneriler | Eğer istediğin şey... | Bunu kullan | Neden | | --- | --- | --- | | Genel geçer tek tavsiye | [ccstatusline](https://github.com/sirmalloc/ccstatusline) | Benimsenme, özellik genişliği ve setup kalitesi dengesi en iyi | | En temiz plugin-native setup | [claude-powerline](https://github.com/Owloops/claude-powerline) | Marketplace install, slash-command wizard, güçlü görsel tat | | Rust hızı + Starship reuse | [cship](https://github.com/stephenleo/cship) | Alandaki tek ciddi Starship köprüsü | | Starship istemeden Rust hızı | [CCometixLine](https://github.com/Haleclipse/CCometixLine) | Binary dağıtımı, theme'ler, TUI ve güçlü performans hikâyesi | | Tool ve subagent görünürlüğü | [claude-hud](https://github.com/jarrodwatts/claude-hud) | Transcript-aware HUD, salt formatter'ları burada geride bırakıyor | | Operasyonel olarak temiz binary | [claudeline](https://github.com/fredrikaverpil/claudeline) | Go stdlib binary, cache disiplini, anlaşılır mimari | | Pure shell, Node'suz, quota odaklı çözüm | [claude-pace](https://github.com/Astro-Han/claude-pace) | Pace delta pazardaki en kullanışlı operasyonel metriklerden biri | | Cross-platform referans script | [daniel3303/ClaudeCodeStatusLine](https://github.com/daniel3303/ClaudeCodeStatusLine) | Bash ve PowerShell birlikte geliyor | | Dependency'siz zengin Python çözümü | [pyccsl](https://github.com/wolfdenpublishing/pyccsl) | Pure Python tarafındaki en iyi cevap | | Yoğun ama zevkli shell tasarımı | [kcchien/claude-code-statusline](https://github.com/kcchien/claude-code-statusline) | Public setteki en iyi kompakt shell estetiklerinden biri | | Ghostty'de en tatmin edici hızlı bakış düzeni | [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) çizgisi + local Ghostty-tuned varyant | En iyi görsel severity sinyali ve hızlı tarama hiyerarşisi | ## Açık Platform Boşlukları ve GitHub Issue Takip Listesi Açık [anthropics/claude-code](https://github.com/anthropics/claude-code) kuyruğu, pazarın en net baskı noktalarını gösteriyor. 16 Nisan 2026 itibarıyla en çok izlenmeye değer issue'lar bunlar. | Issue | Neyi çözerdi | | --- | --- | | [`#48445`](https://github.com/anthropics/claude-code/issues/48445) `statusLine.refreshInterval` komutu tekrar çalıştırıyor ama repaint etmiyor | Refresh odaklı canlı statusline mantığını doğrudan zayıflatıyor | | [`#47071`](https://github.com/anthropics/claude-code/issues/47071) harici binary'lerin stdout'u shell wrapper olmadan yakalanmıyor | Bazı binary statusline'ların kullanıcıya bozukmuş gibi görünmesine yol açıyor | | [`#49022`](https://github.com/anthropics/claude-code/issues/49022) `context_breakdown` alanı eklensin | Context bileşimini anlatmak için gereksiz transcript ya da custom parsing ihtiyacını azaltırdı | | [`#49270`](https://github.com/anthropics/claude-code/issues/49270) Nerd Font Unicode karakterleri UI'da sorunlu | Powerline ve icon-heavy statusline'ları doğrudan etkiliyor | | [`#47534`](https://github.com/anthropics/claude-code/issues/47534) ve effort-level kümesi | Builder'lar effort level'ı heuristics olmadan, tutarlı şekilde görmek istiyor | | [`#44982`](https://github.com/anthropics/claude-code/issues/44982) permission ya da execution mode payload'a eklensin | Riskli operator modlarını shell hack'i olmadan göstermek için önemli | | [`#40279`](https://github.com/anthropics/claude-code/issues/40279) multi-line statusline terminal resize sonrası çöküyor | İki ve üç satırlı statusline'lar için doğrudan bug | | [`#40287`](https://github.com/anthropics/claude-code/issues/40287) `/rename` sonrası refresh olmuyor | Session-name-aware statusline'lar için hâlâ eksik | | [`#37216`](https://github.com/anthropics/claude-code/issues/37216) OSC 8 hyperlink `tmux` içinde kırılıyor | Tıklanabilir branch, repo ve dosya link desenlerini etkiliyor | Genel desen çok açık: - builder'lar daha iyi repaint semantiği istiyor - birkaç operasyonel alan daha görmek istiyor - Unicode ve hyperlink davranışının terminaller arası daha öngörülebilir olmasını bekliyor ## Metodoloji ve Tam Kaynak Eki ### Metodoloji - Araştırma tarihi: 16 Nisan 2026 - Birincil kaynak sırası: - resmi Claude Code docs - `gh` ile alınmış güncel GitHub repo metadata'sı - güncel proje README'leri - açık [anthropics/claude-code](https://github.com/anthropics/claude-code) issue'ları - public gist'lerle yapılan local lineage karşılaştırması - Kapsam: - statusline ya da statusline-capable ilgisi olan 24 public GitHub projesi - lineage analizi için 2 public gist - repo stars, push tarihleri, release tag'leri ve install yolları yayın gününde canlı olarak yeniden kontrol edildi ### Ana Anlatı Dışında Kalan Önemli Projeler | Project | Stars | Lane | Dikkat çekici açısı | | --- | ---: | --- | --- | | [pcvelz/ccstatusline-usage](https://github.com/pcvelz/ccstatusline-usage) | 124 | Fork | [ccstatusline](https://github.com/sirmalloc/ccstatusline) ailesine gerçek usage ve pace widget'ları ekliyor | | [FlineDev/CustomStatusline](https://github.com/FlineDev/CustomStatusline) | 7 | Specialist | Cache fallback'li pluginize usage monitörü | | [ohugonnot/claude-code-statusline](https://github.com/ohugonnot/claude-code-statusline) | 3 | Specialist | Reset countdown'lı doğrudan `/oauth/usage` script'i | | [xleddyl/claude-watch](https://github.com/xleddyl/claude-watch) | 44 | Shell pattern | Hook tabanlı cache-refresh çizgisinin önemli referansı | | [syou6162/ccstatusline](https://github.com/syou6162/ccstatusline) | 9 | Go experiment | YAML + keyfi shell komut kompozisyonu | | [daliovic/cc-statusline](https://github.com/daliovic/cc-statusline) | 7 | Novelty specialist | Prayer times ve MCP count gibi yan fikirler | | [rz1989s/claude-code-statusline](https://github.com/rz1989s/claude-code-statusline) | 424 | Feature-maximalist shell suite | Geniş component yüzeyi ve installer şeffaflığı | | [Wangnov/claude-code-statusline-pro](https://github.com/Wangnov/claude-code-statusline-pro) | 193 | Multilingual preset system | Çok tema ve çok widget'lı, npm artı Rust hibriti | | [sotayamashita/claude-code-statusline](https://github.com/sotayamashita/claude-code-statusline) | 7 | Rust micro-framework | Starship esintili modüler Rust binary | | [ryoppippi/ccusage](https://github.com/ryoppippi/ccusage) | 12,956 | Adjacent tool | Ana ürün usage analizi ama `npx ccusage statusline` önemli | | [leeguooooo/claude-code-usage-bar](https://github.com/leeguooooo/claude-code-usage-bar) | 203 | Usage-bar specialist | Pip ile kurulan quota bar çözümü | | [chongdashu/cc-statusline](https://github.com/chongdashu/cc-statusline) | 564 | Generator | Runtime platform olmak yerine kişiye özel script üretiyor | ### Dikkat Çeken Gist'ler | Gist | Tarih | Neden önemli | | --- | --- | --- | | [SippieCup/0cd2567...](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) | 30 Mart 2026 | Ghostty-tuned local vaka için bulabildiğim en yakın public upstream | | [jtbr/4f99671...](https://gist.github.com/jtbr/4f99671d1cee06b44106456958caba8b) | 8 Şubat 2026 | Quota-bar shell-script ailesindeki daha eski public soy | ## Sonuç Claude Code statusline pazarı artık o kadar olgun ki "en iyisi hangisi?" sorusu tek başına doğru soru değil. Daha doğru soru şu: hangi çalışma tarzı için en iyisi? - Çoğu kullanıcı için: [ccstatusline](https://github.com/sirmalloc/ccstatusline) - Plugin-first şıklık için: [claude-powerline](https://github.com/Owloops/claude-powerline) - Starship ağırlıklı Rust kullanıcıları için: [cship](https://github.com/stephenleo/cship) - Gözlem ve görünürlük için: [claude-hud](https://github.com/jarrodwatts/claude-hud) - Daha muhafazakâr operatörler için: [claudeline](https://github.com/fredrikaverpil/claudeline) - Shell seven ve özellik sayısından çok tek bakışta görsel tatmin isteyenler için: [SippieCup](https://gist.github.com/SippieCup/0cd256789b6350196fc34c6d0ac09871) çizgisindeki Ghostty dostu varyantlar Son cümleyi özellikle bırakmak istiyorum. En tatmin edici statusline'lar her zaman en uzun README'ye ya da en fazla widget'a sahip olanlar olmuyor. Bazen kazanan, neredeyse okumaya gerek kalmadan anlayabildiğin çizgi oluyor. ## [tr] Codex app ile remote SSH kullanmak URL: https://yigitkonur.com/tr/using-remote-ssh-with-codex-app Kind: essay Published: 2026-04-16 Updated: Thu Apr 16 bir süre boyunca "Codex app'i SSH ile remote makineye bağlayabiliyor muyuz?" sorusunun pratik cevabı "henüz değil" gibiydi. bu durum **16 Nisan 2026** tarihinde değişti: OpenAI, remote devbox'lara SSH üzerinden alpha desteğini duyurdu ve dokümantasyonda artık düzgün bir kurulum sayfası var. şu anki temiz yol şu: 1. `~/.ssh/config` içine gerçek bir host alias'ı ekle 2. Codex'i çalıştırdığın makineden `ssh host-aliasin` komutunun gerçekten çalıştığını doğrula 3. remote host üzerinde `codex` kurup girişini yap 4. uygulamada `Settings > Connections` bölümünü açıp remote proje klasörünü seç dokümandaki önemli ayrıntı şu: uygulama remote tarafı kullanıcının login shell'i üzerinden ayağa kaldırıyor. yani `codex` o shell içinde `PATH` üzerinde değilse ya da shell init tarafında garip bir şey varsa, normal SSH çalışsa bile bağlantı yine düşebiliyor. ## Connections bölümü hala yoksa burada issue thread'i hala değerli. resmi doküman, SSH remote connections özelliğinin alpha aşamasında olduğunu ve kademeli rollout edildiğini söylüyor. stable build'lerde farklı durumlar görülmesinin sebebi büyük ihtimalle bu. son yorumlarda öne çıkan iki workaround var: - `~/.codex/config.toml` içine şunu ekleyip uygulamayı yeniden başlat: ```toml [features] remote_connections = true ``` - bu da yetmezse beta appcast build'ini bir kez kullan. paylaşılan feed `https://persistent.oaistatic.com/codex-app-beta/appcast.xml`. 16 Nisan 2026 itibarıyla burada gelen sürüm `26.415.20818` idi. birkaç kişi SSH connection'ı beta içinde ekleyip sonra stable ile devam edebildiğini yazmış. ## gerçek görünen iki pürüz birincisi: remote makinedeki `codex` CLI güncel olsun. son yorumlardan biri özellikle remote tarafta `0.121.0` sürümünün bağlantıyı toparlayabilmek için önemli olduğunu söylüyor. ikincisi: shell init dosyalarına bak. bir kullanıcı `ECONNRESET` ve websocket `1006` hatalarının sebebini `~/.bashrc` içindeki koşulsuz `exec zsh -l` satırına kadar indirmiş. Codex remote tarafı login interactive shell ile başlattığı için bu ekstra devir bootstrap akışını bozabiliyor. `BASH_EXECUTION_STRING` kontrolü eklenince sorun çözülmüş: ```bash if [ -x "$(command -v zsh)" ] && [ -z "${BASH_EXECUTION_STRING:-}" ]; then exec zsh -l fi ``` ## şu anki tablo bu yani evet, Codex app içinde remote SSH artık gerçekten var. resmi yol artık mevcut ama issue yorumlarını yine de okumaya değer, çünkü canlı alpha rollout'un dağınık tarafını gösteriyor: gizli flag'ler, beta build'ler ve shell-init köşe vakaları. bir de ağ tarafında dokümana sadık kal. SSH port forwarding ya da VPN / Tailscale kullan; remote app server'ı doğrudan internete açma. ## [en] using remote SSH with Codex app URL: https://yigitkonur.com/using-remote-ssh-with-codex-app Kind: essay Published: 2026-04-16 Updated: Thu Apr 16 for a while, the answer to "can Codex app work against a remote box over SSH?" was basically "not yet." that changed on **April 16, 2026**: OpenAI announced alpha support for remote devboxes over SSH, and the docs now have a real setup page. if you want the clean path now, do this: 1. add a real host alias to `~/.ssh/config` 2. make sure `ssh your-alias` works from the same machine running Codex 3. install and authenticate `codex` on the remote host 4. open `Settings > Connections` in the app and choose the remote project folder one important detail from the docs: the app bootstraps the remote side through your remote user's login shell. so if `codex` is not on `PATH` there, or your shell init does something weird, the connection can fail even though plain SSH works. ## if the Connections menu still doesn't show up the issue thread is still useful here. the official docs say SSH remote connections are in alpha and rolling out gradually, so people are clearly seeing different states in stable builds. the two workarounds showing up in the latest comments are: - add this to `~/.codex/config.toml`, then restart the app: ```toml [features] remote_connections = true ``` - if that still does not do it, use the beta appcast build once. the shared feed is `https://persistent.oaistatic.com/codex-app-beta/appcast.xml`, and on April 16, 2026 it was serving `26.415.20818`. a few people reported that they could add the SSH connection in beta and keep using it from stable afterward. ## two gotchas that seem real first: keep the remote `codex` CLI updated. one of the latest comments specifically calls out `0.121.0` on the remote machine as important for recovering connections cleanly. second: watch your shell init files. one tester traced `ECONNRESET` and websocket `1006` failures to a `~/.bashrc` that always did `exec zsh -l`. because Codex starts the remote side with a login interactive shell, that extra handoff can break bootstrap. guarding the handoff with `BASH_EXECUTION_STRING` fixed it: ```bash if [ -x "$(command -v zsh)" ] && [ -z "${BASH_EXECUTION_STRING:-}" ]; then exec zsh -l fi ``` ## that's the current state so yeah, remote SSH in Codex app is finally real. the official path exists now, but the issue comments are still worth reading because they capture the messy part of a live alpha rollout: hidden flags, beta builds, and shell-init edge cases. also: stick to the docs' network model. use SSH port forwarding or a VPN / Tailscale path, and do not expose the remote app server directly to the internet. ## [en] Tip: enable 1M context in Codex with one command URL: https://yigitkonur.com/gpt-5-4-already-has-the-1m-context-window Kind: essay Published: 2026-04-15 Updated: Wed Apr 15 if you want the fast path, run this: ```sh curl -fsSL https://yigitkonur.com/enable-codex-1m-context.sh | bash ``` the script creates a timestamped backup of `~/.codex/config.toml`, checks whether your config is missing, partial, outdated, or already correct, and then applies the smallest update that gets you to the 1M settings. if you want to do it manually instead, add these two lines to `~/.codex/config.toml`: ```toml model_context_window = 1000000 model_auto_compact_token_limit = 900000 ``` then restart Codex. that’s it. no long context-window theory, just the switch you need. OpenAI’s **March 5, 2026** GPT-5.4 launch post says Codex has experimental support for the 1M window, and the GPT-5.4 model page lists a **1,050,000-token** context window. the practical part is simply enabling it in your local config. ## [tr] Tip: Codex'te 1M context'i tek komutla aç URL: https://yigitkonur.com/tr/gpt-5-4-already-has-the-1m-context-window Kind: essay Published: 2026-04-15 Updated: Wed Apr 15 kolay yol için şunu çalıştır: ```sh curl -fsSL https://yigitkonur.com/enable-codex-1m-context.sh | bash ``` script önce `~/.codex/config.toml` için zaman damgalı bir yedek alır, sonra config'in eksik, yarım, eski ya da zaten doğru olup olmadığını kontrol eder ve sadece gereken güncellemeyi yapar. istersen elle de yapabilirsin. o durumda `~/.codex/config.toml` içine şu iki satırı ekle: ```toml model_context_window = 1000000 model_auto_compact_token_limit = 900000 ``` sonra Codex'i yeniden başlat. olay bu kadar. uzun bir context window dersi değil, sadece gereken ayar. OpenAI'nin **5 Mart 2026** tarihli GPT-5.4 duyurusu Codex tarafında 1M pencere için deneysel destek olduğunu söylüyor. GPT-5.4 model sayfası da **1,050,000 token** context window listeliyor. pratik tarafta yapman gereken şey ise bu desteği local config içinde açmak. ## [en] I turned Pokémon Red into a shared multiplayer arcade — here's how URL: https://yigitkonur.com/pokemon-red-wasm-multiplayer Kind: essay Published: 2026-04-14 Updated: Tue Apr 14 **[🎮 Play it live →](https://yigitkonur.github.io/wasm-pokemon-red/)** — one instance, everyone plays together. the idea started simply: what if visitors to my site could play Pokémon Red together, passing the controller between them like a Twitch Plays setup — but embedded on a blog, backed by a proper save state, and with no server cost worth mentioning? this is the full build log. --- ## what it does one copy of Pokémon Red runs in the browser. anyone who opens the page can join. a single player holds the controller at a time; after five seconds idle the turn passes to the next person in queue. if nobody is around, an AI bot picks up and navigates the overworld or battles. there is a live chat next to the game. the save state persists across sessions: close the tab, come back tomorrow — the game is exactly where you left it. | layer | technology | what it does | |---|---|---| | ROM source | pret/pokered | original Game Boy assembly | | build | rgbds 0.9.x | assembles into a verified .gbc image | | emulator | nicknassar/binjgb | C emulator compiled to WASM | | build tool | Emscripten (emsdk) | C to WebAssembly | | shell | vanilla HTML/CSS/JS | canvas loop, audio, keyboard | | server | Node.js on Railway | WebSocket arbitration | | state | Upstash Redis | persists save state between players | | AI bot | autoplay.js | reads Game Boy RAM directly | --- ## step 1 — build the ROM from source everything starts with [pret/pokered](https://github.com/pret/pokered), the fully reverse-engineered disassembly of Pokémon Red and Blue. it's a remarkable project: decades of community work turned a 1 MB Game Boy cartridge into readable, annotatable assembly. ```bash git clone https://github.com/pret/pokered.git cd pokered make # produces pokered.gbc sha1sum pokered.gbc # verify against roms.sha1 ``` you need [rgbds](https://rgbds.gbdev.io) (≥0.9). the assembler, linker, and fix tool are all included. `make` produces `pokered.gbc` — a verified cartridge image. the SHA1 is pinned in `roms.sha1`; build reproducibility matters when you're going to ship this ROM publicly. --- ## step 2 — compile the emulator to WebAssembly [binjgb](https://github.com/nicknassar/binjgb) is a cycle-accurate Game Boy emulator written in C. it is small, well-structured, and exposes the right hooks for Emscripten compilation. ```bash git clone https://github.com/nicknassar/binjgb.git source ~/emsdk/emsdk_env.sh emcc binjgb/src/emulator.c binjgb/src/joypad.c binjgb/src/apu.c \ web/binjgb/wrapper.c \ -o dist/binjgb.js \ -s EXPORTED_FUNCTIONS=@web/binjgb/exported.json \ -s MODULARIZE=1 \ -s ALLOW_MEMORY_GROWTH=1 \ -O3 ``` `web/binjgb/exported.json` lists the eight C functions the browser shell needs: ```json ["_emulator_new_simple", "_emulator_run_until_f64", "_get_frame_buffer_ptr", "_get_audio_buffer_ptr", "_emulator_get_ticks_f64", "_free", "_malloc", "_joypad_set"] ``` `wrapper.c` is an overlay that adds a frame-perfect 60fps canvas loop and exposes the audio ring buffer to JavaScript without modifying binjgb's source. the compiled output is two files: `binjgb.js` (runtime and glue) and `binjgb.wasm` (the actual bytecode). --- ## step 3 — wire the browser shell `web/player.html` is a standalone HTML page. no framework, no bundler. it loads `binjgb.js`, initialises the emulator with the ROM bytes, then ticks forward in a `requestAnimationFrame` loop. the loop is straightforward: ```javascript function tick(now) { const cyclesPerFrame = 4194304 / 60; Module._emulator_run_until_f64(emulatorPtr, Module._emulator_get_ticks_f64(emulatorPtr) + cyclesPerFrame); renderFrame(); scheduleAudio(); requestAnimationFrame(tick); } ``` keyboard input goes through a thin dispatcher in `player.js` that maps DOM KeyboardEvent codes to the eight Game Boy buttons and calls `Module._joypad_set`. the canvas is upscaled 3x with nearest-neighbour interpolation so the pixel art stays crisp. --- ## step 4 — the multiplayer turn system the most interesting engineering is the turn system. it lives in two files: `web/multiplayer.js` (browser client) and `server/server.js` (Node.js WebSocket server deployed on Railway). **the protocol is minimal:** | message | direction | meaning | |---|---|---| | `join` | client to server | player announces nickname | | `input` | client to server | button press | | `state_sync` | server to client | full save-state blob on join | | `turn_granted` | server to client | you have the controller | | `turn_revoked` | server to client | pass it on | | `chat` | both | live chat message | | `ai_granted` | server to client | AI bot is now playing | | `ai_revoked` | server to client | AI bot is done | the server tracks one `activeMode`: `idle`, `human`, or `ai`. only the mode holder's inputs are forwarded to the emulator. everyone else spectates. **turn timer:** ```javascript function resetTurnTimer(ws) { clearTimeout(turnTimer); turnTimer = setTimeout(() => { if (activeMode === 'human' && activePlayer === ws) { revokeHumanTurn(); grantNextOrIdle(); } }, TURN_MS); // 5000 } ``` every button press from the active player resets the five-second timer. idle means someone gets granted next. a human leaving means the next person in queue or idle. idle long enough means the AI gets a turn. --- ## step 5 — persisting save state with Redis without persistence the game would restart every time the server restarts or the last player leaves. the solution: serialize the full emulator RAM and store it in Redis on every turn handoff. ```javascript // on turn handoff (server.js) const stateBlob = emulator.serializeState(); // ~8 KB base64 await redis.set('pokemon:state', stateBlob); // on new player joining const saved = await redis.get('pokemon:state'); if (saved) ws.send(JSON.stringify({ type: 'state_sync', state: saved })); ``` upstash redis is serverless: no persistent connection, no provisioning. the REST API fits perfectly with Railway's ephemeral container model. the free tier covers ~10 000 requests/day — more than enough at hobby scale. --- ## step 6 — the AI bot `autoplay.js` is a simplified port of [bouletmarc/PokeBot](https://github.com/bouletmarc/PokeBot). the bot doesn't do screen scraping; it reads Game Boy RAM addresses directly via the emulator's exported memory pointer. ```javascript // check if we're in a battle const BATTLE_ACTIVE = 0xD057; const inBattle = readRam(BATTLE_ACTIVE) !== 0; if (inBattle) { battleRoutine(); // select FIGHT, pick highest-PP move } else { overworldWalk(); // random walk with wall-bounce detection } ``` the bot is gated by `multiplayerAllowed`: it only activates when the server has granted it a turn via `ai_granted`. it never fires when a human holds the controller. --- ## step 7 — embedding or self-hosting **embed the shared arcade** (one line): ```html <iframe src="https://yigitkonur.github.io/wasm-pokemon-red/" width="100%" height="640" style="border:none;border-radius:12px" allow="autoplay"> </iframe> ``` **self-host the whole stack:** 1. clone [yigitkonur/wasm-pokemon-red](https://github.com/yigitkonur/wasm-pokemon-red) and build the ROM and WASM (`make`) 2. deploy `server/server.js` to Railway — one-click from `railway.toml` 3. create an Upstash Redis instance, set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` in Railway environment 4. update `WS_URL` in `web/multiplayer.js` to point to your Railway deployment 5. push `web/` to any static host (GitHub Pages, Netlify, Vercel, S3) total cloud cost at hobby scale: **$0**. --- ## what's next the logical next step is more ROMs. the binjgb emulator handles any Game Boy cartridge; swapping the ROM file and redeploying is a five-minute operation. the turn system, Redis persistence, and AI bot are all ROM-agnostic. the interesting design question is whether to run each ROM as a separate page with its own server, or to extend the server to a multi-room model where each room is one ROM. the latter is more elegant and would let visitors channel-surf between games — like a small arcade. Tetris is the obvious first addition. Link's Awakening next. eventually a lobby page at the root where you pick a game, join the queue, and play for your five seconds. --- ## links - **live arcade:** [yigitkonur.github.io/wasm-pokemon-red](https://yigitkonur.github.io/wasm-pokemon-red/) - **source:** [github.com/yigitkonur/wasm-pokemon-red](https://github.com/yigitkonur/wasm-pokemon-red) - **pret/pokered:** [github.com/pret/pokered](https://github.com/pret/pokered) - **binjgb:** [github.com/nicknassar/binjgb](https://github.com/nicknassar/binjgb) - **PokeBot:** [github.com/bouletmarc/PokeBot](https://github.com/bouletmarc/PokeBot) ## [tr] Pokémon Red'i çok oyunculu paylaşımlı bir arcade'e dönüştürdüm — işte nasıl URL: https://yigitkonur.com/tr/pokemon-red-wasm-multiplayer Kind: essay Published: 2026-04-14 Updated: Tue Apr 14 **[🎮 Canlı oyna →](https://yigitkonur.github.io/wasm-pokemon-red/)** — tek bir örnek, herkes birlikte oynuyor. fikir basitti aslında: siteyi ziyaret eden insanlar Pokémon Red'i birlikte oynayabilse, kumandayı aralarında geçirseler — Twitch Plays benzeri ama bir blog üzerine gömülü, düzgün kayıt durumu olan ve maliyeti yok denecek kadar az bir şey olsa nasıl olurdu? bu, o yapının tam inşa günlüğü. --- ## ne yapıyor tarayıcıda tek bir Pokémon Red kopyası çalışıyor. sayfayı açan herkes katılabiliyor. bir seferde tek oyuncu kumandayı elinde tutuyor; beş saniye hareketsizlik sonrası sıra kuyruktaki bir sonraki kişiye geçiyor. etrafta kimse yoksa bir AI botu devreye giriyor, overworld'de dolaşıyor ya da savaşıyor. oyunun yanında canlı bir sohbet var. kayıt durumu oturumlar arası korunuyor: sekmeyi kapatın, yarın geri gelin — oyun bıraktığınız yerde. | katman | teknoloji | görevi | |---|---|---| | ROM kaynağı | pret/pokered | orijinal Game Boy assembly | | derleme | rgbds 0.9.x | doğrulanmış .gbc imajı oluşturur | | emülatör | nicknassar/binjgb | WASM'a derlenen C emülatörü | | derleme aracı | Emscripten (emsdk) | C'den WebAssembly'ye | | kabuk | vanilla HTML/CSS/JS | canvas döngüsü, ses, klavye | | sunucu | Node.js / Railway | WebSocket arbitrasyonu | | durum | Upstash Redis | oyuncular arası kayıt saklama | | AI bot | autoplay.js | Game Boy RAM'ini doğrudan okur | --- ## adım 1 — ROM'u kaynaktan derleme her şey [pret/pokered](https://github.com/pret/pokered) ile başlıyor; bu, Pokémon Kırmızı ve Mavi'nin tamamen tersine mühendislikle elde edilmiş disassembly'si. onlarca yıllık topluluk emeğiyle 1 MB'lık bir Game Boy kartuşu okunabilir, açıklamalı assembly'ye dönüştürüldü. ```bash git clone https://github.com/pret/pokered.git cd pokered make # pokered.gbc üretilir sha1sum pokered.gbc # roms.sha1 ile doğrula ``` [rgbds](https://rgbds.gbdev.io) (≥0.9) gerekiyor. assembler, linker ve fix aracının tamamı dahil. `make`, `pokered.gbc` üretiyor — doğrulanmış bir kartuş imajı. SHA1, `roms.sha1`'de sabitleniyor; bu ROM'u kamuya açık biçimde dağıtacaksanız tekrarlanabilir derleme önemli. --- ## adım 2 — emülatörü WebAssembly'ye derleme [binjgb](https://github.com/nicknassar/binjgb), C ile yazılmış, döngü doğruluklu bir Game Boy emülatörü. küçük, iyi yapılandırılmış ve Emscripten derlemesi için doğru kancaları sunuyor. ```bash git clone https://github.com/nicknassar/binjgb.git source ~/emsdk/emsdk_env.sh emcc binjgb/src/emulator.c binjgb/src/joypad.c binjgb/src/apu.c \ web/binjgb/wrapper.c \ -o dist/binjgb.js \ -s EXPORTED_FUNCTIONS=@web/binjgb/exported.json \ -s MODULARIZE=1 \ -s ALLOW_MEMORY_GROWTH=1 \ -O3 ``` `web/binjgb/exported.json`, tarayıcı kabuğunun ihtiyaç duyduğu sekiz C fonksiyonunu listeliyor. `wrapper.c` ise binjgb kaynağını değiştirmeden kare-mükemmel 60fps canvas döngüsü ekleyen ve ses tamponunu JavaScript'e açan bir kaplama katmanı. derleme çıktısı iki dosya: `binjgb.js` (çalışma zamanı ve bağlantı kodu) ile `binjgb.wasm` (asıl bytecode). --- ## adım 3 — tarayıcı kabuğunu bağlama `web/player.html` bağımsız bir HTML sayfası. çerçeve yok, paket yöneticisi yok. `binjgb.js`'yi yükleyip emülatörü ROM baytlarıyla başlatıyor, sonra `requestAnimationFrame` döngüsünde ilerlettiriyor. klavye girişi, `player.js` içindeki ince bir dağıtıcıdan geçiyor; bu dağıtıcı DOM `KeyboardEvent` kodlarını sekiz Game Boy düğmesine eşleyip `Module._joypad_set`'i çağırıyor. canvas, piksel sanatının net kalması için en-yakın-komşu interpolasyonuyla 3x büyütülüyor. --- ## adım 4 — çok oyunculu sıra sistemi en ilginç mühendislik, sıra sistemi. iki dosyada yaşıyor: `web/multiplayer.js` (tarayıcı istemcisi) ve Railway'de çalışan `server/server.js` (Node.js WebSocket sunucusu). **protokol minimal:** | mesaj | yön | anlamı | |---|---|---| | `join` | istemci → sunucu | oyuncu lakabını bildiriyor | | `input` | istemci → sunucu | düğmeye basma | | `state_sync` | sunucu → istemci | katılımda tam kayıt blob'u | | `turn_granted` | sunucu → istemci | kumanda sende | | `turn_revoked` | sunucu → istemci | sırayı ver | | `chat` | her iki yön | canlı sohbet mesajı | | `ai_granted` | sunucu → istemci | AI botu şu an oynuyor | | `ai_revoked` | sunucu → istemci | AI botu bitti | sunucu tek bir `activeMode` takip ediyor: `idle`, `human` veya `ai`. yalnızca o anki mod sahibinin girişleri emülatöre iletiliyor. diğer herkes izliyor. --- ## adım 5 — Redis ile kayıt durumunu kalıcı hale getirme kalıcılık olmadan oyun, sunucu her yeniden başladığında ya da son oyuncu ayrıldığında sıfırlanırdı. çözüm: her sıra devri sırasında emülatörün tam RAM'ini serileştirmek ve Redis'e kaydetmek. ```javascript // sıra devri sırasında (server.js) const stateBlob = emulator.serializeState(); // ~8 KB base64 await redis.set('pokemon:state', stateBlob); // yeni oyuncu katıldığında const saved = await redis.get('pokemon:state'); if (saved) ws.send(JSON.stringify({ type: 'state_sync', state: saved })); ``` upstash redis sunucusuz: kalıcı bağlantı yok, provizyon yok. REST API'si Railway'in geçici konteyner modeliyle mükemmel uyuşuyor. ücretsiz katman günlük ~10.000 istek kapsıyor — hobi ölçeği için fazlasıyla yeterli. --- ## adım 6 — AI botu `autoplay.js`, [bouletmarc/PokeBot](https://github.com/bouletmarc/PokeBot) projesinin basitleştirilmiş bir uyarlaması. bot ekran görüntüsü analizi yapmıyor; emülatörün dışa aktarılan bellek işaretçisi üzerinden Game Boy RAM adreslerini doğrudan okuyor. ```javascript // savaşta olup olmadığını kontrol et const BATTLE_ACTIVE = 0xD057; const inBattle = readRam(BATTLE_ACTIVE) !== 0; if (inBattle) { battleRoutine(); // FIGHT seç, en yüksek PP'li hamleyi al } else { overworldWalk(); // duvar algılama ile rastgele yürüyüş } ``` bot `multiplayerAllowed` koşuluna bağlı: yalnızca sunucu `ai_granted` mesajıyla sıra verdiğinde etkinleşiyor. bir insan kumandayı tutarken asla devreye girmiyor. --- ## adım 7 — gömme ya da kendi altyapınızda çalıştırma **paylaşımlı arcade'i gömün** (tek satır): ```html <iframe src="https://yigitkonur.github.io/wasm-pokemon-red/" width="100%" height="640" style="border:none;border-radius:12px" allow="autoplay"> </iframe> ``` **tüm sistemi kendi altyapınızda çalıştırın:** 1. [yigitkonur/wasm-pokemon-red](https://github.com/yigitkonur/wasm-pokemon-red) reposunu klonlayın ve ROM ile WASM'ı derleyin (`make`) 2. `server/server.js`'yi Railway'e deploy edin — `railway.toml` ile tek tıklama 3. Upstash Redis örneği oluşturun, `UPSTASH_REDIS_REST_URL` ve `UPSTASH_REDIS_REST_TOKEN` değerlerini Railway ortam değişkenlerine ekleyin 4. `web/multiplayer.js`'deki `WS_URL` değerini kendi Railway deployment'ınıza güncelleyin 5. `web/` klasörünü herhangi bir statik barındırma servisine gönderin (GitHub Pages, Netlify, Vercel, S3) hobi ölçeğinde toplam bulut maliyeti: **$0**. --- ## bundan sonra ne var mantıksal bir sonraki adım daha fazla ROM. binjgb emülatörü herhangi bir Game Boy kartuşunu çalıştırıyor; ROM dosyasını değiştirip yeniden deploy etmek beş dakikalık bir işlem. sıra sistemi, Redis kalıcılığı ve AI botu tamamen ROM'dan bağımsız. ilginç tasarım sorusu şu: her ROM ayrı bir sayfa ve ayrı bir sunucu olarak mı çalışmalı, yoksa sunucuyu her odanın bir ROM olduğu çok odalı bir modele mi genişletmeli? ikincisi daha zarif ve ziyaretçilerin oyunlar arasında geçiş yapmasına — küçük bir arcade gibi — izin verir. Tetris, açık ilk ek. Sonra Link's Awakening. Sonunda ana sayfada bir lobi: bir oyun seç, kuyruğa gir, beş saniyen için oyna. --- ## bağlantılar - **canlı arcade:** [yigitkonur.github.io/wasm-pokemon-red](https://yigitkonur.github.io/wasm-pokemon-red/) - **kaynak kod:** [github.com/yigitkonur/wasm-pokemon-red](https://github.com/yigitkonur/wasm-pokemon-red) - **pret/pokered:** [github.com/pret/pokered](https://github.com/pret/pokered) - **binjgb:** [github.com/nicknassar/binjgb](https://github.com/nicknassar/binjgb) - **PokeBot:** [github.com/bouletmarc/PokeBot](https://github.com/bouletmarc/PokeBot) ## [en] auto-approve Claude Code plan mode via PermissionRequest URL: https://yigitkonur.com/auto-approve-claude-code-plan-mode Kind: essay Published: 2026-04-13 Updated: Mon Apr 13 if you’re using Claude Code’s plan mode, you’ve probably seen the “ready to code?” approval dialog. as I always approve Opus 4.6's plan, no need to do this thing manually anymore. turns out you can automate that click with a single hook once you target the right event. this also highlights a tiny docs gap tracked in anthropic’s repo: [issue #11891](https://github.com/anthropics/claude-code/issues/11891) (“[DOCS] Missing PermissionRequest hook details in Hooks Guide and Input Reference schema”). + not well-documented and we need to do better job on documenting JSON payload details as Claude Code is not open-source, we had to do basic reverse engineering (not cool as its name, basically, just add event listener that save JSONs into a folder, and read from there, not assembly patched xD) ## the key detail: it’s PermissionRequest (not Stop) the approval dialog is a `PermissionRequest` for the tool `ExitPlanMode`. `Stop` fires after a run is done. plan approval happens while Claude is *waiting* for user input, so `Stop` is the wrong place to intercept it. ## what PermissionRequest sends (stdin) here’s the (currently under-documented) shape you get on stdin when the dialog pops: ```json { "session_id": "abc123-def4-5678-ghij-klmnopqrstuv", "transcript_path": "/Users/you/.claude/projects/-Users-you-my-project/abc123.jsonl", "cwd": "/Users/you/my-project", "permission_mode": "plan", "hook_event_name": "PermissionRequest", "tool_name": "ExitPlanMode", "tool_input": { "allowedPrompts": [ { "tool": "Bash", "prompt": "run tests" }, { "tool": "Bash", "prompt": "install deps" } ], "plan": "# Plan: Implement Feature X\n\n## Context\n\n..." } } ``` two useful bits: - `tool_name` tells you *what* is asking (here: `ExitPlanMode`) - `tool_input.plan` contains the full plan markdown (which you can archive elsewhere) ## minimal auto-approve hook (copy/paste) script: `~/.claude/hooks/auto-approve-plan.sh` ```bash #!/bin/bash cat >/dev/null # consume stdin (important on Windows/WSL) cat <<'EOF' {"hookSpecificOutput":{"hookEventName":"PermissionRequest","decision":{"behavior":"allow","message":"auto-approved"}}} EOF ``` config (only match `ExitPlanMode`, not everything): ```json { "hooks": { "PermissionRequest": [ { "matcher": "ExitPlanMode", "hooks": [ { "type": "command", "command": "~/.claude/hooks/auto-approve-plan.sh" } ] } ] } } ``` notes that save time: - your hook should read stdin (otherwise you can hang) - your output must be wrapped under `hookSpecificOutput` with `hookEventName: "PermissionRequest"` ## optional: archive each plan to Craft.do because the plan markdown is already in `tool_input.plan`, you can ship it to Craft.do in the background and still return the approval immediately. the only “gotcha”: don’t pull the markdown into a shell variable and then re-embed it into JSON (multiline content will bite you). build the Craft.do payload in a single `jq` pass instead. ```bash #!/bin/bash TMPFILE="$(mktemp)" cat > "$TMPFILE" ``` # fire-and-forget archive (don’t block the approval response) ```bash ( jq --arg ts "$(date '+%Y-%m-%d %H:%M')" --arg pageId "$CRAFT_PAGE_ID" --arg home "$HOME" '{ blocks: [{ type: "page", textStyle: "card", markdown: ("[" + (.cwd | sub($home; "~")) + "] - [" + $ts + "]"), content: [{ type: "text", markdown: .tool_input.plan }] }], position: { position: "end", pageId: $pageId } }' < "$TMPFILE" | curl -sS -X POST "$CRAFT_API_URL/blocks" -H "Content-Type: application/json" -d @- >/dev/null 2>&1 ) & rm -f "$TMPFILE" ``` # approve the dialog ```bash cat <<'EOF' {"hookSpecificOutput":{"hookEventName":"PermissionRequest","decision":{"behavior":"allow","message":"auto-approved + archived"}}} EOF ``` ## if you want this packaged: yigitkonur/hooks-claude-approve i bundled the “auto-approve + (optional) Craft.do archive” flow into **[yigitkonur/hooks-claude-approve](https://github.com/yigitkonur/hooks-claude-approve)**. modes: | **mode** | **auto-approve** | **Craft.do archive** | **use case** | | -------- | ---------------- | -------------------- | ---------------------------------------------- | | 1 | yes | no | skip the approval dialog | | 2 | yes | yes | skip approval and archive every plan | | 3 | no | yes | archive plans but still click approve manually | install: ```bash bash <(curl -fsSL https://raw.githubusercontent.com/yigitkonur/hooks-claude-approve/main/install.sh) ``` ## links - hooks tool: [https://github.com/yigitkonur/hooks-claude-approve](https://github.com/yigitkonur/hooks-claude-approve) - docs gap tracker: [https://github.com/anthropics/claude-code/issues/11891](https://github.com/anthropics/claude-code/issues/11891) - official hooks guide: [https://docs.anthropic.com/en/docs/claude-code/hooks](https://docs.anthropic.com/en/docs/claude-code/hooks) ## [en] using claude code's new native ssh remote on a mac mini / darwin URL: https://yigitkonur.com/claude-code-ssh-remote-on-mac-mini-via-orbstack Kind: essay Published: 2026-04-13 Updated: Mon Apr 13 so you got yourself a mac mini. maybe it's sitting headless under your desk, maybe it's in a closet running 24/7 as your dev server. you want to connect to it with claude code's ssh remote feature from your macbook, your ipad, whatever. you type in the host, hit connect, and get slapped with: ```plaintext Unsupported remote platform: darwin. Only Linux hosts are supported for SSH connections. ``` yeah. claude code ssh remote only works with linux hosts. your mac mini runs macos (darwin). dead end, right? nah. ## the workaround: run linux inside your mac here's the move: you spin up a lightweight linux vm on your mac mini using [orbstack](https://orbstack.dev). orbstack is basically docker desktop but actually good -- it also runs full linux machines with near-native performance on apple silicon. the key insight: **orbstack automatically mounts your entire macos filesystem into every linux vm**. so your code at `/Users/yourname/dev` on macos? it's right there at `/Users/yourname/dev` inside the vm too. same files. no syncing. no copying. just works via virtiofs. so instead of ssh-ing into macos (which claude code rejects), you ssh into a linux vm that has full access to all your mac's files. claude code sees linux, everybody's happy. ## the setup ### 1. install orbstack on the mac mini ```bash brew install orbstack ``` or grab it from [orbstack.dev](https://orbstack.dev). open it once to finish setup. ### 2. create an ubuntu vm ```bash orbctl create ubuntu:noble dev-sandbox ``` this gives you ubuntu 24.04 arm64. takes like 10 seconds. it auto-creates a user matching your macos username. ### 3. install ssh server in the vm ```bash orb -m dev-sandbox -u root bash -c ' apt-get update && apt-get install -y openssh-server && systemctl enable ssh && systemctl start ssh ' ``` ### 4. set a password (for initial key copy) ```bash orb -m dev-sandbox -u root bash -c 'echo "yourusername:yourpassword" | chpasswd' ``` ### 5. get the vm's ip ```bash orbctl info dev-sandbox ``` look for the `IPv4` line. something like `192.168.139.x`. this is on orbstack's internal network, only reachable from the mac mini itself. ### 6. copy your ssh key from the mac mini ```bash ssh-copy-id yourusername@192.168.139.x ``` ### 7. fix the home directory orbstack maps your macos home to `/Users/yourname` inside the vm, but ssh defaults to `/home/yourname`. fix it so you land in the right place: ```bash orb -m dev-sandbox -u root usermod -d /Users/yourname yourusername ``` make sure your ssh keys are in the right spot: ```bash orb -m dev-sandbox mkdir -p /Users/yourname/.ssh orb -m dev-sandbox -u root bash -c 'cp /home/yourname/.ssh/authorized_keys /Users/yourname/.ssh/authorized_keys 2>/dev/null; chown yourusername:yourusername /Users/yourname/.ssh/authorized_keys' ``` ### 8. (optional) passwordless sudo ```bash orb -m dev-sandbox -u root bash -c 'echo "yourusername ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/yourusername && chmod 440 /etc/sudoers.d/yourusername' ``` ### 9. create a convenience symlink ```bash orb -m dev-sandbox ln -sf /Users/yourname/dev ~/dev ``` ## connecting from your macbook your macbook can't reach the vm directly -- its ip is on orbstack's internal network inside the mac mini. so you proxy through the mac mini. add this to `~/.ssh/config` on your **macbook**: ```ini Host dev HostName 192.168.139.x Port 22 User yourusername ProxyCommand ssh -W %h:%p yourusername@<mac-mini-lan-ip> IdentityFile ~/.ssh/id_ed25519 StrictHostKeyChecking no UserKnownHostsFile /dev/null ``` replace `192.168.139.x` with the vm ip from step 5, and `<mac-mini-lan-ip>` with your mac mini's actual lan ip (like `192.168.1.200`). also copy your macbook's ssh key into the vm: ```bash ssh-copy-id -o "ProxyCommand ssh -W %h:%p yourusername@<mac-mini-lan-ip>" yourusername@192.168.139.x ``` now `ssh dev` from your macbook drops you straight into the linux vm with access to all your mac mini's files. **important:** use `ProxyCommand` not `ProxyJump`. some tools (including claude code) don't support `ProxyJump` yet. ## connect claude code now in claude code, set up an ssh remote connection to host `dev` (or whatever you named it in your ssh config). it connects through your mac mini into the linux vm, sees ubuntu, and everything works. your code is right there at `/Users/yourname/dev`. edits from claude code write directly to the mac's filesystem. no lag, no sync issues. ## what you end up with - claude code thinks it's talking to a linux box (because it is) - all your mac mini's files are accessible at their original paths - full cpu and ram (orbstack shares resources dynamically, no fixed allocation) - near-native performance on apple silicon - the vm uses like 900mb of disk ## things to know - **your files are safe.** `/Users` is mounted from macos via virtiofs. deleting the vm doesn't touch your files. they live on the mac's disk. - **orbstack needs to be running.** if the mac mini reboots, orbstack starts automatically, but you may need to verify the vm comes back up. run `orbctl start dev-sandbox` to be sure. - **the vm ip can change.** if you recreate the vm, update your ssh config with the new ip. or use orbstack's dns: `dev-sandbox.orb.local` might work depending on your setup. - **linux tools work.** need docker inside the vm? install it. need specific linux packages for your dev workflow? go for it. it's a full ubuntu system. ## tldr mac mini + orbstack linux vm = claude code ssh remote actually working on your apple silicon mac. the vm sees all your macos files through virtiofs, claude code sees linux, problem solved. ## [en] mac-to-mac file system: NFS is faster than native SMB for dev env URL: https://yigitkonur.com/nfs-is-faster-than-smb-for-mac-dev-envs Kind: essay Published: 2026-04-13 Updated: Tue Apr 21 i bought a Mac Mini like a lot of people did for "openclaw" (lol). last year i also over-sold the value of local LLMs for a few days and spent a few grand for no reason. but it worked out: with subagents + heavier MCP clients, the Mac Mini became my always-on local build machine, and i mostly "vibe code" from my MacBook into it. the problem: macOS file sharing via SMB is ok for big files, but it's painfully slow for dev trees full of tiny files (TypeScript, config, node_modules). i switched the "live filesystem" part to NFS and tuned it until it was both fast on the LAN *and* survived my MacBook leaving the LAN — which turns out to be the harder half of the problem, and the part most NFS-on-macOS blogs get wrong. ## why NFS over SMB (for this workload) SMB on macOS can be rough on small-file workloads because: - Finder and friends do extra metadata work (including extended attributes) - SMB has more per-operation overhead (and macOS's implementation doesn't always feel optimized for "60k tiny files") - directory listings devolve into a lot of little round trips NFS is simpler. on my LAN, tuned NFS took "listing big dirs" from "why is this taking forever" to "ok, usable". ## the setup i tested - server: Mac Mini (apple silicon), wired LAN, `192.168.1.200` - client: MacBook (macOS), same network, roams on and off the LAN - workload: ~60,000 files / ~8GB, mostly TypeScript + config + node_modules - rtt: ~4ms (Wi-Fi → switch → ethernet) ## pick your client profile before you tune anything two wildly different recipes hide under the same "NFS client" label: - **wired workstation** — always on, wired ethernet, never moves, never closes its lid. can be aggressive because nothing ever disappears. - **mobile laptop** — sleeps, changes networks, walks into rooms without Wi-Fi. every client-side knob has to assume the server *will* disappear. most blogs recommend workstation settings and call it a day. on a laptop that's how you get Raycast to crash, Finder to beachball, and `launchd` hammering your radio every minute forever. server tuning is the same for both; client tuning is where they split. ## server (Mac Mini): exports + nfsd tuning ### /etc/exports ```plaintext /Users/yigitkonur -alldirs -mapall=501:20 -network 192.168.1.0 -mask 255.255.255.0 ``` what matters: - `-alldirs`: mount subdirectories, not only the export root - `-mapall=501:20`: maps all client access to a single local uid/gid (convenient for single-user dev) - `-network ... -mask ...`: restricts access to your local subnet note: `501:20` is common on macOS (first user + staff), not guaranteed. swap for your own uid/gid via `id -u` / `id -g`. ### /etc/nfs.conf (server) ```ini nfs.server.mount.require_resv_port = 0 nfs.server.require_resv_port = 0 nfs.server.nfsd_threads = 16 nfs.server.async = 1 nfs.server.fsevents = 0 nfs.server.wg_delay = 0 nfs.server.wg_delay_v3 = 0 nfs.server.reqcache_size = 512 nfs.server.request_queue_length = 512 nfs.server.export_hash_size = 256 nfs.server.tcp = 1 nfs.server.udp = 0 nfs.server.user_stats = 0 nfs.server.bonjour = 0 nfs.server.verbose = 0 ``` quick "why" table: | **parameter** | **default** | **value** | **why** | | ---------------------- | ----------- | --------- | ---------------------------------------------------------------------------------- | | require_resv_port | 1 | 0 | macOS clients often mount from non-privileged ports; avoids silent mount pain | | nfsd_threads | 8 | 16 | more concurrency for lots of small file ops | | async | 0 | 1 | faster writes; fine for dev where git is the source of truth | | fsevents | 1 | 0 | reduces server-side overhead | | wg_delay / wg_delay_v3 | 1000 / 0 | 0 / 0 | lower latency for small-file writes | | reqcache_size | 64 | 512 | better duplicate-request handling under retransmits | | request_queue_length | 128 | 512 | avoids queue bottlenecks under bursts | | export_hash_size | 64 | 256 | faster export lookup under load | | bonjour | 1 | 0 | i connect by IP anyway | enable the daemon: ```bash sudo nfsd enable ``` ## client — wired workstation profile mount at `/Volumes/yigitkonur`, with aggressive tuning and `hard` mounts. this profile assumes the server is never absent. ### /etc/auto_nfs ```bash /Volumes/yigitkonur -vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10 192.168.1.200:/Users/yigitkonur ``` ### /etc/auto_master append (otherwise `auto_nfs` is ignored): ```plaintext /- auto_nfs ``` apply: ```bash sudo automount -cv ``` ### /etc/nfs.conf (client) ```ini nfs.client.access_for_getattr = 1 nfs.client.nfsiod_thread_max = 32 nfs.client.allow_async = 1 nfs.client.access_cache_timeout = 60 nfs.client.statfs_rate_limit = 10 nfs.client.tcp_sockbuf = 16777216 nfs.client.readlink_nocache = 2 nfs.client.max_async_writes = 128 nfs.client.iosize = 1048576 ``` do **not** add `nfs.client.is_mobile = 0`. even on a wired machine, `auto` is the correct default — forcing it off gives you nothing here and is catastrophic if you ever move the recipe to a laptop. ### mount options (what actually mattered) | **option** | **why** | | --------------- | ----------------------------------------------------------------------------------------------------- | | vers=3 | NFSv3 is the most stable on macOS. NFSv4 (macOS supports 4.0, not 4.1) has been flaky across releases | | hard,intr | hard mounts don't fail with random I/O errors; intr lets you ctrl+c stuck ops | | noresvport | common "why won't NFS mount on macOS" fix | | nfc | unicode normalization correctness on macOS | | locallocks | avoids NLM overhead and stale lock weirdness | | nonegnamecache | avoids phantom ENOENT when files churn | | rsize / wsize | bigger buffers, fewer trips for big reads/writes | | noatime | avoids a write RPC on reads | | actimeo=10 | fewer metadata RPCs; still reasonable freshness for dev | | rdirplus | big win for large dirs: fetch attrs with directory entries | ### the biggest-win knobs (workstation) | **parameter** | **default** | **value** | **why** | | ----------------------------- | ----------- | --------- | ------------------------------------------------------------------------------------- | | nfs.client.access_for_getattr | 0 | 1 | single biggest perf win: merges permission checks into getattr calls (less RPC spam) | | nfs.client.nfsiod_thread_max | 16 | 32 | more concurrent I/O for lots of small files | | nfs.client.allow_async | 0 | 1 | makes the async mount option actually do something | ## client — laptop profile (the one i actually run) four things change from the workstation recipe. each one matters. **1. mount path: `~/mnt/mini`, not `/Volumes/anything`.** this is the single most impactful change on a laptop. `/Volumes` is scanned constantly by Finder, Spotlight, Raycast, Dock, LaunchServices, Time Machine, and every backup tool you install. a hung mount under `/Volumes` spreads the hang to all of them — that's the Raycast crash and the Finder beachball. a hung mount under `~/mnt/` only affects processes that explicitly walked into it. **2. mount options: keep `hard,intr`, add short `timeo` + `retrans`, add `nobrowse`, drop `deadtimeout`.** ```bash -vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10,timeo=30,retrans=3,nobrowse ``` `hard,intr` keeps data integrity intact while letting you ctrl+c stuck interactive ops. short `timeo=30,retrans=3` (~90s budget per RPC) is the real change: on a dead server, processes bounce off the mount in seconds instead of the 10 minutes `deadtimeout=600` buys you. `nobrowse` keeps Finder from enumerating the mount at all — belt-and-braces in case you ever put it under `/Volumes` anyway. **3. `/etc/nfs.conf` (client) — same as the workstation block, except you explicitly leave `nfs.client.is_mobile` alone.** the macOS default (`auto`) enables "auto-unmount unresponsive network volume on a laptop" behavior. setting it to `0` *disables* that safety net — that's the root cause of beachballs on disconnect, and the reason most "NFS on Mac" blogs produce a machine that's fast on the LAN and unusable off it. leave it at the default. don't even put the line in the file. **4. no reconnect LaunchDaemon. ever.** a `StartInterval` daemon that pings the server every 30–60s is the thing your Console.app will fill with "attaching network" events forever — whether you're home or in a café. on a laptop it's never the right shape. two alternatives: on-demand automount — accessing `~/mnt/mini` triggers the mount, idle unmounts release it: `/etc/auto_mini`: ```plaintext /Users/yigitkonur/mnt/mini -fstype=nfs,vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10,timeo=30,retrans=3,nobrowse 192.168.1.200:/Users/yigitkonur ``` `/etc/auto_master` (append): ```plaintext /- auto_mini ``` apply: ```bash sudo automount -cv ``` or manual — a tiny `mount-mini` you run when you actually want the share: ```bash # ~/bin/mount-mini #!/bin/bash set -e MOUNT="$HOME/mnt/mini" mkdir -p "$MOUNT" sudo mount -t nfs -o vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10,timeo=30,retrans=3,nobrowse \ 192.168.1.200:/Users/yigitkonur "$MOUNT" ``` you run it when you want the share. you don't run it when you're on coffee-shop Wi-Fi that has nothing to do with your LAN. ## optional macOS overhead to disable ```bash # stop creating .DS_Store files on network shares defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE # disable Spotlight indexing on the NFS mount sudo mdutil -i off ~/mnt/mini ``` **don't disable Gatekeeper's quarantine** as a "perf tweak". some recipes recommend `defaults write com.apple.LaunchServices LSQuarantine -bool NO`. that flag is not an NFS knob — it disables the quarantine prompt for *all* downloaded files, everywhere. the perf win is noise; the security impact is not. skip it. ## security: don't hand-wave this NFSv3 + `sec=sys` authenticates by uid/gid. no encryption, no signing, no Kerberos. the honest threat model: any machine on your LAN that can spoof uid `501` (trivial on any Mac they control) can read and write every file in your exported home directory. that's fine on a wired home network with only your own devices. it's *not* fine on a network with guest Wi-Fi, IoT devices on the same subnet, a housemate, or anything resembling a coworking space. treat the share like an unlocked git remote — useful because nobody else is on the wire. ## making it reboot-safe ### server side (Mac Mini) — always-on, wired, doesn't move ```bash sudo nfsd enable ``` optional: a tiny watchdog so the daemon comes back if it crashes. ```bash # /usr/local/bin/nfsd-watchdog.sh #!/bin/bash if ! pgrep -x nfsd > /dev/null 2>&1; then nfsd enable && nfsd start fi if ! showmount -e localhost 2>/dev/null | grep -q "/Users/yigitkonur"; then nfsd update fi ``` root crontab: ```bash * * * * * /usr/local/bin/nfsd-watchdog.sh >> /tmp/nfsd-watchdog.log 2>&1 @reboot sleep 10 && /usr/local/bin/nfsd-watchdog.sh >> /tmp/nfsd-watchdog.log 2>&1 ``` ### client side (MacBook) — mobile, roams nothing. no LaunchDaemon, no cron, no polling. the automount direct map above covers "mount on access, unmount when idle" without a retry loop. if the LAN isn't there when you `cd ~/mnt/mini`, you get a fast mount error in seconds instead of a ten-minute hang that takes Raycast and Finder with it. ## the big lesson: don't rsync through the NFS mount this surprised me at first, but the math is unforgiving for small files: ```plaintext LOOKUP → CREATE → WRITE → COMMIT = 4 RPCs × 4ms RTT ≈ 16ms minimum per file ``` for 60,000 files, you're paying minutes of pure protocol overhead before any real work. for bulk transfer, stream it instead: ```bash tar cf - --exclude='.git' --exclude='.DS_Store' -C /local/project . \ | ssh mini "tar xf - -C ~/remote/project/" ``` for me: 60,000 files in 1 min 57 sec. rsync-over-nfs was not close. helper: ```bash # /usr/local/bin/nfs-sync.sh #!/bin/bash # usage: nfs-sync.sh <local-dir> <remote-relative-dir> LOCAL_DIR="${1:?Usage: nfs-sync.sh <local-dir> <remote-dir>}" REMOTE_DIR="${2:?Usage: nfs-sync.sh <local-dir> <remote-dir>}" FILE_COUNT=$(find "$LOCAL_DIR" -not -path '*/.git/*' -not -name '.DS_Store' | wc -l | tr -d ' ') echo "syncing $FILE_COUNT files: $LOCAL_DIR → mini:~/$REMOTE_DIR" ssh mini "mkdir -p ~/$REMOTE_DIR" tar cf - --exclude='.git' --exclude='.DS_Store' -C "$LOCAL_DIR" . \ | ssh mini "tar xf - -C ~/$REMOTE_DIR/" ``` ## benchmark snapshot healthy LAN, same test suite across tuning passes: | **test** | **original** | **after tuning** | **after research** | **total gain** | | -------------------------- | ------------ | ---------------- | ------------------ | -------------- | | create 1000 files (1–10KB) | 101.7s (9/s) | 84.3s (11/s) | 61.9s (16/s) | +78% | | read 1000 files | 25.1s (39/s) | 20.2s (49/s) | 10.3s (97/s) | +149% | | stat 1000 files | 2.8s (363/s) | 1.9s (533/s) | 1.9s (535/s) | +47% | | overwrite 500 files | 31.3s (15/s) | 18.8s (26/s) | 10.5s (47/s) | +213% | | ls -la (1000 files) | 42.3s | 7.5s | 4.4s | 9.6x | biggest contributors on a healthy LAN: - `nfs.client.access_for_getattr = 1` - `actimeo=10` + `rdirplus` (metadata efficiency) - bigger `rsize`/`wsize` for the occasional big file the number *not* in this table is the one that predicts whether your laptop stays usable when the LAN goes away: "`ls` on the mount with the server unreachable." with the naive workstation settings applied to a laptop (`is_mobile=0`, `hard,intr,deadtimeout=600`, mount under `/Volumes`) that's a ten-minute beachball. with the laptop profile above it's a few seconds of ENOENT and you move on. ## NFSv3 vs NFSv4 on macOS: don't bother with v4 - macOS supports NFSv4.0, not 4.1 - `vers=4.1` often falls back to v3 anyway - `vers=4` has had regressions on some Sonoma / Sequoia builds - tuned v3 is already very good for dev workloads ## NFS vs SMB vs alternatives | **protocol** | **small file perf** | **setup complexity** | **laptop-friendly** | **macOS support** | | ------------ | ------------------- | -------------------- | ----------------------------- | -------------------------- | | NFS (tuned) | good | medium | yes, with the laptop profile | stable with v3 | | SMB | meh for small files | easy | yes (built-in reconnect) | supported, often sluggish | | SSHFS | moderate | easy | yes | project status varies | | Mutagen | often strong | medium | yes | active development | | Syncthing | async sync | easy | yes | good | ## the perf test script i used drop this in `/tmp/nfs-perftest.sh` (edit `NFS_TARGET` to point inside your mount): ```bash #!/bin/bash set -e NFS_TARGET="$HOME/mnt/mini/dev/some-project" TEST_DIR="$NFS_TARGET/.nfs-perftest-$$" t() { perl -MTime::HiRes -e 'print Time::HiRes::time()'; } log() { printf " %-35s %7.2fs %s\n" "$1" "$2" "$3"; } cleanup() { rm -rf "$TEST_DIR" 2>/dev/null; } trap cleanup EXIT mkdir -p "$TEST_DIR" echo; echo " NFS perf test"; echo " $(printf '%.0s-' {1..45})" t0=$(t) for i in $(seq 1 100); do dd if=/dev/urandom bs=$((1024+RANDOM%9216)) count=1 of="$TEST_DIR/f$i" 2>/dev/null; done; sync d=$(echo "$(t) - $t0" | bc); log "create 100 files (1-10KB)" "$d" "$(echo "100/$d"|bc) files/s" t0=$(t) for f in "$TEST_DIR"/f*; do cat "$f">/dev/null; done d=$(echo "$(t) - $t0" | bc); log "read 100 files" "$d" "$(echo "100/$d"|bc) files/s" t0=$(t) for f in "$TEST_DIR"/f*; do stat -f "%z" "$f">/dev/null; done d=$(echo "$(t) - $t0" | bc); log "stat 100 files" "$d" "$(echo "100/$d"|bc) ops/s" t0=$(t) for i in $(seq 1 50); do echo "mod $i $(date +%s%N)">"$TEST_DIR/f$i"; done; sync d=$(echo "$(t) - $t0" | bc); log "overwrite 50 files" "$d" "$(echo "50/$d"|bc) files/s" t0=$(t); ls -la "$TEST_DIR">/dev/null d=$(echo "$(t) - $t0" | bc); log "ls -la (100 files)" "$d" t0=$(t); dd if=/dev/zero of="$TEST_DIR/big" bs=1048576 count=10 2>/dev/null; sync d=$(echo "$(t) - $t0" | bc); log "write 10MB sequential" "$d" "$(echo "10/$d"|bc) MB/s" echo " $(printf '%.0s-' {1..45})"; echo ``` ## appendix: if you post to Craft.do via API (auto-make markdown safe) if you have a "github-flavored" version with triple-backtick code fences, you can convert it to Craft.do-safe markdown by turning fenced code blocks into indented code blocks before you POST. here's the jq filter: ````text def craft_safe_md: gsub("\r\n"; "\n") | (split("\n")) as $lines | reduce $lines[] as $line ( {out: [], in_code: false}; if ($line | test("^[[:space:]]*```")) then .in_code = (.in_code | not) | .out += [""] else if .in_code then .out += [" " + $line] else .out += [$line] end end ) | .out | join("\n") | rtrimstr("\n") + "\n"; ```` use it on the markdown string you're about to send (single-pass jq; don't round-trip through shell variables). ## tldr - if SMB feels slow for small files on macOS, try NFSv3 — server tuning is the same for everyone, client tuning splits by shape - server side: `require_resv_port=0`, `nfsd_threads=16`, `async=1`, TCP only - workstation client: `/Volumes/*`, `hard,intr,actimeo=10,rdirplus`, automount direct map - laptop client: `~/mnt/*`, same options plus `timeo=30,retrans=3,nobrowse`, **leave `nfs.client.is_mobile` at its default**, no reconnect LaunchDaemon - the single biggest perf knob is `nfs.client.access_for_getattr = 1`; the single most dangerous setting on a laptop is `nfs.client.is_mobile = 0` - don't disable Gatekeeper's `LSQuarantine` as a "perf tweak" - NFSv3 + `sec=sys` is uid/gid auth only; keep the share on a trusted subnet - for bulk copies use `tar | ssh`, not rsync through the mount ## [tr] Claude Code plan mode'u PermissionRequest ile auto-approve etmek URL: https://yigitkonur.com/tr/auto-approve-claude-code-plan-mode Kind: essay Published: 2026-04-13 Updated: Mon Apr 13 Claude Code'un plan mode'unu kullanıyorsan o "ready to code?" onay dialog'unu büyük ihtimalle görmüşsündür. ben Opus 4.6'nın planını zaten her seferinde onaylıyorum, yani artık bu işi elle yapmaya gerek yok. doğru event'i hedefleyince o tıklamayı tek bir hook ile otomatikleştirebiliyorsun. bu aynı zamanda anthropic'in repo'sunda takip edilen küçük bir docs gap'ini de görünür kılıyor: [issue #11891](https://github.com/anthropics/claude-code/issues/11891) ("[DOCS] Missing PermissionRequest hook details in Hooks Guide and Input Reference schema"). + iyi documente edilmemiş ve JSON payload detayları konusunda daha iyi bir iş çıkarmamız lazım; Claude Code open-source olmadığı için temel bir reverse engineering yapmak zorunda kaldık (ismi kadar havalı değil, temel olarak sadece JSON'ları bir klasöre kaydeden bir event listener ekleyip oradan okuyorsun, assembly patch'lenmiş değil xD) ## asıl detay: Stop değil, PermissionRequest onay dialog'u, `ExitPlanMode` tool'u için gelen bir `PermissionRequest`. `Stop` ise run bittikten sonra tetikleniyor. plan onayı Claude hala kullanıcıdan input *beklerken* oluyor, yani `Stop` burayı yakalamak için yanlış yer. ## PermissionRequest stdin'e ne gönderiyor dialog açıldığında stdin'den gelen şekil (şu anda tam documente değil) şu: ```json { "session_id": "abc123-def4-5678-ghij-klmnopqrstuv", "transcript_path": "/Users/you/.claude/projects/-Users-you-my-project/abc123.jsonl", "cwd": "/Users/you/my-project", "permission_mode": "plan", "hook_event_name": "PermissionRequest", "tool_name": "ExitPlanMode", "tool_input": { "allowedPrompts": [ { "tool": "Bash", "prompt": "run tests" }, { "tool": "Bash", "prompt": "install deps" } ], "plan": "# Plan: Implement Feature X\n\n## Context\n\n..." } } ``` işine yarayacak iki parça: - `tool_name` sana *ne* sorduğunu söylüyor (burada: `ExitPlanMode`) - `tool_input.plan` plan markdown'ının tamamını taşıyor (başka bir yere arşivleyebilirsin) ## minimum auto-approve hook (kopyala/yapıştır) script: `~/.claude/hooks/auto-approve-plan.sh` ```bash #!/bin/bash cat >/dev/null # consume stdin (important on Windows/WSL) cat <<'EOF' {"hookSpecificOutput":{"hookEventName":"PermissionRequest","decision":{"behavior":"allow","message":"auto-approved"}}} EOF ``` config (her şeyi değil, sadece `ExitPlanMode`'u match et): ```json { "hooks": { "PermissionRequest": [ { "matcher": "ExitPlanMode", "hooks": [ { "type": "command", "command": "~/.claude/hooks/auto-approve-plan.sh" } ] } ] } } ``` vakit kazandıracak notlar: - hook'un stdin'i okusun (yoksa takılabilirsin) - output'un `hookSpecificOutput` altında, `hookEventName: "PermissionRequest"` ile sarılı olmalı ## opsiyonel: her planı Craft.do'ya arşivle plan markdown'ı zaten `tool_input.plan` içinde olduğu için onu arka planda Craft.do'ya atıp onay cevabını anında döndürebilirsin. tek "gotcha" şu: markdown'ı bir shell değişkenine çekip sonra JSON'a tekrar gömme (multi-line içerik seni vuracaktır). Craft.do payload'ını tek bir `jq` pass'iyle kur, olsun bitsin. ```bash #!/bin/bash TMPFILE="$(mktemp)" cat > "$TMPFILE" ``` # fire-and-forget arşiv (onay cevabını blokeleme) ```bash ( jq --arg ts "$(date '+%Y-%m-%d %H:%M')" --arg pageId "$CRAFT_PAGE_ID" --arg home "$HOME" '{ blocks: [{ type: "page", textStyle: "card", markdown: ("[" + (.cwd | sub($home; "~")) + "] - [" + $ts + "]"), content: [{ type: "text", markdown: .tool_input.plan }] }], position: { position: "end", pageId: $pageId } }' < "$TMPFILE" | curl -sS -X POST "$CRAFT_API_URL/blocks" -H "Content-Type: application/json" -d @- >/dev/null 2>&1 ) & rm -f "$TMPFILE" ``` # dialog'u onayla ```bash cat <<'EOF' {"hookSpecificOutput":{"hookEventName":"PermissionRequest","decision":{"behavior":"allow","message":"auto-approved + archived"}}} EOF ``` ## paketli hali istersen: yigitkonur/hooks-claude-approve "auto-approve + (opsiyonel) Craft.do arşivi" akışını **[yigitkonur/hooks-claude-approve](https://github.com/yigitkonur/hooks-claude-approve)** içine topladım. mode'lar: | **mode** | **auto-approve** | **Craft.do arşivi** | **kullanım** | | -------- | ---------------- | -------------------- | ---------------------------------------------- | | 1 | yes | no | onay dialog'unu atla | | 2 | yes | yes | onayı atla ve her planı arşivle | | 3 | no | yes | planları arşivle ama onayı yine elle tıkla | kurulum: ```bash bash <(curl -fsSL https://raw.githubusercontent.com/yigitkonur/hooks-claude-approve/main/install.sh) ``` ## link'ler - hooks tool: [https://github.com/yigitkonur/hooks-claude-approve](https://github.com/yigitkonur/hooks-claude-approve) - docs gap tracker: [https://github.com/anthropics/claude-code/issues/11891](https://github.com/anthropics/claude-code/issues/11891) - official hooks guide: [https://docs.anthropic.com/en/docs/claude-code/hooks](https://docs.anthropic.com/en/docs/claude-code/hooks) ## [tr] using claude code's new native ssh remote on a mac mini / darwin URL: https://yigitkonur.com/tr/claude-code-ssh-remote-on-mac-mini-via-orbstack Kind: essay Published: 2026-04-13 Updated: Mon Apr 13 so you got yourself a mac mini. maybe it's sitting headless under your desk, maybe it's in a closet running 24/7 as your dev server. you want to connect to it with claude code's ssh remote feature from your macbook, your ipad, whatever. you type in the host, hit connect, and get slapped with: ```plaintext Unsupported remote platform: darwin. Only Linux hosts are supported for SSH connections. ``` yeah. claude code ssh remote only works with linux hosts. your mac mini runs macos (darwin). dead end, right? nah. ## the workaround: run linux inside your mac here's the move: you spin up a lightweight linux vm on your mac mini using [orbstack](https://orbstack.dev). orbstack is basically docker desktop but actually good -- it also runs full linux machines with near-native performance on apple silicon. the key insight: **orbstack automatically mounts your entire macos filesystem into every linux vm**. so your code at `/Users/yourname/dev` on macos? it's right there at `/Users/yourname/dev` inside the vm too. same files. no syncing. no copying. just works via virtiofs. so instead of ssh-ing into macos (which claude code rejects), you ssh into a linux vm that has full access to all your mac's files. claude code sees linux, everybody's happy. ## the setup ### 1. install orbstack on the mac mini ```bash brew install orbstack ``` or grab it from [orbstack.dev](https://orbstack.dev). open it once to finish setup. ### 2. create an ubuntu vm ```bash orbctl create ubuntu:noble dev-sandbox ``` this gives you ubuntu 24.04 arm64. takes like 10 seconds. it auto-creates a user matching your macos username. ### 3. install ssh server in the vm ```bash orb -m dev-sandbox -u root bash -c ' apt-get update && apt-get install -y openssh-server && systemctl enable ssh && systemctl start ssh ' ``` ### 4. set a password (for initial key copy) ```bash orb -m dev-sandbox -u root bash -c 'echo "yourusername:yourpassword" | chpasswd' ``` ### 5. get the vm's ip ```bash orbctl info dev-sandbox ``` look for the `IPv4` line. something like `192.168.139.x`. this is on orbstack's internal network, only reachable from the mac mini itself. ### 6. copy your ssh key from the mac mini ```bash ssh-copy-id yourusername@192.168.139.x ``` ### 7. fix the home directory orbstack maps your macos home to `/Users/yourname` inside the vm, but ssh defaults to `/home/yourname`. fix it so you land in the right place: ```bash orb -m dev-sandbox -u root usermod -d /Users/yourname yourusername ``` make sure your ssh keys are in the right spot: ```bash orb -m dev-sandbox mkdir -p /Users/yourname/.ssh orb -m dev-sandbox -u root bash -c 'cp /home/yourname/.ssh/authorized_keys /Users/yourname/.ssh/authorized_keys 2>/dev/null; chown yourusername:yourusername /Users/yourname/.ssh/authorized_keys' ``` ### 8. (optional) passwordless sudo ```bash orb -m dev-sandbox -u root bash -c 'echo "yourusername ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/yourusername && chmod 440 /etc/sudoers.d/yourusername' ``` ### 9. create a convenience symlink ```bash orb -m dev-sandbox ln -sf /Users/yourname/dev ~/dev ``` ## connecting from your macbook your macbook can't reach the vm directly -- its ip is on orbstack's internal network inside the mac mini. so you proxy through the mac mini. add this to `~/.ssh/config` on your **macbook**: ```ini Host dev HostName 192.168.139.x Port 22 User yourusername ProxyCommand ssh -W %h:%p yourusername@<mac-mini-lan-ip> IdentityFile ~/.ssh/id_ed25519 StrictHostKeyChecking no UserKnownHostsFile /dev/null ``` replace `192.168.139.x` with the vm ip from step 5, and `<mac-mini-lan-ip>` with your mac mini's actual lan ip (like `192.168.1.200`). also copy your macbook's ssh key into the vm: ```bash ssh-copy-id -o "ProxyCommand ssh -W %h:%p yourusername@<mac-mini-lan-ip>" yourusername@192.168.139.x ``` now `ssh dev` from your macbook drops you straight into the linux vm with access to all your mac mini's files. **important:** use `ProxyCommand` not `ProxyJump`. some tools (including claude code) don't support `ProxyJump` yet. ## connect claude code now in claude code, set up an ssh remote connection to host `dev` (or whatever you named it in your ssh config). it connects through your mac mini into the linux vm, sees ubuntu, and everything works. your code is right there at `/Users/yourname/dev`. edits from claude code write directly to the mac's filesystem. no lag, no sync issues. ## what you end up with - claude code thinks it's talking to a linux box (because it is) - all your mac mini's files are accessible at their original paths - full cpu and ram (orbstack shares resources dynamically, no fixed allocation) - near-native performance on apple silicon - the vm uses like 900mb of disk ## things to know - **your files are safe.** `/Users` is mounted from macos via virtiofs. deleting the vm doesn't touch your files. they live on the mac's disk. - **orbstack needs to be running.** if the mac mini reboots, orbstack starts automatically, but you may need to verify the vm comes back up. run `orbctl start dev-sandbox` to be sure. - **the vm ip can change.** if you recreate the vm, update your ssh config with the new ip. or use orbstack's dns: `dev-sandbox.orb.local` might work depending on your setup. - **linux tools work.** need docker inside the vm? install it. need specific linux packages for your dev workflow? go for it. it's a full ubuntu system. ## tldr mac mini + orbstack linux vm = claude code ssh remote actually working on your apple silicon mac. the vm sees all your macos files through virtiofs, claude code sees linux, problem solved. ## [tr] mac-to-mac dosya sistemi: NFS dev için native SMB'den hızlı URL: https://yigitkonur.com/tr/nfs-is-faster-than-smb-for-mac-dev-envs Kind: essay Published: 2026-04-13 Updated: Tue Apr 21 ben de bir sürü insan gibi "openclaw" için bir Mac Mini aldım (lol). geçen sene birkaç gün boyunca local LLM'lerin değerini abarttım ve sebepsiz birkaç bin dolar harcadım. ama işe yaradı: subagent'lar + daha ağır MCP client'larıyla Mac Mini sürekli açık duran local build makinem oldu, çoğu zaman MacBook'tan "vibe code" yapıp ona atıyorum. problem: macOS'ta SMB üzerinden dosya paylaşımı büyük dosyalarda fena değil ama küçük dosyalarla dolu dev ağaçlarında (TypeScript, config, node_modules) acı verici yavaş. "canlı dosya sistemi" kısmını NFS'e geçirdim ve hem LAN'da hızlı hem de MacBook LAN'dan çıktığında sağ kalacak hâle gelene kadar tuneladım — işin zor yarısı burası oluyor ve NFS-on-macOS bloglarının çoğu tam bu kısımda yanılıyor. ## bu workload için neden SMB yerine NFS macOS'ta SMB küçük-dosya workload'larında zorlanıyor çünkü: - Finder ve arkadaşları fazladan metadata işi yapıyor (extended attribute'lar dahil) - SMB'de per-operation overhead daha yüksek (ve macOS'un implementation'ı "60k tiny files" için her zaman optimize hissettirmiyor) - dizin listeleme bir sürü küçük round-trip'e dönüşüyor NFS daha basit. benim LAN'ımda tuned NFS "büyük dizinleri listeleme"yi "bu niye bu kadar sürüyor"dan "tamam, kullanılabilir"e taşıdı. ## test ettiğim setup - server: Mac Mini (apple silicon), kablolu LAN, `192.168.1.200` - client: MacBook (macOS), aynı network, LAN'a girip çıkıyor - workload: ~60,000 dosya / ~8GB, çoğunluk TypeScript + config + node_modules - rtt: ~4ms (Wi-Fi → switch → ethernet) ## hiçbir ayarı kurcalamadan önce client profilini seç aynı "NFS client" etiketinin altında tamamen farklı iki reçete var: - **kablolu workstation** — sürekli açık, kablolu ethernet, hareket etmiyor, kapağı kapanmıyor. bir şey kaybolmadığı için agresif davranabilirsin. - **mobil laptop** — uyuyor, network değiştiriyor, Wi-Fi olmayan odalara giriyor. client tarafındaki her knob server'ın *kesin* kaybolacağını varsaymak zorunda. blogların çoğu workstation ayarlarını öneriyor ve dosyayı kapatıyor. bu ayarlar laptop'ta Raycast'i crash ettiriyor, Finder'ı beachball'a sokuyor ve `launchd`'nin Wi-Fi'ına dakikada bir saldırmasına yol açıyor. server tuning ikisi için de aynı; yol client tarafında ayrılıyor. ## server (Mac Mini): exports + nfsd tuning ### /etc/exports ```plaintext /Users/yigitkonur -alldirs -mapall=501:20 -network 192.168.1.0 -mask 255.255.255.0 ``` önemli olanlar: - `-alldirs`: sadece export kökünü değil, alt dizinleri de mount edebiliyorsun - `-mapall=501:20`: client erişimlerinin hepsini tek bir local uid/gid'e mapliyor (tek-kullanıcılı dev için rahat) - `-network ... -mask ...`: erişimi local subnet'inle sınırlıyor not: `501:20` macOS'ta yaygın (ilk user + staff), ama garanti değil. kendi uid/gid'ini `id -u` / `id -g` ile al. ### /etc/nfs.conf (server) ```ini nfs.server.mount.require_resv_port = 0 nfs.server.require_resv_port = 0 nfs.server.nfsd_threads = 16 nfs.server.async = 1 nfs.server.fsevents = 0 nfs.server.wg_delay = 0 nfs.server.wg_delay_v3 = 0 nfs.server.reqcache_size = 512 nfs.server.request_queue_length = 512 nfs.server.export_hash_size = 256 nfs.server.tcp = 1 nfs.server.udp = 0 nfs.server.user_stats = 0 nfs.server.bonjour = 0 nfs.server.verbose = 0 ``` kısa "neden" tablosu: | **parametre** | **default** | **değer** | **neden** | | ---------------------- | ----------- | --------- | ------------------------------------------------------------------------------------- | | require_resv_port | 1 | 0 | macOS client'ları sık sık non-privileged portlardan mount ediyor; sessiz mount sıkıntısını engelliyor | | nfsd_threads | 8 | 16 | bol küçük-dosya operasyonu için daha fazla concurrency | | async | 0 | 1 | daha hızlı write; git'in source of truth olduğu dev için uygun | | fsevents | 1 | 0 | server tarafı overhead'i azalıyor | | wg_delay / wg_delay_v3 | 1000 / 0 | 0 / 0 | küçük-dosya write'larında daha düşük latency | | reqcache_size | 64 | 512 | retransmit sırasında duplicate-request'leri daha iyi yönetiyor | | request_queue_length | 128 | 512 | burst'lerde queue bottleneck'i engelliyor | | export_hash_size | 64 | 256 | yüklü anda daha hızlı export lookup | | bonjour | 1 | 0 | zaten IP ile bağlanıyorum | daemon'u aç: ```bash sudo nfsd enable ``` ## client — kablolu workstation profili `/Volumes/yigitkonur` altında mount et, agresif tuning ve `hard` mount'larla. bu profil server'ın asla yokolmadığını varsayıyor. ### /etc/auto_nfs ```bash /Volumes/yigitkonur -vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10 192.168.1.200:/Users/yigitkonur ``` ### /etc/auto_master sona ekle (yoksa `auto_nfs` es geçiliyor): ```plaintext /- auto_nfs ``` uygula: ```bash sudo automount -cv ``` ### /etc/nfs.conf (client) ```ini nfs.client.access_for_getattr = 1 nfs.client.nfsiod_thread_max = 32 nfs.client.allow_async = 1 nfs.client.access_cache_timeout = 60 nfs.client.statfs_rate_limit = 10 nfs.client.tcp_sockbuf = 16777216 nfs.client.readlink_nocache = 2 nfs.client.max_async_writes = 128 nfs.client.iosize = 1048576 ``` `nfs.client.is_mobile = 0` **ekleme**. kablolu makinede bile `auto` doğru default — burada kapalıya zorlamanın sana bir kazancı yok ve reçeteyi bir gün laptop'a taşırsan felaket oluyor. ### önemli mount option'lar | **option** | **neden** | | --------------- | ----------------------------------------------------------------------------------------------------- | | vers=3 | macOS'ta NFSv3 en stabil olanı. NFSv4 (macOS 4.0'ı destekliyor, 4.1'i değil) sürümler arası sallantılı | | hard,intr | hard mount rastgele I/O hatasıyla düşmüyor; intr takılan op'ları ctrl+c ile kırmana izin veriyor | | noresvport | "macOS'ta NFS niye mount olmuyor" sorununun sık çözümü | | nfc | macOS'ta unicode normalization doğruluğu | | locallocks | NLM overhead'ini ve bayat lock sorunlarını engelliyor | | nonegnamecache | dosya akışında hayalet ENOENT'leri engelliyor | | rsize / wsize | daha büyük buffer, büyük read/write'larda daha az gidip-gelme | | noatime | read'lerde write RPC'sini engelliyor | | actimeo=10 | daha az metadata RPC; dev için hâlâ makul freshness | | rdirplus | büyük dizinlerde büyük kazanç: attribute'ları dizin entry'leriyle birlikte getiriyor | ### en büyük kazanç veren knob'lar (workstation) | **parametre** | **default** | **değer** | **neden** | | ----------------------------- | ----------- | --------- | ------------------------------------------------------------------------------------- | | nfs.client.access_for_getattr | 0 | 1 | tek başına en büyük perf kazancı: permission check'leri getattr çağrılarına gömüyor (daha az RPC spam'i) | | nfs.client.nfsiod_thread_max | 16 | 32 | bol küçük dosya için daha fazla eşzamanlı I/O | | nfs.client.allow_async | 0 | 1 | async mount option'ının gerçekten bir işe yaramasını sağlıyor | ## client — laptop profili (gerçekten çalıştırdığım) workstation reçetesinden dört şey değişiyor. dördü de önemli. **1. mount path: `~/mnt/mini`, `/Volumes/bir-şey` değil.** laptop'ta tek başına en etkili değişiklik bu. `/Volumes`'i Finder, Spotlight, Raycast, Dock, LaunchServices, Time Machine ve kurduğun her backup tool'u sürekli tarıyor. `/Volumes` altında takılan bir mount bu takılmayı hepsine yayıyor — Raycast crash ve Finder beachball buradan geliyor. `~/mnt/` altındaki takılı mount sadece oraya elle giren process'leri etkiliyor. **2. mount option'ları: `hard,intr`'ı koru, kısa `timeo` + `retrans` ekle, `nobrowse` ekle, `deadtimeout`'u at.** ```bash -vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10,timeo=30,retrans=3,nobrowse ``` `hard,intr` data integrity'yi koruyor ve takılan interactive op'ları ctrl+c ile kırmana izin veriyor. asıl değişiklik kısa `timeo=30,retrans=3` (RPC başına ~90s budget): server ölüyse process'ler mount'tan saniyeler içinde sekip çıkıyor, `deadtimeout=600`'ün sattığı 10 dakika yerine. `nobrowse` ise Finder'ın mount'u listelemesini tamamen engelliyor — her ihtimale karşı, bir gün yine de `/Volumes` altına koyarsın diye. **3. `/etc/nfs.conf` (client) — workstation bloğunun aynısı, ama `nfs.client.is_mobile`'ı kasıtlı olarak hiç ellemiyorsun.** macOS default'u (`auto`) "laptop'ta yanıtsız network volume'ü otomatik unmount et" davranışını açıyor. `0`'a çekmek o güvenlik ağını *kapatıyor* — disconnect'te yaşanan beachball'ın kökü bu ve "NFS on Mac" bloglarının çoğu bu yüzden LAN'da hızlı, LAN dışında kullanılmaz bir makine üretiyor. default'ta bırak. satırı dosyaya hiç koyma. **4. reconnect LaunchDaemon yok. asla.** server'ı 30–60s'de bir pingleyen `StartInterval` daemon, Console.app'ini sonsuza kadar "attaching network" event'leriyle dolduran şey — evde ya da kafede fark etmiyor. laptop'ta asla doğru şekil değil. iki alternatif: on-demand automount — `~/mnt/mini`'ye erişince mount tetikleniyor, idle kaldıkça unmount oluyor: `/etc/auto_mini`: ```plaintext /Users/yigitkonur/mnt/mini -fstype=nfs,vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10,timeo=30,retrans=3,nobrowse 192.168.1.200:/Users/yigitkonur ``` `/etc/auto_master` (sona ekle): ```plaintext /- auto_mini ``` uygula: ```bash sudo automount -cv ``` ya da elle — share'i gerçekten istediğinde çalıştırdığın küçük bir `mount-mini`: ```bash # ~/bin/mount-mini #!/bin/bash set -e MOUNT="$HOME/mnt/mini" mkdir -p "$MOUNT" sudo mount -t nfs -o vers=3,tcp,rw,hard,intr,noresvport,nfc,locallocks,nonegnamecache,rsize=1048576,wsize=1048576,readahead=16,noatime,rdirplus,actimeo=10,timeo=30,retrans=3,nobrowse \ 192.168.1.200:/Users/yigitkonur "$MOUNT" ``` istediğin zaman çalıştırıyorsun. senin LAN'ınla alakası olmayan kafe Wi-Fi'ındayken çalıştırmıyorsun. ## kapatabileceğin opsiyonel macOS overhead'leri ```bash # network share'lerde .DS_Store oluşturmayı durdur defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE # NFS mount'unda Spotlight indexing'i kapat sudo mdutil -i off ~/mnt/mini ``` **Gatekeeper'ın quarantine'ini "perf tweak" diye kapatma.** bazı reçeteler `defaults write com.apple.LaunchServices LSQuarantine -bool NO` öneriyor. o flag NFS knob'u değil — *tüm* indirilen dosyalar için, her yerde quarantine prompt'unu kapatıyor. perf kazancı gürültü seviyesinde; security etkisi değil. pas geç. ## security: bunu havada bırakma NFSv3 + `sec=sys` uid/gid ile authenticate ediyor. encryption yok, signing yok, Kerberos yok. dürüst threat model: LAN'ında `501` uid'ini spoof edebilen her makine (kontrolündeki her Mac'te trivial) export ettiğin home dizinindeki her dosyayı okuyup yazabilir. sadece senin cihazlarının olduğu kablolu ev network'ünde sorun yok. guest Wi-Fi, aynı subnet'te IoT cihazları, ev arkadaşı ya da coworking'e benzeyen herhangi bir yer varsa durum *başka*. share'i kilitsiz bir git remote gibi düşün — kimse aynı telin üstünde olmadığı için işe yarıyor. ## reboot-safe hâle getirme ### server tarafı (Mac Mini) — sürekli açık, kablolu, hareket etmiyor ```bash sudo nfsd enable ``` opsiyonel: daemon çakarsa geri gelsin diye küçük bir watchdog. ```bash # /usr/local/bin/nfsd-watchdog.sh #!/bin/bash if ! pgrep -x nfsd > /dev/null 2>&1; then nfsd enable && nfsd start fi if ! showmount -e localhost 2>/dev/null | grep -q "/Users/yigitkonur"; then nfsd update fi ``` root crontab: ```bash * * * * * /usr/local/bin/nfsd-watchdog.sh >> /tmp/nfsd-watchdog.log 2>&1 @reboot sleep 10 && /usr/local/bin/nfsd-watchdog.sh >> /tmp/nfsd-watchdog.log 2>&1 ``` ### client tarafı (MacBook) — mobil, dolaşıyor hiçbir şey. LaunchDaemon yok, cron yok, polling yok. yukarıdaki automount direct map "erişince mount et, idle kalınca unmount et" işini retry loop'u olmadan hallediyor. `cd ~/mnt/mini` yaparken LAN orada değilse, Raycast ve Finder'ı beraberinde götüren 10 dakikalık hang yerine saniyeler içinde mount hatası alıyorsun. ## asıl ders: NFS mount üzerinden rsync yapma önce şaşırdım ama küçük dosyalarda matematik affetmiyor: ```plaintext LOOKUP → CREATE → WRITE → COMMIT = 4 RPC × 4ms RTT ≈ dosya başına minimum 16ms ``` 60.000 dosya için asıl iş başlamadan önce sadece protokol overhead'ine dakikalar ödüyorsun. toplu transferde stream'le: ```bash tar cf - --exclude='.git' --exclude='.DS_Store' -C /local/project . \ | ssh mini "tar xf - -C ~/remote/project/" ``` bende: 60.000 dosya 1 dk 57 sn. rsync-over-nfs yanından bile geçmedi. helper: ```bash # /usr/local/bin/nfs-sync.sh #!/bin/bash # usage: nfs-sync.sh <local-dir> <remote-relative-dir> LOCAL_DIR="${1:?Usage: nfs-sync.sh <local-dir> <remote-dir>}" REMOTE_DIR="${2:?Usage: nfs-sync.sh <local-dir> <remote-dir>}" FILE_COUNT=$(find "$LOCAL_DIR" -not -path '*/.git/*' -not -name '.DS_Store' | wc -l | tr -d ' ') echo "syncing $FILE_COUNT files: $LOCAL_DIR → mini:~/$REMOTE_DIR" ssh mini "mkdir -p ~/$REMOTE_DIR" tar cf - --exclude='.git' --exclude='.DS_Store' -C "$LOCAL_DIR" . \ | ssh mini "tar xf - -C ~/$REMOTE_DIR/" ``` ## benchmark özeti sağlıklı LAN, tuning pass'lerinde aynı test suite: | **test** | **original** | **tuning sonrası** | **research sonrası** | **toplam kazanç** | | --------------------------- | ------------ | ------------------ | -------------------- | ----------------- | | 1000 dosya oluştur (1–10KB) | 101.7s (9/s) | 84.3s (11/s) | 61.9s (16/s) | +78% | | 1000 dosya oku | 25.1s (39/s) | 20.2s (49/s) | 10.3s (97/s) | +149% | | 1000 dosya stat | 2.8s (363/s) | 1.9s (533/s) | 1.9s (535/s) | +47% | | 500 dosya overwrite | 31.3s (15/s) | 18.8s (26/s) | 10.5s (47/s) | +213% | | ls -la (1000 dosya) | 42.3s | 7.5s | 4.4s | 9.6x | sağlıklı LAN'da en büyük katkıyı yapanlar: - `nfs.client.access_for_getattr = 1` - `actimeo=10` + `rdirplus` (metadata verimliliği) - zaman zaman gelen büyük dosya için daha büyük `rsize`/`wsize` bu tabloda *olmayan* sayı, LAN gittiğinde laptop'un kullanılabilir kalıp kalmayacağını belirliyor: "server erişilemezken mount'ta `ls`". laptop'a naif workstation ayarlarıyla (`is_mobile=0`, `hard,intr,deadtimeout=600`, `/Volumes` altında mount) gittiğinde on dakikalık beachball. yukarıdaki laptop profiliyle birkaç saniye ENOENT ve yoluna devam ediyorsun. ## macOS'ta NFSv3 vs NFSv4: v4'e bulaşma - macOS NFSv4.0'ı destekliyor, 4.1'i değil - `vers=4.1` zaten genelde v3'e düşüyor - `vers=4`, bazı Sonoma / Sequoia sürümlerinde regresyonlu - tuned v3 dev workload'ları için zaten yeterince iyi ## NFS vs SMB vs alternatifler | **protokol** | **küçük-dosya perf** | **kurulum zorluğu** | **laptop-dostu** | **macOS desteği** | | ------------ | -------------------- | ------------------- | ------------------------------- | ------------------------------- | | NFS (tuned) | iyi | orta | laptop profiliyle evet | v3 ile stabil | | SMB | küçük dosyalarda zayıf | kolay | evet (built-in reconnect) | var ama çoğu zaman hantal | | SSHFS | orta | kolay | evet | proje durumu değişken | | Mutagen | çoğunlukla güçlü | orta | evet | aktif geliştirme | | Syncthing | asenkron sync | kolay | evet | iyi | ## kullandığım perf test script'i `/tmp/nfs-perftest.sh` içine koy (`NFS_TARGET`'ı kendi mount'unun içine ayarla): ```bash #!/bin/bash set -e NFS_TARGET="$HOME/mnt/mini/dev/some-project" TEST_DIR="$NFS_TARGET/.nfs-perftest-$$" t() { perl -MTime::HiRes -e 'print Time::HiRes::time()'; } log() { printf " %-35s %7.2fs %s\n" "$1" "$2" "$3"; } cleanup() { rm -rf "$TEST_DIR" 2>/dev/null; } trap cleanup EXIT mkdir -p "$TEST_DIR" echo; echo " NFS perf test"; echo " $(printf '%.0s-' {1..45})" t0=$(t) for i in $(seq 1 100); do dd if=/dev/urandom bs=$((1024+RANDOM%9216)) count=1 of="$TEST_DIR/f$i" 2>/dev/null; done; sync d=$(echo "$(t) - $t0" | bc); log "create 100 files (1-10KB)" "$d" "$(echo "100/$d"|bc) files/s" t0=$(t) for f in "$TEST_DIR"/f*; do cat "$f">/dev/null; done d=$(echo "$(t) - $t0" | bc); log "read 100 files" "$d" "$(echo "100/$d"|bc) files/s" t0=$(t) for f in "$TEST_DIR"/f*; do stat -f "%z" "$f">/dev/null; done d=$(echo "$(t) - $t0" | bc); log "stat 100 files" "$d" "$(echo "100/$d"|bc) ops/s" t0=$(t) for i in $(seq 1 50); do echo "mod $i $(date +%s%N)">"$TEST_DIR/f$i"; done; sync d=$(echo "$(t) - $t0" | bc); log "overwrite 50 files" "$d" "$(echo "50/$d"|bc) files/s" t0=$(t); ls -la "$TEST_DIR">/dev/null d=$(echo "$(t) - $t0" | bc); log "ls -la (100 files)" "$d" t0=$(t); dd if=/dev/zero of="$TEST_DIR/big" bs=1048576 count=10 2>/dev/null; sync d=$(echo "$(t) - $t0" | bc); log "write 10MB sequential" "$d" "$(echo "10/$d"|bc) MB/s" echo " $(printf '%.0s-' {1..45})"; echo ``` ## appendix: Craft.do'ya API üzerinden post atıyorsan (markdown'ı otomatik güvene al) üç-tırnak code fence'li "github-flavored" versiyonun varsa, POST atmadan önce fence'li kod bloklarını indent'li kod bloklarına çevirerek Craft.do-safe markdown'a dönüştürebilirsin. jq filter'ı: ````text def craft_safe_md: gsub("\r\n"; "\n") | (split("\n")) as $lines | reduce $lines[] as $line ( {out: [], in_code: false}; if ($line | test("^[[:space:]]*```")) then .in_code = (.in_code | not) | .out += [""] else if .in_code then .out += [" " + $line] else .out += [$line] end end ) | .out | join("\n") | rtrimstr("\n") + "\n"; ```` yollayacağın markdown string'inde çalıştır (tek geçişli jq; shell variable'ına sokup round-trip yaptırma). ## tldr - macOS'ta küçük dosyalarda SMB yavaş hissettiriyorsa NFSv3 dene — server tuning herkes için aynı, client tuning'de yollar şekle göre ayrılıyor - server tarafı: `require_resv_port=0`, `nfsd_threads=16`, `async=1`, sadece TCP - workstation client: `/Volumes/*`, `hard,intr,actimeo=10,rdirplus`, automount direct map - laptop client: `~/mnt/*`, aynı option'lar artı `timeo=30,retrans=3,nobrowse`, **`nfs.client.is_mobile`'ı default'ta bırak**, reconnect LaunchDaemon yok - en büyük perf knob'u `nfs.client.access_for_getattr = 1`; laptop'ta en tehlikeli ayar `nfs.client.is_mobile = 0` - Gatekeeper'ın `LSQuarantine`'ini "perf tweak" diye kapatma - NFSv3 + `sec=sys` sadece uid/gid auth'u; share'i güvenilir subnet'te tut - toplu kopya için mount üzerinden rsync değil, `tar | ssh` kullan ## [en] Mac Screencast YouTube Tooling Research URL: https://yigitkonur.com/research/mac-screencast-youtube-tooling-research Kind: research-report Published: 2026-04-12 Updated: Sun Apr 12 Date: 2026-04-12 ## Methodology - Reddit query volume: 240 search queries across 12 workflow categories. - Deep-read Reddit threads: 64 threads with full comment trees. - Official verification: 36 product pages plus official URL checks for emerging tools. - Primary subreddits: `r/macapps`, `r/mac`, `r/MacOS`, `r/NewTubers`, `r/PartneredYoutube`, `r/SmallYoutubers`, `r/finalcutpro`, `r/davinciresolve`, `r/editors`, `r/VideoEditors`, `r/podcasting`, `r/audioengineering`, `r/screenrecorders`, `r/videography`. - Signal legend: - `High`: repeated praise across multiple independent Reddit threads plus official product fit. - `Medium`: positive recurrence, but narrower use case or mixed feedback. - `Low`: promising, but sparse signal, newer tool, or recommendation threads contaminated by self-promo. ## Executive Summary - The strongest Reddit consensus for a polished Mac screencast workflow is not one all-in-one app. It is a stack: - Recording polish: `Screen Studio` or `ScreenFlow` - Deep editing: `Final Cut Pro` or `DaVinci Resolve` - Transcript / captions: `MacWhisper`, `Descript`, `VEED`, or `Riverside` - Audio cleanup: `Auphonic` and `Hush` - Cursor / emphasis: `Presentify`, `TuringShot`, `Annotate`, `KeyCastr` - Privacy / redaction: `Snagit`, `Shottr`, `DataBlur` / `ZeroBlur`, or NLE-based tracked blur - Camera / teleprompting: `Camo`, `NotchPrompter`, `PromptSmart`, `Elgato Prompter` - Thumbnails / assets: `Canva`, `Photopea`, `Affinity Photo 2`, `Pixelmator Pro`, `Envato Elements`, `Epidemic Sound`, `Artlist` - Growth / repurposing: `TubeBuddy`, `vidIQ`, `Opus Clip`, `Notion`, `YouTube Studio` - The most polarizing apps in the research were `Descript` and `CapCut`. - Users love the speed, captions, and AI convenience. - Users also complain about bloat, bugs, aggressive AI edits, timing glitches, and creeping paywalls. - The cleanest separation in Reddit advice is this: - `Screen Studio` is for beautiful demos with minimal editing. - `ScreenFlow` is for Mac-native screencast recording plus editing in one app. - `OBS` is for power and flexibility. - `Final Cut Pro` is for speed on Mac. - `DaVinci Resolve` is for breadth, color, audio, subtitles, and future-proofing. - Short answer to your blur question: - If blur/redaction is occasional, your editor is enough: `Final Cut Pro`, `DaVinci Resolve`, or even `CapCut` can handle tracked blur. - If you frequently show sensitive browser or app data, a dedicated privacy layer is worth it: `DataBlur`, `ZeroBlur`, `Privacy Shield`, `Redacted`, or at minimum `Snagit` / `Shottr` for screenshots. - If the sensitive data is moving inside a browser UI, pre-capture masking is safer than post-facto blur. - If I were launching a new Mac screencast channel tomorrow, I would choose one of these three stacks: - Best polished startup stack: `Screen Studio` + `Final Cut Pro` + `MacWhisper` + `Hush` + `Auphonic` + `NotchPrompter` + `Canva` + `TubeBuddy` + `Notion` - Best flexible pro stack: `OBS` + `DaVinci Resolve Studio` + `MacWhisper` + `Auphonic` + `Presentify` + `Camo` + `Affinity Photo 2` + `Opus Clip` + `YouTube Studio` - Best lean budget stack: `QuickTime` or `CleanShot X` + `DaVinci Resolve Free` + `Audacity` + `MacWhisper` + `NotchPrompter` + `Photopea` + `Canva Free` + `YouTube Studio` ## Nested Analysis ### 1. Capture and Recording - `Screen Studio` (`High`) - Users praise: the fastest path to a polished founder-demo or tutorial look. The repeated theme was "record once, barely edit." - Standout: automatic zooms, cursor smoothing, keyboard shortcut display, transcript/subtitle generation, 4K60 export, vertical exports, webcam + system audio capture. - Caveat: subscription fatigue came up often; it is more finishing-friendly than deeply editable. - `OBS Studio` (`High`) - Users praise: raw flexibility, reliability, multi-source scene control, and "it can do anything if you configure it." - Standout: free/open source, scenes, filters, hotkeys, multiple inputs, local recording, streaming. - Caveat: steep setup curve; multiple users said it can push Macs hard if misconfigured. - `ScreenFlow` (`High`) - Users praise: still the most beloved Mac-native "record + edit tutorials fast" tool. Longtime users repeatedly called it easy, fast, and purpose-built for screencasts. - Standout: simultaneous screen/camera/mic capture, built-in editor, annotations, captions, iPhone/iPad recording, preset exports. - Caveat: a recurring support-maintenance concern appeared in newer Reddit threads, so I would verify its update cadence before standardizing on it. - `CleanShot X` (`High`) - Users praise: intuitive quick capture flow, great for fast screen videos and even better for screenshots. - Standout: native Mac app, recording plus screenshot workflows, microphone + system audio, webcam, click and keystroke highlighting, quick trim, cloud sharing. - Caveat: it is not a deep editor; think capture utility first. - `Screenium 3` (`Medium`) - Users praise: one-time purchase, broad recording modes, built-in editor, and good fit for tutorial creators who want Mac-native recording without subscription sprawl. - Standout: 60 fps, full screen / window / region / iOS or tvOS device recording, smart zoom, cursor visualization, editing inside the app. - `QuickTime Player` (`High`) - Users praise: free, built-in, dead simple, and "good enough" surprisingly often. - Standout: instant webcam or screen capture, trim/rearrange basics, zero learning curve. - Caveat: repeated complaints about system-audio friction, large files, and variable-frame-rate headaches when moving into editors or social uploads. - `Loom` (`Medium`) - Users praise: speed for shareable internal demos and some live blur use cases. - Standout: instant share links, quick async recording, live blur capability mentioned in privacy threads. - Caveat: multiple Redditors called it buggy; not the preferred final YouTube pipeline tool. - `Camtasia` (`Medium`) - Users praise: approachable screen-recording and tutorial-editing workflow, especially from e-learning and training creators. - Standout: all-in-one screencast workflow, easy onboarding, caption-friendly editing, tutorial-oriented timeline tools. - Caveat: less love from Mac-first creator threads than `ScreenFlow`, `FCP`, or `Resolve`. - `Focusee` (`Medium`) - Users praise: auto zoom and spotlight effects that reduce post-production. - Standout: attention-guiding zooms, cursor emphasis, share links, demo-oriented visuals. - Caveat: signal was positive but thinner than `Screen Studio`. - `QuickRecorder` (`Low-Medium`) - Users praise: lightweight native Mac approach for people who want something closer to built-in recording without heavy software. - Standout: simple native recording flow; best viewed as a utility, not a full creator stack. Representative sources: - [What screen recording apps do Mac users use?](https://reddit.com/r/mac/comments/1h8k73u/what_screen_recording_apps_do_mac_users_use/) - [Choosing the Best Screen Recorder for Mac](https://reddit.com/r/macapps/comments/1ra89tg/choosing_the_best_screen_recorder_for_mac/) - [What’s the best screen recording tool for Mac?](https://reddit.com/r/screenrecorders/comments/1p2023n/whats_the_best_screen_recording_tool_for_mac_in/) - [Screen Studio official](https://screen.studio/) - [OBS official](https://obsproject.com/) - [ScreenFlow official](https://www.telestream.net/screenflow/overview.htm) ### 2. Editing and NLEs - `Final Cut Pro` (`High`) - Users praise: speed, magnetic timeline, smooth Apple Silicon performance, and low-friction editing once learned. - Standout: transcript search, automatic captions, object tracking, smart reframing, strong export ecosystem with Compressor. - Caveat: less breadth than `Resolve` for some advanced post workflows; some creators still supplement it with plugins. - `DaVinci Resolve` (`High`) - Users praise: the best free serious editor on Mac, and the broadest all-in-one package once you grow into it. - Standout: editing, color, audio, subtitles, motion graphics, quick social exports; Studio adds text-based editing and AI subtitle tools. - Caveat: repeated feedback that it is more cluttered and slower to learn than `FCP`. - `CapCut Desktop` (`High`) - Users praise: the easiest step up from iMovie for modern captions, social text, and fast short-form edits. - Standout: auto captions, effects, templates, free entry point, one-click social sharing. - Caveat: one of the most complaint-heavy tools in the whole research set when the topic becomes caption timing, paywalls, or long-form stability. - `iMovie` (`Medium-High`) - Users praise: genuinely good for beginners and quick cuts, especially when the channel is new. - Standout: free, already on many Macs, fast for simple trimming and assembly. - Caveat: many creators outgrow it quickly for captions, audio, and workflow scaling. - `Adobe Premiere Pro` (`Medium`) - Users praise: widespread pro familiarity and ecosystem integration. - Standout: industry-standard collaboration footprint, deep integration with Adobe apps, mature timeline editing. - Caveat: Mac Reddit sentiment leaned much more warmly toward `FCP` and `Resolve` because of speed, pricing, and stability. - `LumaFusion` (`Medium`) - Users praise: inexpensive, simpler than big NLEs, and surprisingly capable on Mac if you already use it on iPad. - Standout: approachable editor, cross-device familiarity, good value. - `Filmora` (`Medium`) - Users praise: beginner-friendly and easier than heavier editors. - Standout: solid on-ramp editor when transcript editing is not required. - Caveat: confidence is moderate; less creator consensus than `CapCut`, `FCP`, or `Resolve`. - `Movavi Video Editor` (`Medium`) - Users praise: natural step up from iMovie with simple cuts and audio layering. - Standout: approachable UI, smoother entry point than complex pro apps. - `Shotcut` (`Medium-Low`) - Users praise: free and serviceable for budget-conscious creators. - Standout: no-cost editor that can bridge the gap before you buy anything. - Caveat: rarely anyone described it as delightful. - `OpenShot` (`Low`) - Users praise: free and easy to try. - Standout: low barrier to entry. - Caveat: sparse positive Mac creator signal compared with nearly every other option here. Representative sources: - [What’s Your Favorite Video Editor for Mac?](https://reddit.com/r/macapps/comments/1e5ixrm/whats_your_favorite_video_editor_for_mac/) - [Final Cut Pro 11 or DaVinci Resolve?](https://reddit.com/r/finalcutpro/comments/1hwwhtx/final_cut_pro_11_or_davinci_resolve_free_for_a/) - [DaVinci Resolve or Final Cut Pro?](https://reddit.com/r/davinciresolve/comments/1iqs902/davinci_resolve_or_final_cut_pro/) - [Final Cut Pro official](https://www.apple.com/final-cut-pro/) - [DaVinci Resolve official](https://www.blackmagicdesign.com/products/davinciresolve) - [CapCut desktop official](https://www.capcut.com/tools/desktop-video-editor) ### 3. Transcript-First Editing, Captions, and Subtitle Pipelines - `Descript` (`High`) - Users praise: text-based editing that can cut hours off waveform work; filler-word cleanup; Studio Sound; quick social derivatives; FCP XML export. - Standout: edit by transcript, captions, regenerate audio, eye contact, studio sound, export up to 4K on paid tiers. - Caveat: also one of the most criticized tools in the research. Common complaints were bloat, bugs, aggressive AI choices, and a drift away from its original simple text-edit promise. - `Riverside` (`High`) - Users praise: reliable local recording, strong remote podcast/video capture, and an integrated record-edit-publish path. - Standout: local 4K recording, separate tracks, transcript editing, animated captions, show-note generation, translation and dubbing. - Caveat: several users still preferred `Descript` for editing feel even when they trusted `Riverside` more for recording. - `VEED` (`Medium-High`) - Users praise: among the best web tools for stylish captions and social-ready subtitle design. - Standout: dynamic subtitles, teleprompter, screen recorder, background-noise removal, AI editor. - Caveat: some creators wanted better block-level styling control for chunks of captions. - `FireCut` (`Medium`) - Users praise: fast subtitle generation, silence cutting, zooms, chapters, and podcast helper functions inside existing NLEs. - Standout: Premiere / Resolve plugin, captions, silence cutting, podcast camera switching, automated zoom cuts, B-roll finding. - `MacWhisper` (`High`) - Users praise: a "major breakthrough" in offline transcription quality on Mac; consistent enough to replace weaker caption starting points. - Standout: local or cloud transcription, offline privacy, direct recording, summaries, transcript chat, video support. - Caveat: it is strongest as a transcription engine, not as a flashy caption animator. - `Trint` (`Medium`) - Users praise: transcript-first collaboration, strong proper-noun accuracy, team-friendly workflow. - Standout: transcript collaboration and review, higher-end editorial teams. - Caveat: pricing was repeatedly called expensive. - `Reduct.video` (`Medium`) - Users praise: one of the few serious alternatives people mentioned for transcript editing, including multicam support. - Standout: text-based cutting outside your NLE, multicam support. - `Simon Says` (`Medium`) - Users praise: real FCP-facing paper-edit workflow options, especially for interviews and transcribed assemblies. - Standout: transcript-to-FCP workflows and editorial exports. - `Lumberjack Builder NLE` (`Medium`) - Users praise: FCP-focused text-based documentary and interview paper-edit workflow. - Standout: strong fit when your destination NLE is Final Cut Pro. - `Happy Scribe` (`Medium`) - Users praise: transcript-first alternative with export flexibility and multilingual use cases. - Standout: transcription, subtitles, language support, collaborative review. - `Brevidy` (`Low-Medium`) - Users praise: good client terminology capture and fast stylized caption work. - Standout: animated captions and AI transcription tuned for creator use cases. - Caveat: confidence is lower because signal came from fewer threads. - `Zeemo` (`Low-Medium`) - Users praise: social-ready caption templates and cost-efficient subtitle generation. - Standout: templated subtitle styles aimed at short-form. - `AutoCut` (`Medium`) - Users praise: useful free-trial plugin option for captions, silence cuts, zooms, and beeps, especially for Resolve free users. - Standout: animated captions, silence cutting, zooms, reusable plugin workflow. - `Submagic` (`Medium`) - Users praise: much easier and cleaner short-form captions than fighting `CapCut` bugs. - Standout: dynamic emphasis captions for shorts and reels. Representative sources: - [Alternative to Descript for text based editing](https://reddit.com/r/editors/comments/1r2yi48/alternative_to_descript_for_text_based/) - [Descript vs anything cheaper](https://reddit.com/r/podcasting/comments/1g2wttp/descript_vs_anything_that_has_got_to_be/) - [Which AI subtitle maker is the most accurate?](https://reddit.com/r/editors/comments/1nc3vy5/which_ai_subtitle_maker_is_the_most_accurate_how/) - [MacWhisper closed captioning workflow breakthrough](https://reddit.com/r/MacWhisper/comments/1r1cil5/closed_captioning_workflow_breakthroughs/) - [Descript official](https://www.descript.com/) - [Riverside official](https://riverside.fm/) - [VEED official](https://www.veed.io/) ### 4. Audio Cleanup and Voiceover - `Auphonic` (`High`) - Users praise: the single most unanimously praised audio cleanup service in the entire Reddit set. Multiple posters called it "mind blowing" or "a miracle worker." - Standout: noise and reverb reduction, leveling, transcript editor, shownotes, chaptering, YouTube deployment, waveform video generation. - Caveat: not a full creative sound-design replacement; some free-tier branding limits. - `Hush` (`High`) - Users praise: best-in-class spoken-word cleanup on Apple Silicon without the warbly, fake sound some users hear in Adobe tools. - Standout: local Mac app, one-time purchase, no subscription, strong spoken-audio denoise and dereverb, fast on M-series Macs. - Caveat: strongest on Apple Silicon; not a real-time teleconference filter. - `Adobe Podcast` (`High`) - Users praise: dead-simple web cleanup and rescue power for bad recordings. - Standout: browser-based AI audio cleanup and editing. - Caveat: repeated complaints about robotic sound, over-processing, and chopped consonants unless blended or dialed down carefully. - `iZotope RX` (`Medium-High`) - Users praise: still the reference toolbox when you really know audio repair. - Standout: granular repair workflow, spectral editing, dialogue tools, pro-standard depth. - Caveat: the Reddit theme was "powerful but slower and more manual than newer AI-first cleanup tools." - `Krisp` (`Medium`) - Users praise: when it works, it is still a handy universal suppression layer. - Standout: real-time suppression across apps. - Caveat: a noticeable cluster of complaints described instability, CPU spikes, and worsening support. - `Audio Hijack` (`Medium`) - Users praise: route-and-record flexibility, especially with `Loopback`. - Standout: Mac audio capture chains, denoise blocks, routing control. - `Loopback` (`Medium`) - Users praise: solves annoying Mac system-audio routing problems cleanly. - Standout: virtual audio devices, routing for recording stacks. - `Logic Pro` (`Medium-High`) - Users praise: excellent if you already know it; channel strips and fast VO templates can make turnaround extremely fast. - Standout: pro DAW depth with reusable voiceover presets. - `Audacity` (`High`) - Users praise: free, everywhere, enough for many beginner audio-only tasks. - Standout: no-cost entry, easy enough for trimming, gating, and cleanup. - `Waves Clarity VX` (`Medium`) - Users praise: strong dialogue cleanup quality despite company-pricing complaints. - Standout: effective spoken-dialog denoise. - `Supertone Clear` (`Medium`) - Users praise: very good at cleaning vocals in less-than-ideal rooms. - Standout: modern AI vocal cleanup with simpler operation than legacy repair chains. Representative sources: - [Better macOS alternative to Krisp for noise suppression?](https://reddit.com/r/macapps/comments/1dl5e7u/better_macos_alternative_to_krisp_for_noise/) - [Which is the best noise reduction AI out there?](https://reddit.com/r/audioengineering/comments/1iuweu4/which_is_the_best_noise_reduction_ai_out_there_at/) - [Auphonic - I can't recommend it enough](https://reddit.com/r/podcasting/comments/1kyam0b/auphonic_i_cant_recommend_it_enough/) - [Auphonic official](https://auphonic.com/features) - [Hush official](https://hush.audio/products/hush) - [Adobe Podcast official](https://podcast.adobe.com/) ### 5. Cursor Highlights, Zoom, Annotation, and Keystroke Display - `Presentify` (`Medium-High`) - Users praise: a go-to Mac app for highlighting, cursor emphasis, and presentation annotations. - Standout: cursor highlighting, screen annotation, Apple Pencil/Sidecar support. - `TuringShot` (`Medium`) - Users praise: live zoom, cursor spotlight, and on-screen drawing without needing post edits. - Standout: ctrl-scroll zoom, spotlight, drawing overlay, pairs well with another recorder. - `Annotate` (`Medium`) - Users praise: open source, lightweight, and quickly improving from active user feedback. - Standout: keyboard-driven screen annotation, overlay approach, no heavy permissions for basic use. - `KeyCastr` (`Medium`) - Users praise: simple free/open-source keyboard visualizer for tutorials. - Standout: keystroke display during screencasts. - `Keystroke Pro` (`Low-Medium`) - Users praise: better-looking full keyboard display than basic free tools. - Standout: more polished keyboard visualization. - `Cursor Pro` (`Low-Medium`) - Users praise: visually pleasing cursor highlight tool with adjustable zoom and sizing. - Standout: configurable cursor emphasis and zoom. - Caveat: at least one user called it buggy. - `myPoint Pro` (`Low-Medium`) - Users praise: longtime presenter-style cursor enhancement tool. - Standout: pointer emphasis for live explanation. - `FocusCursor` (`Low-Medium`) - Users praise: promising newcomer in `r/macapps` cursor-highlighting threads. - Standout: cursor focus plus a broader presentation-board direction. Representative sources: - [Any apps for highlighting / magnifying cursor on macOS?](https://reddit.com/r/macapps/comments/1qm96ep/any_apps_for_highlighting_magnifying_cursor_on/) - [Annotate: Draw and highlight anything on your screen](https://reddit.com/r/macapps/comments/1iwy7md/annotate_draw_and_highlight_anything_on_your/) - [Recommendation for a keyboard screen recording](https://reddit.com/r/macapps/comments/1ru9l85/recommendation_for_a_keyboard_screen_recording/) ### 6. Blur, Redaction, and Privacy - `Snagit` (`Medium`) - Users praise: strong annotation and step-capture utility, especially for documentation-heavy creators. - Standout: AI step capture, AI smart redact, scrolling capture, markup, recording, searchable library. - `Shottr` (`Medium-High`) - Users praise: fast, lightweight screenshot workflow with annotation, OCR, and pixelation. - Standout: beautiful screenshot backgrounds, OCR, object removal, pinning, scrolling captures, pay-what-you-want model. - `DataBlur` (`Low-Medium`) - Users praise: browser-side auto-blur for credentials and sensitive fields before you hit record. - Standout: pre-capture masking for browser-based technical tutorials. - Caveat: still emerging; treat as promising rather than battle-proven. - `ZeroBlur` (`Low-Medium`) - Users praise: worked better than manual post blur for at least one creator dealing with moving phone numbers in screen recordings. - Standout: browser-based masking for recurring web UI redaction. - `Privacy Shield` (`Low`) - Users praise: handy Chrome blur helper for quick browser-only censorship. - Standout: simple on-page blur actions during capture. - `Whiteout` (`Low`) - Users praise: quick redact / blur app for images. - Standout: fast markup-style redaction for stills. - `Blur Video` (`Low`) - Users praise: narrow, obvious utility for fast video blurring tasks. - Standout: dedicated blur-only workflow. - `Redacted` (`Low`) - Users praise: catches many fields automatically in browser recording scenarios. - Standout: auto-blur browser fields while recording. - Caveat: users also warned it can miss things, so trust but verify. Short practical takeaway: - For screenshots: `Shottr`, `Snagit`, `CleanShot X`, `Whiteout`. - For browser tutorials: `DataBlur`, `ZeroBlur`, `Privacy Shield`, `Redacted`. - For video after the fact: use tracked blur in `Final Cut Pro` or `DaVinci Resolve`. - For anything seriously sensitive: prefer black bars or solid blocks over soft blur. Representative sources: - [Looking for an app that easily lets you blur sensitive info in screenshots](https://reddit.com/r/macapps/comments/1c2bvgn/looking_for_an_app_that_easily_lets_you_blur/) - [How do you handle blurring passwords / API keys in tutorials?](https://reddit.com/r/NewTubers/comments/1r203hx/how_do_you_handle_blurring_passwordsapi_keys_in/) - [Best and fastest method for blur mask tracking text in screen recordings](https://reddit.com/r/davinciresolve/comments/1rfrlta/best_and_fastest_method_for_blur_mask_tracking/) - [Snagit official](https://www.techsmith.com/snagit.html) - [Shottr official](https://shottr.cc/) ### 7. Camera, Webcam, Live, and Teleprompters - `Camo Studio` (`Medium-High`) - Users praise: excellent way to turn an iPhone into a much better Mac camera and get more control than default webcam apps. - Standout: use phone, DSLR, action cam, or Continuity Camera source; scene templates; overlays; lower thirds; reframing; background control. - `Ecamm Live` (`Medium`) - Users praise: reliable Mac live-production tool for creator setups that outgrow simple webcam apps. - Standout: live switching and production depth for creators who do streams, podcasts, or polished live recordings. - `NotchPrompter` (`High`) - Users praise: one of the most genuinely loved new Mac-native tools in this research set. The notch placement and "invisible to recording" angle landed well. - Standout: voice-activated scrolling, notch or floating placement, hidden from screen recordings and conferencing, one-time supportable purchase, open source roots. - `PromptSmart Pro` (`Medium`) - Users praise: when VoiceTrack works, it is hard to imagine going back. - Standout: voice-follow scrolling, creator-focused prompter behavior. - Caveat: it also produced some of the sharpest negative anecdotes when scrolling failed. - `Elgato Prompter` (`High`) - Users praise: easiest physical teleprompter setup for many creators, especially if eye contact matters. - Standout: built-in display, drag any window onto it, Voice Sync, Stream Deck integration, good camera mounting options. - `Speakflow` (`Medium`) - Users praise: "sucks the least" was not glowing language, but it came from creators who had clearly tried many teleprompters. - Standout: online teleprompter with voice-activated scrolling and collaboration. - `BIGVU` (`Medium`) - Users praise: free teleprompter basics and broad all-in-one script / caption / eye-contact workflow. - Standout: teleprompter, AI subtitles, script help, eye-contact correction, scheduling. - `Teleprompter.com` (`Medium`) - Users praise: clean interface and easy speed control. - Standout: cross-device teleprompter workflow with editing and recording support. - `StoriesStudio` (`Low-Medium`) - Users praise: real time savings from iPhone/iPad teleprompt-and-record workflow. - Standout: teleprompter plus captioning on iOS. - `ShareSpeak` (`Low-Medium`) - Users praise: invisible AI teleprompter positioning for screencasters and screen shares. - Standout: Mac and Windows desktop teleprompter pitched specifically for screencasts. - `HighlightMe` (`Low`) - Users praise: came up specifically as a response to frustration with voice-scrolling teleprompters. - Standout: creator-built alternative in the teleprompt niche. Representative sources: - [Any good teleprompter apps for YouTube creators?](https://reddit.com/r/PartneredYoutube/comments/1lwjq7p/any_good_teleprompter_apps_for_youtube_creators/) - [NotchPrompter - free and open-source teleprompter for macOS](https://reddit.com/r/macapps/comments/1pfxucu/notchprompter_free_and_opensource_teleprompter/) - [Best webcam recording software to record YouTube videos on Mac?](https://reddit.com/r/MacOS/comments/1l6le60/best_webcam_recording_software_to_record_youtube/) - [Camo official](https://camo.com/studio) - [NotchPrompter official](https://notchprompter.com/) - [Elgato Prompter official](https://www.elgato.com/us/en/p/prompter) ### 8. Motion Graphics, Templates, Stock, and Music - `Apple Motion` (`Medium-High`) - Users praise: best when you want reusable Final Cut templates, lower thirds, and creator-friendly motion without full After Effects overhead. - Standout: titles, transitions, effects, rigs, replicators, behaviors, FCP template publishing. - `Adobe After Effects` (`Medium-High`) - Users praise: still the industry-standard motion-graphics answer when the work gets serious. - Standout: deepest ecosystem for kinetic type, graphic animation, and compositing. - Caveat: overkill for many screencast channels unless motion graphics become a major identity layer. - `MotionVFX` (`Medium`) - Users praise: useful plugin ecosystem for Final Cut creators. - Standout: FCP-focused graphics plugins and templates. - Caveat: price grumbling was common. - `FxFactory` (`Medium`) - Users praise: meaningful plugin leverage for Final Cut creators who want to extend the app quickly. - Standout: plugin marketplace / effects ecosystem for FCP and related apps. - `Envato Elements` (`High`) - Users praise: huge value when you need templates, motion assets, stock, fonts, and music in one place. - Standout: video templates, stock video, music, SFX, graphics, photos, fonts, AI asset tools. - `Artlist` (`Medium-High`) - Users praise: high-quality music and footage with creator-friendly licensing. - Standout: music, SFX, footage, templates, AI image and video tools. - `Epidemic Sound` (`High`) - Users praise: worry-free music licensing for monetized channels and an easy soundtrack workflow. - Standout: music + SFX library, direct license coverage, plugin support, creator-safe monetization story. - `Musicbed` (`Medium`) - Users praise: premium-feeling music selection when you care more about taste than sheer library size. - Standout: curated stock music licensing. - `Keynote` (`Medium`) - Users praise: underrated way to build simple lower thirds, intros, and explanatory graphics fast. - Standout: cheap / already-there design-to-video asset creation without learning AE. Representative sources: - [Apple Motion worth a try?](https://reddit.com/r/motiongraphics/comments/ru0w97/apple_motion_worth_a_try/) - [Alternatives to MotionVFX](https://reddit.com/r/finalcutpro/comments/1ihfb2i/alternatives_to_motion_vfx/) - [Is Envato Elements worth it?](https://reddit.com/r/NewTubers/comments/18cu68w/is_envato_elements_worth_it_should_i_get_it_for/) - [Epidemic, Artlist, Musicbed - who actually uses what?](https://reddit.com/r/videography/comments/1s1u4tc/epidemic_artlist_musicbed_in_2026_who_actually/) - [Motion official](https://support.apple.com/guide/motion/welcome/mac) - [Envato Elements official](https://www.envato.com/) - [Epidemic Sound official](https://www.epidemicsound.com/) ### 9. Thumbnails, Graphics, and Image Work - `Canva` (`High`) - Users praise: easiest, fastest, most common thumbnail tool for non-designers, and still good enough for many professionals. - Standout: templates, background remover, resize, captions, social post formats, brand kits. - Caveat: many creators hit a "Canva look" ceiling unless they develop stronger design taste. - `Adobe Photoshop` (`High`) - Users praise: still the premium answer when thumbnails are a competitive advantage, not an afterthought. - Standout: deep compositing, text control, layer workflows, pro-grade image manipulation. - `Photopea` (`High`) - Users praise: the best free Photoshop-like answer, repeatedly recommended in thumbnail threads. - Standout: browser-based, PSD-style layers, masks, blending, vector support, free. - `Affinity Photo 2` (`Medium-High`) - Users praise: one-time-purchase serious alternative to Photoshop for thumbnail creators. - Standout: RAW, retouching, layers, batch work, export options, Canva handoff. - `Pixelmator Pro` (`Medium-High`) - Users praise: Mac-friendly, easier than Photoshop, strong enough for thumbnails and channel visuals. - Standout: Apple-native image editing, AI tools, templates, typography, vector support. - `Figma` (`Medium`) - Users praise: less common than Canva for thumbnails, but useful for consistent lower thirds, layouts, and brand systems. - Standout: reusable layouts, scalable creator asset systems, collaboration. - `GIMP` (`Medium`) - Users praise: free and effective if you are willing to learn it. - Standout: no-cost full image editor. - `Krita` (`Low-Medium`) - Users praise: free and capable, especially for creators with a more illustration-heavy or artist workflow. - Standout: free creator-friendly image work beyond standard thumbnails. - `Procreate` (`Medium`) - Users praise: more freedom and hand-made feel on iPad for custom thumbnail art. - Standout: illustration-first workflow for distinctive thumbnails. - `Pikzels` (`Low-Medium`) - Users praise: AI-assisted thumbnail generation for inspiration and speed. - Standout: easy thumbnail ideation / generation. - Caveat: signal quality was mixed and some off-thread complaints existed. Representative sources: - [What software do you use to make your thumbnails?](https://reddit.com/r/NewTubers/comments/1hwwryy/what_software_do_you_use_to_make_your_thumbnails/) - [Canva or Photoshop, or something else for thumbnails?](https://reddit.com/r/SmallYoutubers/comments/1ns8uwg/canva_or_photoshop_or_something_else_for/) - [Canva official](https://www.canva.com/) - [Photopea official](https://www.photopea.com/) - [Affinity Photo official](https://www.affinity.studio/photo-editing-software) - [Pixelmator Pro official](https://www.apple.com/pixelmator-pro/) ### 10. Publishing, SEO, Analytics, Planning, and Repurposing - `TubeBuddy` (`Medium`) - Users praise: useful feature pile for YouTube workflow hygiene, especially thumbnails, SEO, and testing. - Standout: keyword explorer, SEO studio, title help, thumbnail analysis, A/B testing, channel insights. - Caveat: Reddit sentiment was split on whether it actually moves the needle enough to justify subscription cost. - `vidIQ` (`Medium`) - Users praise: idea generation, keyword research, AI coaching, and optimization dashboards. - Standout: keyword tools, ideas, outliers, AI coach, clip and script helpers. - Caveat: just like `TubeBuddy`, many creators called these tools optional rather than transformative. - `Opus Clip` (`High`) - Users praise: extremely fast long-form to short-form repurposing, decent editable captions, and sheer time savings. - Standout: long video to shorts, AI clipping, reframe, captions, audio enhance, social publishing. - Caveat: not free in any meaningful long-term way; manual craft still beats it for best clips. - `Repurpose.io` (`Low-Medium`) - Users praise: automation convenience for multi-platform posting. - Standout: distribution and republishing automation. - Caveat: multiple marketers complained it can hurt reach or feel overpriced versus manual workflows. - `Notion` (`High`) - Users praise: best all-around planning hub for channel operations, idea backlog, scripts, production tracking, and content calendars. - Standout: docs, projects, calendars, AI notes, custom workflows. - `YouTube Studio` (`High`) - Users praise: still the actual source of truth for publishing, channel health, audience feedback, and core analytics. - Standout: upload, edit metadata, comments, performance tracking, channel management. - `Social Blade` (`Medium`) - Users praise: quick comparative public stats and benchmarking. - Standout: public cross-channel analytics snapshots. - Caveat: use it for lightweight context, not as your core decision engine. - `ClipsMagic` (`Low-Medium`) - Users praise: transcript-based clipping and usable free entry point relative to other AI clippers. - Standout: direct clip picking from transcript, captions, 9:16 cropping, SRT output. - `ClipHog` (`Low`) - Users praise: responsive free-plan alternative in the AI clipping niche. - Standout: AI short creation templates and free entry point. - Caveat: still niche and lower-confidence. Representative sources: - [Have you guys tried YT SEO?](https://reddit.com/r/NewTubers/comments/1iri8vk/have_you_guys_tried_yt_seo/) - [Stuck around 3k subs, is TubeBuddy or VidIQ worth it?](https://reddit.com/r/SmallYoutubers/comments/1qaszsx/stuck_around_3k_subs_is_tubebuddy_or_vidiq/) - [Free OpusClip alternative?](https://reddit.com/r/podcasting/comments/1k81xns/free_opusclip_alternative/) - [TubeBuddy official](https://www.tubebuddy.com/) - [vidIQ official](https://vidiq.com/) - [Opus Clip official](https://www.opus.pro/) ## End-to-End Workflow Recommendations ### Workflow A: Best polished solo screencast channel 1. Planning - Use `Notion` for topics, titles, shot lists, thumbnail ideas, and publishing calendar. - Use `TubeBuddy` or `vidIQ` only for title/keyword sense-checking, not for deciding what your channel should be. 2. Script - Draft in `Notion`. - If you script tightly, use `NotchPrompter` or `PromptSmart Pro`. 3. Recording - Use `Screen Studio` for polished screen capture. - Use `Camo Studio` if you want iPhone-quality camera footage. - Use `Presentify` or `TuringShot` if you want live visual emphasis. 4. Editing - Finish in `Final Cut Pro` if you want speed and a Mac-native feel. 5. Audio - Run exported voice or final mix through `Hush` or `Auphonic`. 6. Transcription and captions - Use `MacWhisper` for transcript and searchability. - Use `Descript`, `VEED`, or `Submagic` if you want more stylized captions. 7. Thumbnail - Use `Canva` if you are fast-moving. - Upgrade to `Affinity Photo 2`, `Pixelmator Pro`, or `Photoshop` when thumbnail CTR becomes a bottleneck. 8. Publishing and repurposing - Publish in `YouTube Studio`. - Use `Opus Clip` for shorts only after you know what moments deserve clipping. ### Workflow B: Best flexible pro stack 1. Use `OBS Studio` when your videos need multiple scenes, layered audio, browser sources, or live switching. 2. Use `DaVinci Resolve Studio` when you want one app for edits, audio, subtitles, motion, and exports. 3. Use `MacWhisper` or `Descript` for transcript-first rough cuts. 4. Use `Auphonic` for final leveling and cleanup. 5. Use `Apple Motion` or `After Effects` only when your brand starts needing repeatable title packages or lower thirds. ### Workflow C: Best lean budget stack 1. Record with `QuickTime Player` or `CleanShot X`. 2. Edit in `DaVinci Resolve Free` or `iMovie`. 3. Clean audio in `Audacity`, then escalate to `Adobe Podcast` or `Auphonic` only when needed. 4. Transcribe with `MacWhisper`. 5. Make thumbnails in `Photopea` or `Canva`. 6. Track production in `Notion`. 7. Publish in `YouTube Studio`. ## What I Would Personally Buy First - `Final Cut Pro` if you want to optimize for speed on Mac and publish lots of videos. - `MacWhisper` if you want every recording to become searchable text and caption fodder. - `Auphonic` if your audio is inconsistent or you record in imperfect spaces. - `NotchPrompter` if you do talking-head intros or sponsor reads. - `Shottr` or `Snagit` if your channel uses lots of screenshots and step-by-step stills. - `Canva` or `Affinity Photo 2` depending on whether you optimize for speed or craft. ## Bottom Line - If your channel is mostly polished software demos, start with `Screen Studio`. - If you want full control and expect the channel to grow into a serious production system, start with `DaVinci Resolve` or `Final Cut Pro`. - If you speak a lot on camera, a teleprompter plus transcript system matters more than another flashy editor. - If you make technical tutorials, treat privacy tools as part of recording, not just part of editing. - If you ship often, audio consistency and thumbnail consistency will matter more than buying five different AI editors. ## [tr] Mac Screencast YouTube Tooling Research URL: https://yigitkonur.com/tr/research/mac-screencast-youtube-tooling-research Kind: research-report Published: 2026-04-12 Updated: Sun Apr 12 Date: 2026-04-12 ## Methodology - Reddit query volume: 240 search queries across 12 workflow categories. - Deep-read Reddit threads: 64 threads with full comment trees. - Official verification: 36 product pages plus official URL checks for emerging tools. - Primary subreddits: `r/macapps`, `r/mac`, `r/MacOS`, `r/NewTubers`, `r/PartneredYoutube`, `r/SmallYoutubers`, `r/finalcutpro`, `r/davinciresolve`, `r/editors`, `r/VideoEditors`, `r/podcasting`, `r/audioengineering`, `r/screenrecorders`, `r/videography`. - Signal legend: - `High`: repeated praise across multiple independent Reddit threads plus official product fit. - `Medium`: positive recurrence, but narrower use case or mixed feedback. - `Low`: promising, but sparse signal, newer tool, or recommendation threads contaminated by self-promo. ## Executive Summary - The strongest Reddit consensus for a polished Mac screencast workflow is not one all-in-one app. It is a stack: - Recording polish: `Screen Studio` or `ScreenFlow` - Deep editing: `Final Cut Pro` or `DaVinci Resolve` - Transcript / captions: `MacWhisper`, `Descript`, `VEED`, or `Riverside` - Audio cleanup: `Auphonic` and `Hush` - Cursor / emphasis: `Presentify`, `TuringShot`, `Annotate`, `KeyCastr` - Privacy / redaction: `Snagit`, `Shottr`, `DataBlur` / `ZeroBlur`, or NLE-based tracked blur - Camera / teleprompting: `Camo`, `NotchPrompter`, `PromptSmart`, `Elgato Prompter` - Thumbnails / assets: `Canva`, `Photopea`, `Affinity Photo 2`, `Pixelmator Pro`, `Envato Elements`, `Epidemic Sound`, `Artlist` - Growth / repurposing: `TubeBuddy`, `vidIQ`, `Opus Clip`, `Notion`, `YouTube Studio` - The most polarizing apps in the research were `Descript` and `CapCut`. - Users love the speed, captions, and AI convenience. - Users also complain about bloat, bugs, aggressive AI edits, timing glitches, and creeping paywalls. - The cleanest separation in Reddit advice is this: - `Screen Studio` is for beautiful demos with minimal editing. - `ScreenFlow` is for Mac-native screencast recording plus editing in one app. - `OBS` is for power and flexibility. - `Final Cut Pro` is for speed on Mac. - `DaVinci Resolve` is for breadth, color, audio, subtitles, and future-proofing. - Short answer to your blur question: - If blur/redaction is occasional, your editor is enough: `Final Cut Pro`, `DaVinci Resolve`, or even `CapCut` can handle tracked blur. - If you frequently show sensitive browser or app data, a dedicated privacy layer is worth it: `DataBlur`, `ZeroBlur`, `Privacy Shield`, `Redacted`, or at minimum `Snagit` / `Shottr` for screenshots. - If the sensitive data is moving inside a browser UI, pre-capture masking is safer than post-facto blur. - If I were launching a new Mac screencast channel tomorrow, I would choose one of these three stacks: - Best polished startup stack: `Screen Studio` + `Final Cut Pro` + `MacWhisper` + `Hush` + `Auphonic` + `NotchPrompter` + `Canva` + `TubeBuddy` + `Notion` - Best flexible pro stack: `OBS` + `DaVinci Resolve Studio` + `MacWhisper` + `Auphonic` + `Presentify` + `Camo` + `Affinity Photo 2` + `Opus Clip` + `YouTube Studio` - Best lean budget stack: `QuickTime` or `CleanShot X` + `DaVinci Resolve Free` + `Audacity` + `MacWhisper` + `NotchPrompter` + `Photopea` + `Canva Free` + `YouTube Studio` ## Nested Analysis ### 1. Capture and Recording - `Screen Studio` (`High`) - Users praise: the fastest path to a polished founder-demo or tutorial look. The repeated theme was "record once, barely edit." - Standout: automatic zooms, cursor smoothing, keyboard shortcut display, transcript/subtitle generation, 4K60 export, vertical exports, webcam + system audio capture. - Caveat: subscription fatigue came up often; it is more finishing-friendly than deeply editable. - `OBS Studio` (`High`) - Users praise: raw flexibility, reliability, multi-source scene control, and "it can do anything if you configure it." - Standout: free/open source, scenes, filters, hotkeys, multiple inputs, local recording, streaming. - Caveat: steep setup curve; multiple users said it can push Macs hard if misconfigured. - `ScreenFlow` (`High`) - Users praise: still the most beloved Mac-native "record + edit tutorials fast" tool. Longtime users repeatedly called it easy, fast, and purpose-built for screencasts. - Standout: simultaneous screen/camera/mic capture, built-in editor, annotations, captions, iPhone/iPad recording, preset exports. - Caveat: a recurring support-maintenance concern appeared in newer Reddit threads, so I would verify its update cadence before standardizing on it. - `CleanShot X` (`High`) - Users praise: intuitive quick capture flow, great for fast screen videos and even better for screenshots. - Standout: native Mac app, recording plus screenshot workflows, microphone + system audio, webcam, click and keystroke highlighting, quick trim, cloud sharing. - Caveat: it is not a deep editor; think capture utility first. - `Screenium 3` (`Medium`) - Users praise: one-time purchase, broad recording modes, built-in editor, and good fit for tutorial creators who want Mac-native recording without subscription sprawl. - Standout: 60 fps, full screen / window / region / iOS or tvOS device recording, smart zoom, cursor visualization, editing inside the app. - `QuickTime Player` (`High`) - Users praise: free, built-in, dead simple, and "good enough" surprisingly often. - Standout: instant webcam or screen capture, trim/rearrange basics, zero learning curve. - Caveat: repeated complaints about system-audio friction, large files, and variable-frame-rate headaches when moving into editors or social uploads. - `Loom` (`Medium`) - Users praise: speed for shareable internal demos and some live blur use cases. - Standout: instant share links, quick async recording, live blur capability mentioned in privacy threads. - Caveat: multiple Redditors called it buggy; not the preferred final YouTube pipeline tool. - `Camtasia` (`Medium`) - Users praise: approachable screen-recording and tutorial-editing workflow, especially from e-learning and training creators. - Standout: all-in-one screencast workflow, easy onboarding, caption-friendly editing, tutorial-oriented timeline tools. - Caveat: less love from Mac-first creator threads than `ScreenFlow`, `FCP`, or `Resolve`. - `Focusee` (`Medium`) - Users praise: auto zoom and spotlight effects that reduce post-production. - Standout: attention-guiding zooms, cursor emphasis, share links, demo-oriented visuals. - Caveat: signal was positive but thinner than `Screen Studio`. - `QuickRecorder` (`Low-Medium`) - Users praise: lightweight native Mac approach for people who want something closer to built-in recording without heavy software. - Standout: simple native recording flow; best viewed as a utility, not a full creator stack. Representative sources: - [What screen recording apps do Mac users use?](https://reddit.com/r/mac/comments/1h8k73u/what_screen_recording_apps_do_mac_users_use/) - [Choosing the Best Screen Recorder for Mac](https://reddit.com/r/macapps/comments/1ra89tg/choosing_the_best_screen_recorder_for_mac/) - [What’s the best screen recording tool for Mac?](https://reddit.com/r/screenrecorders/comments/1p2023n/whats_the_best_screen_recording_tool_for_mac_in/) - [Screen Studio official](https://screen.studio/) - [OBS official](https://obsproject.com/) - [ScreenFlow official](https://www.telestream.net/screenflow/overview.htm) ### 2. Editing and NLEs - `Final Cut Pro` (`High`) - Users praise: speed, magnetic timeline, smooth Apple Silicon performance, and low-friction editing once learned. - Standout: transcript search, automatic captions, object tracking, smart reframing, strong export ecosystem with Compressor. - Caveat: less breadth than `Resolve` for some advanced post workflows; some creators still supplement it with plugins. - `DaVinci Resolve` (`High`) - Users praise: the best free serious editor on Mac, and the broadest all-in-one package once you grow into it. - Standout: editing, color, audio, subtitles, motion graphics, quick social exports; Studio adds text-based editing and AI subtitle tools. - Caveat: repeated feedback that it is more cluttered and slower to learn than `FCP`. - `CapCut Desktop` (`High`) - Users praise: the easiest step up from iMovie for modern captions, social text, and fast short-form edits. - Standout: auto captions, effects, templates, free entry point, one-click social sharing. - Caveat: one of the most complaint-heavy tools in the whole research set when the topic becomes caption timing, paywalls, or long-form stability. - `iMovie` (`Medium-High`) - Users praise: genuinely good for beginners and quick cuts, especially when the channel is new. - Standout: free, already on many Macs, fast for simple trimming and assembly. - Caveat: many creators outgrow it quickly for captions, audio, and workflow scaling. - `Adobe Premiere Pro` (`Medium`) - Users praise: widespread pro familiarity and ecosystem integration. - Standout: industry-standard collaboration footprint, deep integration with Adobe apps, mature timeline editing. - Caveat: Mac Reddit sentiment leaned much more warmly toward `FCP` and `Resolve` because of speed, pricing, and stability. - `LumaFusion` (`Medium`) - Users praise: inexpensive, simpler than big NLEs, and surprisingly capable on Mac if you already use it on iPad. - Standout: approachable editor, cross-device familiarity, good value. - `Filmora` (`Medium`) - Users praise: beginner-friendly and easier than heavier editors. - Standout: solid on-ramp editor when transcript editing is not required. - Caveat: confidence is moderate; less creator consensus than `CapCut`, `FCP`, or `Resolve`. - `Movavi Video Editor` (`Medium`) - Users praise: natural step up from iMovie with simple cuts and audio layering. - Standout: approachable UI, smoother entry point than complex pro apps. - `Shotcut` (`Medium-Low`) - Users praise: free and serviceable for budget-conscious creators. - Standout: no-cost editor that can bridge the gap before you buy anything. - Caveat: rarely anyone described it as delightful. - `OpenShot` (`Low`) - Users praise: free and easy to try. - Standout: low barrier to entry. - Caveat: sparse positive Mac creator signal compared with nearly every other option here. Representative sources: - [What’s Your Favorite Video Editor for Mac?](https://reddit.com/r/macapps/comments/1e5ixrm/whats_your_favorite_video_editor_for_mac/) - [Final Cut Pro 11 or DaVinci Resolve?](https://reddit.com/r/finalcutpro/comments/1hwwhtx/final_cut_pro_11_or_davinci_resolve_free_for_a/) - [DaVinci Resolve or Final Cut Pro?](https://reddit.com/r/davinciresolve/comments/1iqs902/davinci_resolve_or_final_cut_pro/) - [Final Cut Pro official](https://www.apple.com/final-cut-pro/) - [DaVinci Resolve official](https://www.blackmagicdesign.com/products/davinciresolve) - [CapCut desktop official](https://www.capcut.com/tools/desktop-video-editor) ### 3. Transcript-First Editing, Captions, and Subtitle Pipelines - `Descript` (`High`) - Users praise: text-based editing that can cut hours off waveform work; filler-word cleanup; Studio Sound; quick social derivatives; FCP XML export. - Standout: edit by transcript, captions, regenerate audio, eye contact, studio sound, export up to 4K on paid tiers. - Caveat: also one of the most criticized tools in the research. Common complaints were bloat, bugs, aggressive AI choices, and a drift away from its original simple text-edit promise. - `Riverside` (`High`) - Users praise: reliable local recording, strong remote podcast/video capture, and an integrated record-edit-publish path. - Standout: local 4K recording, separate tracks, transcript editing, animated captions, show-note generation, translation and dubbing. - Caveat: several users still preferred `Descript` for editing feel even when they trusted `Riverside` more for recording. - `VEED` (`Medium-High`) - Users praise: among the best web tools for stylish captions and social-ready subtitle design. - Standout: dynamic subtitles, teleprompter, screen recorder, background-noise removal, AI editor. - Caveat: some creators wanted better block-level styling control for chunks of captions. - `FireCut` (`Medium`) - Users praise: fast subtitle generation, silence cutting, zooms, chapters, and podcast helper functions inside existing NLEs. - Standout: Premiere / Resolve plugin, captions, silence cutting, podcast camera switching, automated zoom cuts, B-roll finding. - `MacWhisper` (`High`) - Users praise: a "major breakthrough" in offline transcription quality on Mac; consistent enough to replace weaker caption starting points. - Standout: local or cloud transcription, offline privacy, direct recording, summaries, transcript chat, video support. - Caveat: it is strongest as a transcription engine, not as a flashy caption animator. - `Trint` (`Medium`) - Users praise: transcript-first collaboration, strong proper-noun accuracy, team-friendly workflow. - Standout: transcript collaboration and review, higher-end editorial teams. - Caveat: pricing was repeatedly called expensive. - `Reduct.video` (`Medium`) - Users praise: one of the few serious alternatives people mentioned for transcript editing, including multicam support. - Standout: text-based cutting outside your NLE, multicam support. - `Simon Says` (`Medium`) - Users praise: real FCP-facing paper-edit workflow options, especially for interviews and transcribed assemblies. - Standout: transcript-to-FCP workflows and editorial exports. - `Lumberjack Builder NLE` (`Medium`) - Users praise: FCP-focused text-based documentary and interview paper-edit workflow. - Standout: strong fit when your destination NLE is Final Cut Pro. - `Happy Scribe` (`Medium`) - Users praise: transcript-first alternative with export flexibility and multilingual use cases. - Standout: transcription, subtitles, language support, collaborative review. - `Brevidy` (`Low-Medium`) - Users praise: good client terminology capture and fast stylized caption work. - Standout: animated captions and AI transcription tuned for creator use cases. - Caveat: confidence is lower because signal came from fewer threads. - `Zeemo` (`Low-Medium`) - Users praise: social-ready caption templates and cost-efficient subtitle generation. - Standout: templated subtitle styles aimed at short-form. - `AutoCut` (`Medium`) - Users praise: useful free-trial plugin option for captions, silence cuts, zooms, and beeps, especially for Resolve free users. - Standout: animated captions, silence cutting, zooms, reusable plugin workflow. - `Submagic` (`Medium`) - Users praise: much easier and cleaner short-form captions than fighting `CapCut` bugs. - Standout: dynamic emphasis captions for shorts and reels. Representative sources: - [Alternative to Descript for text based editing](https://reddit.com/r/editors/comments/1r2yi48/alternative_to_descript_for_text_based/) - [Descript vs anything cheaper](https://reddit.com/r/podcasting/comments/1g2wttp/descript_vs_anything_that_has_got_to_be/) - [Which AI subtitle maker is the most accurate?](https://reddit.com/r/editors/comments/1nc3vy5/which_ai_subtitle_maker_is_the_most_accurate_how/) - [MacWhisper closed captioning workflow breakthrough](https://reddit.com/r/MacWhisper/comments/1r1cil5/closed_captioning_workflow_breakthroughs/) - [Descript official](https://www.descript.com/) - [Riverside official](https://riverside.fm/) - [VEED official](https://www.veed.io/) ### 4. Audio Cleanup and Voiceover - `Auphonic` (`High`) - Users praise: the single most unanimously praised audio cleanup service in the entire Reddit set. Multiple posters called it "mind blowing" or "a miracle worker." - Standout: noise and reverb reduction, leveling, transcript editor, shownotes, chaptering, YouTube deployment, waveform video generation. - Caveat: not a full creative sound-design replacement; some free-tier branding limits. - `Hush` (`High`) - Users praise: best-in-class spoken-word cleanup on Apple Silicon without the warbly, fake sound some users hear in Adobe tools. - Standout: local Mac app, one-time purchase, no subscription, strong spoken-audio denoise and dereverb, fast on M-series Macs. - Caveat: strongest on Apple Silicon; not a real-time teleconference filter. - `Adobe Podcast` (`High`) - Users praise: dead-simple web cleanup and rescue power for bad recordings. - Standout: browser-based AI audio cleanup and editing. - Caveat: repeated complaints about robotic sound, over-processing, and chopped consonants unless blended or dialed down carefully. - `iZotope RX` (`Medium-High`) - Users praise: still the reference toolbox when you really know audio repair. - Standout: granular repair workflow, spectral editing, dialogue tools, pro-standard depth. - Caveat: the Reddit theme was "powerful but slower and more manual than newer AI-first cleanup tools." - `Krisp` (`Medium`) - Users praise: when it works, it is still a handy universal suppression layer. - Standout: real-time suppression across apps. - Caveat: a noticeable cluster of complaints described instability, CPU spikes, and worsening support. - `Audio Hijack` (`Medium`) - Users praise: route-and-record flexibility, especially with `Loopback`. - Standout: Mac audio capture chains, denoise blocks, routing control. - `Loopback` (`Medium`) - Users praise: solves annoying Mac system-audio routing problems cleanly. - Standout: virtual audio devices, routing for recording stacks. - `Logic Pro` (`Medium-High`) - Users praise: excellent if you already know it; channel strips and fast VO templates can make turnaround extremely fast. - Standout: pro DAW depth with reusable voiceover presets. - `Audacity` (`High`) - Users praise: free, everywhere, enough for many beginner audio-only tasks. - Standout: no-cost entry, easy enough for trimming, gating, and cleanup. - `Waves Clarity VX` (`Medium`) - Users praise: strong dialogue cleanup quality despite company-pricing complaints. - Standout: effective spoken-dialog denoise. - `Supertone Clear` (`Medium`) - Users praise: very good at cleaning vocals in less-than-ideal rooms. - Standout: modern AI vocal cleanup with simpler operation than legacy repair chains. Representative sources: - [Better macOS alternative to Krisp for noise suppression?](https://reddit.com/r/macapps/comments/1dl5e7u/better_macos_alternative_to_krisp_for_noise/) - [Which is the best noise reduction AI out there?](https://reddit.com/r/audioengineering/comments/1iuweu4/which_is_the_best_noise_reduction_ai_out_there_at/) - [Auphonic - I can't recommend it enough](https://reddit.com/r/podcasting/comments/1kyam0b/auphonic_i_cant_recommend_it_enough/) - [Auphonic official](https://auphonic.com/features) - [Hush official](https://hush.audio/products/hush) - [Adobe Podcast official](https://podcast.adobe.com/) ### 5. Cursor Highlights, Zoom, Annotation, and Keystroke Display - `Presentify` (`Medium-High`) - Users praise: a go-to Mac app for highlighting, cursor emphasis, and presentation annotations. - Standout: cursor highlighting, screen annotation, Apple Pencil/Sidecar support. - `TuringShot` (`Medium`) - Users praise: live zoom, cursor spotlight, and on-screen drawing without needing post edits. - Standout: ctrl-scroll zoom, spotlight, drawing overlay, pairs well with another recorder. - `Annotate` (`Medium`) - Users praise: open source, lightweight, and quickly improving from active user feedback. - Standout: keyboard-driven screen annotation, overlay approach, no heavy permissions for basic use. - `KeyCastr` (`Medium`) - Users praise: simple free/open-source keyboard visualizer for tutorials. - Standout: keystroke display during screencasts. - `Keystroke Pro` (`Low-Medium`) - Users praise: better-looking full keyboard display than basic free tools. - Standout: more polished keyboard visualization. - `Cursor Pro` (`Low-Medium`) - Users praise: visually pleasing cursor highlight tool with adjustable zoom and sizing. - Standout: configurable cursor emphasis and zoom. - Caveat: at least one user called it buggy. - `myPoint Pro` (`Low-Medium`) - Users praise: longtime presenter-style cursor enhancement tool. - Standout: pointer emphasis for live explanation. - `FocusCursor` (`Low-Medium`) - Users praise: promising newcomer in `r/macapps` cursor-highlighting threads. - Standout: cursor focus plus a broader presentation-board direction. Representative sources: - [Any apps for highlighting / magnifying cursor on macOS?](https://reddit.com/r/macapps/comments/1qm96ep/any_apps_for_highlighting_magnifying_cursor_on/) - [Annotate: Draw and highlight anything on your screen](https://reddit.com/r/macapps/comments/1iwy7md/annotate_draw_and_highlight_anything_on_your/) - [Recommendation for a keyboard screen recording](https://reddit.com/r/macapps/comments/1ru9l85/recommendation_for_a_keyboard_screen_recording/) ### 6. Blur, Redaction, and Privacy - `Snagit` (`Medium`) - Users praise: strong annotation and step-capture utility, especially for documentation-heavy creators. - Standout: AI step capture, AI smart redact, scrolling capture, markup, recording, searchable library. - `Shottr` (`Medium-High`) - Users praise: fast, lightweight screenshot workflow with annotation, OCR, and pixelation. - Standout: beautiful screenshot backgrounds, OCR, object removal, pinning, scrolling captures, pay-what-you-want model. - `DataBlur` (`Low-Medium`) - Users praise: browser-side auto-blur for credentials and sensitive fields before you hit record. - Standout: pre-capture masking for browser-based technical tutorials. - Caveat: still emerging; treat as promising rather than battle-proven. - `ZeroBlur` (`Low-Medium`) - Users praise: worked better than manual post blur for at least one creator dealing with moving phone numbers in screen recordings. - Standout: browser-based masking for recurring web UI redaction. - `Privacy Shield` (`Low`) - Users praise: handy Chrome blur helper for quick browser-only censorship. - Standout: simple on-page blur actions during capture. - `Whiteout` (`Low`) - Users praise: quick redact / blur app for images. - Standout: fast markup-style redaction for stills. - `Blur Video` (`Low`) - Users praise: narrow, obvious utility for fast video blurring tasks. - Standout: dedicated blur-only workflow. - `Redacted` (`Low`) - Users praise: catches many fields automatically in browser recording scenarios. - Standout: auto-blur browser fields while recording. - Caveat: users also warned it can miss things, so trust but verify. Short practical takeaway: - For screenshots: `Shottr`, `Snagit`, `CleanShot X`, `Whiteout`. - For browser tutorials: `DataBlur`, `ZeroBlur`, `Privacy Shield`, `Redacted`. - For video after the fact: use tracked blur in `Final Cut Pro` or `DaVinci Resolve`. - For anything seriously sensitive: prefer black bars or solid blocks over soft blur. Representative sources: - [Looking for an app that easily lets you blur sensitive info in screenshots](https://reddit.com/r/macapps/comments/1c2bvgn/looking_for_an_app_that_easily_lets_you_blur/) - [How do you handle blurring passwords / API keys in tutorials?](https://reddit.com/r/NewTubers/comments/1r203hx/how_do_you_handle_blurring_passwordsapi_keys_in/) - [Best and fastest method for blur mask tracking text in screen recordings](https://reddit.com/r/davinciresolve/comments/1rfrlta/best_and_fastest_method_for_blur_mask_tracking/) - [Snagit official](https://www.techsmith.com/snagit.html) - [Shottr official](https://shottr.cc/) ### 7. Camera, Webcam, Live, and Teleprompters - `Camo Studio` (`Medium-High`) - Users praise: excellent way to turn an iPhone into a much better Mac camera and get more control than default webcam apps. - Standout: use phone, DSLR, action cam, or Continuity Camera source; scene templates; overlays; lower thirds; reframing; background control. - `Ecamm Live` (`Medium`) - Users praise: reliable Mac live-production tool for creator setups that outgrow simple webcam apps. - Standout: live switching and production depth for creators who do streams, podcasts, or polished live recordings. - `NotchPrompter` (`High`) - Users praise: one of the most genuinely loved new Mac-native tools in this research set. The notch placement and "invisible to recording" angle landed well. - Standout: voice-activated scrolling, notch or floating placement, hidden from screen recordings and conferencing, one-time supportable purchase, open source roots. - `PromptSmart Pro` (`Medium`) - Users praise: when VoiceTrack works, it is hard to imagine going back. - Standout: voice-follow scrolling, creator-focused prompter behavior. - Caveat: it also produced some of the sharpest negative anecdotes when scrolling failed. - `Elgato Prompter` (`High`) - Users praise: easiest physical teleprompter setup for many creators, especially if eye contact matters. - Standout: built-in display, drag any window onto it, Voice Sync, Stream Deck integration, good camera mounting options. - `Speakflow` (`Medium`) - Users praise: "sucks the least" was not glowing language, but it came from creators who had clearly tried many teleprompters. - Standout: online teleprompter with voice-activated scrolling and collaboration. - `BIGVU` (`Medium`) - Users praise: free teleprompter basics and broad all-in-one script / caption / eye-contact workflow. - Standout: teleprompter, AI subtitles, script help, eye-contact correction, scheduling. - `Teleprompter.com` (`Medium`) - Users praise: clean interface and easy speed control. - Standout: cross-device teleprompter workflow with editing and recording support. - `StoriesStudio` (`Low-Medium`) - Users praise: real time savings from iPhone/iPad teleprompt-and-record workflow. - Standout: teleprompter plus captioning on iOS. - `ShareSpeak` (`Low-Medium`) - Users praise: invisible AI teleprompter positioning for screencasters and screen shares. - Standout: Mac and Windows desktop teleprompter pitched specifically for screencasts. - `HighlightMe` (`Low`) - Users praise: came up specifically as a response to frustration with voice-scrolling teleprompters. - Standout: creator-built alternative in the teleprompt niche. Representative sources: - [Any good teleprompter apps for YouTube creators?](https://reddit.com/r/PartneredYoutube/comments/1lwjq7p/any_good_teleprompter_apps_for_youtube_creators/) - [NotchPrompter - free and open-source teleprompter for macOS](https://reddit.com/r/macapps/comments/1pfxucu/notchprompter_free_and_opensource_teleprompter/) - [Best webcam recording software to record YouTube videos on Mac?](https://reddit.com/r/MacOS/comments/1l6le60/best_webcam_recording_software_to_record_youtube/) - [Camo official](https://camo.com/studio) - [NotchPrompter official](https://notchprompter.com/) - [Elgato Prompter official](https://www.elgato.com/us/en/p/prompter) ### 8. Motion Graphics, Templates, Stock, and Music - `Apple Motion` (`Medium-High`) - Users praise: best when you want reusable Final Cut templates, lower thirds, and creator-friendly motion without full After Effects overhead. - Standout: titles, transitions, effects, rigs, replicators, behaviors, FCP template publishing. - `Adobe After Effects` (`Medium-High`) - Users praise: still the industry-standard motion-graphics answer when the work gets serious. - Standout: deepest ecosystem for kinetic type, graphic animation, and compositing. - Caveat: overkill for many screencast channels unless motion graphics become a major identity layer. - `MotionVFX` (`Medium`) - Users praise: useful plugin ecosystem for Final Cut creators. - Standout: FCP-focused graphics plugins and templates. - Caveat: price grumbling was common. - `FxFactory` (`Medium`) - Users praise: meaningful plugin leverage for Final Cut creators who want to extend the app quickly. - Standout: plugin marketplace / effects ecosystem for FCP and related apps. - `Envato Elements` (`High`) - Users praise: huge value when you need templates, motion assets, stock, fonts, and music in one place. - Standout: video templates, stock video, music, SFX, graphics, photos, fonts, AI asset tools. - `Artlist` (`Medium-High`) - Users praise: high-quality music and footage with creator-friendly licensing. - Standout: music, SFX, footage, templates, AI image and video tools. - `Epidemic Sound` (`High`) - Users praise: worry-free music licensing for monetized channels and an easy soundtrack workflow. - Standout: music + SFX library, direct license coverage, plugin support, creator-safe monetization story. - `Musicbed` (`Medium`) - Users praise: premium-feeling music selection when you care more about taste than sheer library size. - Standout: curated stock music licensing. - `Keynote` (`Medium`) - Users praise: underrated way to build simple lower thirds, intros, and explanatory graphics fast. - Standout: cheap / already-there design-to-video asset creation without learning AE. Representative sources: - [Apple Motion worth a try?](https://reddit.com/r/motiongraphics/comments/ru0w97/apple_motion_worth_a_try/) - [Alternatives to MotionVFX](https://reddit.com/r/finalcutpro/comments/1ihfb2i/alternatives_to_motion_vfx/) - [Is Envato Elements worth it?](https://reddit.com/r/NewTubers/comments/18cu68w/is_envato_elements_worth_it_should_i_get_it_for/) - [Epidemic, Artlist, Musicbed - who actually uses what?](https://reddit.com/r/videography/comments/1s1u4tc/epidemic_artlist_musicbed_in_2026_who_actually/) - [Motion official](https://support.apple.com/guide/motion/welcome/mac) - [Envato Elements official](https://www.envato.com/) - [Epidemic Sound official](https://www.epidemicsound.com/) ### 9. Thumbnails, Graphics, and Image Work - `Canva` (`High`) - Users praise: easiest, fastest, most common thumbnail tool for non-designers, and still good enough for many professionals. - Standout: templates, background remover, resize, captions, social post formats, brand kits. - Caveat: many creators hit a "Canva look" ceiling unless they develop stronger design taste. - `Adobe Photoshop` (`High`) - Users praise: still the premium answer when thumbnails are a competitive advantage, not an afterthought. - Standout: deep compositing, text control, layer workflows, pro-grade image manipulation. - `Photopea` (`High`) - Users praise: the best free Photoshop-like answer, repeatedly recommended in thumbnail threads. - Standout: browser-based, PSD-style layers, masks, blending, vector support, free. - `Affinity Photo 2` (`Medium-High`) - Users praise: one-time-purchase serious alternative to Photoshop for thumbnail creators. - Standout: RAW, retouching, layers, batch work, export options, Canva handoff. - `Pixelmator Pro` (`Medium-High`) - Users praise: Mac-friendly, easier than Photoshop, strong enough for thumbnails and channel visuals. - Standout: Apple-native image editing, AI tools, templates, typography, vector support. - `Figma` (`Medium`) - Users praise: less common than Canva for thumbnails, but useful for consistent lower thirds, layouts, and brand systems. - Standout: reusable layouts, scalable creator asset systems, collaboration. - `GIMP` (`Medium`) - Users praise: free and effective if you are willing to learn it. - Standout: no-cost full image editor. - `Krita` (`Low-Medium`) - Users praise: free and capable, especially for creators with a more illustration-heavy or artist workflow. - Standout: free creator-friendly image work beyond standard thumbnails. - `Procreate` (`Medium`) - Users praise: more freedom and hand-made feel on iPad for custom thumbnail art. - Standout: illustration-first workflow for distinctive thumbnails. - `Pikzels` (`Low-Medium`) - Users praise: AI-assisted thumbnail generation for inspiration and speed. - Standout: easy thumbnail ideation / generation. - Caveat: signal quality was mixed and some off-thread complaints existed. Representative sources: - [What software do you use to make your thumbnails?](https://reddit.com/r/NewTubers/comments/1hwwryy/what_software_do_you_use_to_make_your_thumbnails/) - [Canva or Photoshop, or something else for thumbnails?](https://reddit.com/r/SmallYoutubers/comments/1ns8uwg/canva_or_photoshop_or_something_else_for/) - [Canva official](https://www.canva.com/) - [Photopea official](https://www.photopea.com/) - [Affinity Photo official](https://www.affinity.studio/photo-editing-software) - [Pixelmator Pro official](https://www.apple.com/pixelmator-pro/) ### 10. Publishing, SEO, Analytics, Planning, and Repurposing - `TubeBuddy` (`Medium`) - Users praise: useful feature pile for YouTube workflow hygiene, especially thumbnails, SEO, and testing. - Standout: keyword explorer, SEO studio, title help, thumbnail analysis, A/B testing, channel insights. - Caveat: Reddit sentiment was split on whether it actually moves the needle enough to justify subscription cost. - `vidIQ` (`Medium`) - Users praise: idea generation, keyword research, AI coaching, and optimization dashboards. - Standout: keyword tools, ideas, outliers, AI coach, clip and script helpers. - Caveat: just like `TubeBuddy`, many creators called these tools optional rather than transformative. - `Opus Clip` (`High`) - Users praise: extremely fast long-form to short-form repurposing, decent editable captions, and sheer time savings. - Standout: long video to shorts, AI clipping, reframe, captions, audio enhance, social publishing. - Caveat: not free in any meaningful long-term way; manual craft still beats it for best clips. - `Repurpose.io` (`Low-Medium`) - Users praise: automation convenience for multi-platform posting. - Standout: distribution and republishing automation. - Caveat: multiple marketers complained it can hurt reach or feel overpriced versus manual workflows. - `Notion` (`High`) - Users praise: best all-around planning hub for channel operations, idea backlog, scripts, production tracking, and content calendars. - Standout: docs, projects, calendars, AI notes, custom workflows. - `YouTube Studio` (`High`) - Users praise: still the actual source of truth for publishing, channel health, audience feedback, and core analytics. - Standout: upload, edit metadata, comments, performance tracking, channel management. - `Social Blade` (`Medium`) - Users praise: quick comparative public stats and benchmarking. - Standout: public cross-channel analytics snapshots. - Caveat: use it for lightweight context, not as your core decision engine. - `ClipsMagic` (`Low-Medium`) - Users praise: transcript-based clipping and usable free entry point relative to other AI clippers. - Standout: direct clip picking from transcript, captions, 9:16 cropping, SRT output. - `ClipHog` (`Low`) - Users praise: responsive free-plan alternative in the AI clipping niche. - Standout: AI short creation templates and free entry point. - Caveat: still niche and lower-confidence. Representative sources: - [Have you guys tried YT SEO?](https://reddit.com/r/NewTubers/comments/1iri8vk/have_you_guys_tried_yt_seo/) - [Stuck around 3k subs, is TubeBuddy or VidIQ worth it?](https://reddit.com/r/SmallYoutubers/comments/1qaszsx/stuck_around_3k_subs_is_tubebuddy_or_vidiq/) - [Free OpusClip alternative?](https://reddit.com/r/podcasting/comments/1k81xns/free_opusclip_alternative/) - [TubeBuddy official](https://www.tubebuddy.com/) - [vidIQ official](https://vidiq.com/) - [Opus Clip official](https://www.opus.pro/) ## End-to-End Workflow Recommendations ### Workflow A: Best polished solo screencast channel 1. Planning - Use `Notion` for topics, titles, shot lists, thumbnail ideas, and publishing calendar. - Use `TubeBuddy` or `vidIQ` only for title/keyword sense-checking, not for deciding what your channel should be. 2. Script - Draft in `Notion`. - If you script tightly, use `NotchPrompter` or `PromptSmart Pro`. 3. Recording - Use `Screen Studio` for polished screen capture. - Use `Camo Studio` if you want iPhone-quality camera footage. - Use `Presentify` or `TuringShot` if you want live visual emphasis. 4. Editing - Finish in `Final Cut Pro` if you want speed and a Mac-native feel. 5. Audio - Run exported voice or final mix through `Hush` or `Auphonic`. 6. Transcription and captions - Use `MacWhisper` for transcript and searchability. - Use `Descript`, `VEED`, or `Submagic` if you want more stylized captions. 7. Thumbnail - Use `Canva` if you are fast-moving. - Upgrade to `Affinity Photo 2`, `Pixelmator Pro`, or `Photoshop` when thumbnail CTR becomes a bottleneck. 8. Publishing and repurposing - Publish in `YouTube Studio`. - Use `Opus Clip` for shorts only after you know what moments deserve clipping. ### Workflow B: Best flexible pro stack 1. Use `OBS Studio` when your videos need multiple scenes, layered audio, browser sources, or live switching. 2. Use `DaVinci Resolve Studio` when you want one app for edits, audio, subtitles, motion, and exports. 3. Use `MacWhisper` or `Descript` for transcript-first rough cuts. 4. Use `Auphonic` for final leveling and cleanup. 5. Use `Apple Motion` or `After Effects` only when your brand starts needing repeatable title packages or lower thirds. ### Workflow C: Best lean budget stack 1. Record with `QuickTime Player` or `CleanShot X`. 2. Edit in `DaVinci Resolve Free` or `iMovie`. 3. Clean audio in `Audacity`, then escalate to `Adobe Podcast` or `Auphonic` only when needed. 4. Transcribe with `MacWhisper`. 5. Make thumbnails in `Photopea` or `Canva`. 6. Track production in `Notion`. 7. Publish in `YouTube Studio`. ## What I Would Personally Buy First - `Final Cut Pro` if you want to optimize for speed on Mac and publish lots of videos. - `MacWhisper` if you want every recording to become searchable text and caption fodder. - `Auphonic` if your audio is inconsistent or you record in imperfect spaces. - `NotchPrompter` if you do talking-head intros or sponsor reads. - `Shottr` or `Snagit` if your channel uses lots of screenshots and step-by-step stills. - `Canva` or `Affinity Photo 2` depending on whether you optimize for speed or craft. ## Bottom Line - If your channel is mostly polished software demos, start with `Screen Studio`. - If you want full control and expect the channel to grow into a serious production system, start with `DaVinci Resolve` or `Final Cut Pro`. - If you speak a lot on camera, a teleprompter plus transcript system matters more than another flashy editor. - If you make technical tutorials, treat privacy tools as part of recording, not just part of editing. - If you ship often, audio consistency and thumbnail consistency will matter more than buying five different AI editors. ## [en] I follow the rabbit holes. URL: https://yigitkonur.com/ Kind: home I’m Yiğit, a curious hacker in San Francisco. I’ve been building online since 2005 — from Zeo and Wope to ThinkBuddy, with open-source tools and the occasional wonderfully unnecessary experiment along the way. ## [en] About URL: https://yigitkonur.com/about Kind: about ## About I build AI tools and write about what I learn along the way. ## Now Building ThinkBuddy, an AI productivity app for Mac. On the side, I ship open-source developer tools and occasionally speak at conferences. ## History - '23→: ThinkBuddy — LLM Council of Karpathy as a SaaS - '19-'23: Wope — Claude Code made for marketers, by marketers - '13-'19: Zeo Agency — digital marketing — grew the team to ~70 - '16-'19: Digitalzone — ran East Europe's biggest digital marketing conference — 500–600 attendees - '09-'12: Bilkent University — dropped out - '10: Weekend University — the moment I chose to commit to SEO instead of walking away - '05→: Building online — started first Turkish digital marketing blog at 15 ## Interests Building tools, AI agents, open source, mechanical keyboards, shipping things ## [en] Framework Atlas URL: https://yigitkonur.com/atlas/spec-driven-development Kind: atlas Curated coding-workflow tools with documented integration paths. ## [en] Basic Memory URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/basic-memory Kind: atlas Persistent Markdown notes and a searchable knowledge graph available through MCP. Keeping project decisions and research accessible across coding sessions. MCP access is required. Automatic session briefings require the additional Claude Code plugin; other clients have different integration surfaces. uv / uvx for local installation; local Markdown storage. claude-code: claude mcp add basic-memory -- uvx --prerelease=allow basic-memory mcp codex: Add to ~/.codex/config.toml: [mcp_servers.basic-memory] command = "uvx" args = ["--prerelease=allow", "basic-memory", "mcp"] cursor: Add to .cursor/mcp.json: {"mcpServers":{"basic-memory":{"command":"uvx","args":["--prerelease=allow","basic-memory","mcp"]}}} copilot: Follow the VS Code section in the upstream connection guide to configure the basic-memory stdio server. ## [en] Beads URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/beads-yegge Kind: atlas Give coding agents a persistent dependency-aware issue tracker and ready-to-work queue. Multi-session work where tasks, blockers, and ownership should survive context resets. Adds a local database and task-management workflow. Agent setup may write instructions and hooks into the project. The bd CLI and its documented Dolt storage setup. claude-code: npm install -g @beads/bd bd init bd setup claude codex: npm install -g @beads/bd bd init bd setup codex droid: npm install -g @beads/bd bd init bd setup factory cursor: npm install -g @beads/bd bd init bd setup cursor mux: npm install -g @beads/bd bd init bd setup mux ## [en] BMad Method URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/bmad-method Kind: atlas Guide product, architecture, development, and testing decisions through reusable delivery workflows. Work ranging from a clear change to a larger project needing explicit product and architecture context. Python-backed skills need uv. The installer offers additional integrations; only the harness setup explicitly verified here is listed. Node.js 20.12+, Python 3.10+, and uv for Python-backed skills. claude-code: npx bmad-method install --yes --modules bmm --tools claude-code ## [en] cc-sdd URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/cc-sdd Kind: atlas Carry approved specifications through task execution, test-first implementation, and reviewer checks. Long-running changes that need requirements, design, tasks, and implementation to stay connected. Claude Code and Codex integrations are stable; the other skills integrations are beta. Qwen uses the legacy command mode. Node.js / npx and the selected coding harness. claude-code: npx cc-sdd@latest --claude-skills codex: npx cc-sdd@latest --codex-skills cursor: npx cc-sdd@latest --cursor-skills copilot: npx cc-sdd@latest --copilot-skills windsurf: npx cc-sdd@latest --windsurf-skills opencode: npx cc-sdd@latest --opencode-skills gemini-cli: npx cc-sdd@latest --gemini-skills antigravity: npx cc-sdd@latest --antigravity qwen: npx cc-sdd@latest --qwen ## [en] Compound Engineering URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/compound-engineering Kind: atlas Connect planning and review with written lessons that inform the next change. Projects where repeated decisions and review findings should become reusable team knowledge. Some workflows use multiple agents and additional model calls. Pi requires its subagent companion package for those workflows; host command syntax differs. A supported plugin-capable harness; see host-specific requirements. claude-code: /plugin marketplace add EveryInc/compound-engineering-plugin /plugin install compound-engineering cursor: /add-plugin compound-engineering codex: codex plugin marketplace add EveryInc/compound-engineering-plugin codex plugin add compound-engineering@compound-engineering-plugin copilot: copilot plugin marketplace add EveryInc/compound-engineering-plugin copilot plugin install compound-engineering@compound-engineering-plugin droid: droid plugin marketplace add https://github.com/EveryInc/compound-engineering-plugin droid plugin install compound-engineering@compound-engineering-plugin qwen: qwen extensions install EveryInc/compound-engineering-plugin:compound-engineering opencode: Add to the plugin array in opencode.json: "compound-engineering@git+https://github.com/EveryInc/compound-engineering-plugin.git" pi: pi install git:github.com/EveryInc/compound-engineering-plugin pi install npm:pi-subagents oh-my-pi: omp plugin marketplace add EveryInc/compound-engineering-plugin omp plugin install compound-engineering@compound-engineering-plugin antigravity: agy plugin install https://github.com/EveryInc/compound-engineering-plugin devin-cli: devin plugins install EveryInc/compound-engineering-plugin grok-build: grok plugin marketplace add EveryInc/compound-engineering-plugin grok plugin install compound-engineering kimi: /plugins install https://github.com/EveryInc/compound-engineering-plugin cline: Enable Skills in Cline Settings, then clone EveryInc/compound-engineering-plugin and run .cline/scripts/install-skills.sh --project from that checkout. ## [en] OpenSpec URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/openspec Kind: atlas Keep proposals, specifications, designs, and implementation tasks together in the repository. Iterating on changes to an existing codebase while keeping requirements reviewable. Command names vary by harness. Codex uses skills only; cross-repository stores remain beta. Node.js 20.19.0 or newer. amazon-q: npm install -g @fission-ai/openspec@latest openspec init Select Amazon Q Developer (amazon-q) in the initializer. Use the invocation printed by setup. antigravity: npm install -g @fission-ai/openspec@latest openspec init Select Antigravity (antigravity) in the initializer. Use the invocation printed by setup. auggie: npm install -g @fission-ai/openspec@latest openspec init Select Auggie (auggie) in the initializer. Use the invocation printed by setup. bob: npm install -g @fission-ai/openspec@latest openspec init Select IBM Bob Shell (bob) in the initializer. Use the invocation printed by setup. claude-code: npm install -g @fission-ai/openspec@latest openspec init Select Claude Code (claude) in the initializer. Use the invocation printed by setup. cline: npm install -g @fission-ai/openspec@latest openspec init Select Cline (cline) in the initializer. Use the invocation printed by setup. command-code: npm install -g @fission-ai/openspec@latest openspec init Select Command Code (command-code) in the initializer. Use the invocation printed by setup. codeartsagent: npm install -g @fission-ai/openspec@latest openspec init Select CodeArts (codeartsagent) in the initializer. Use the invocation printed by setup. codebuddy: npm install -g @fission-ai/openspec@latest openspec init Select CodeBuddy (codebuddy) in the initializer. Use the invocation printed by setup. codex: npm install -g @fission-ai/openspec@latest openspec init Select Codex (codex) in the initializer. Use the invocation printed by setup. devin-desktop: npm install -g @fission-ai/openspec@latest openspec init Select Devin Desktop, formerly Windsurf (devin) in the initializer. Use the invocation printed by setup. forgecode: npm install -g @fission-ai/openspec@latest openspec init Select ForgeCode (forgecode) in the initializer. Use the invocation printed by setup. continue: npm install -g @fission-ai/openspec@latest openspec init Select Continue (continue) in the initializer. Use the invocation printed by setup. costrict: npm install -g @fission-ai/openspec@latest openspec init Select CoStrict (costrict) in the initializer. Use the invocation printed by setup. crush: npm install -g @fission-ai/openspec@latest openspec init Select Crush (crush) in the initializer. Use the invocation printed by setup. cursor: npm install -g @fission-ai/openspec@latest openspec init Select Cursor (cursor) in the initializer. Use the invocation printed by setup. droid: npm install -g @fission-ai/openspec@latest openspec init Select Factory Droid (factory) in the initializer. Use the invocation printed by setup. gemini-cli: npm install -g @fission-ai/openspec@latest openspec init Select Gemini CLI (gemini) in the initializer. Use the invocation printed by setup. copilot: npm install -g @fission-ai/openspec@latest openspec init Select GitHub Copilot (github-copilot) in the initializer. Use the invocation printed by setup. iflow: npm install -g @fission-ai/openspec@latest openspec init Select iFlow (iflow) in the initializer. Use the invocation printed by setup. junie: npm install -g @fission-ai/openspec@latest openspec init Select Junie (junie) in the initializer. Use the invocation printed by setup. kilo-code: npm install -g @fission-ai/openspec@latest openspec init Select Kilo Code (kilocode) in the initializer. Use the invocation printed by setup. kimi: npm install -g @fission-ai/openspec@latest openspec init Select Kimi Code (kimi) in the initializer. Use the invocation printed by setup. kiro: npm install -g @fission-ai/openspec@latest openspec init Select Kiro (kiro) in the initializer. Use the invocation printed by setup. lingma: npm install -g @fission-ai/openspec@latest openspec init Select Lingma (lingma) in the initializer. Use the invocation printed by setup. minimax-code: npm install -g @fission-ai/openspec@latest openspec init Select MiniMax Code (minimax-code) in the initializer. Use the invocation printed by setup. mistral-vibe: npm install -g @fission-ai/openspec@latest openspec init Select Mistral Vibe (vibe) in the initializer. Use the invocation printed by setup. oh-my-pi: npm install -g @fission-ai/openspec@latest openspec init Select Oh My Pi (oh-my-pi) in the initializer. Use the invocation printed by setup. opencode: npm install -g @fission-ai/openspec@latest openspec init Select OpenCode (opencode) in the initializer. Use the invocation printed by setup. pi: npm install -g @fission-ai/openspec@latest openspec init Select Pi (pi) in the initializer. Use the invocation printed by setup. codeassistant: npm install -g @fission-ai/openspec@latest openspec init Select SourceCraft Code Assistant for VS Code (codeassistant) in the initializer. Use the invocation printed by setup. qoder: npm install -g @fission-ai/openspec@latest openspec init Select Qoder (qoder) in the initializer. Use the invocation printed by setup. qwen: npm install -g @fission-ai/openspec@latest openspec init Select Qwen Code (qwen) in the initializer. Use the invocation printed by setup. rovodev: npm install -g @fission-ai/openspec@latest openspec init Select Rovo Dev CLI (rovodev) in the initializer. Use the invocation printed by setup. roo-code: npm install -g @fission-ai/openspec@latest openspec init Select Zoo Code (roocode) in the initializer. Use the invocation printed by setup. trae: npm install -g @fission-ai/openspec@latest openspec init Select Trae (trae) in the initializer. Use the invocation printed by setup. zed: npm install -g @fission-ai/openspec@latest openspec init Select Zed Agent (zed) in the initializer. Use the invocation printed by setup. zcode: npm install -g @fission-ai/openspec@latest openspec init Select ZCode (zcode) in the initializer. Use the invocation printed by setup. ## [en] RTK URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/rtk-token-killer Kind: atlas Compress supported command output before it enters the coding agent’s context. Workflows producing repetitive build, test, package-manager, or Git output. Compression can hide detail; inspect raw output when needed. Some harnesses use instructions rather than interception; Copilot CLI uses deny-and-suggest. The RTK binary, available through Homebrew, Cargo, or upstream releases. claude-code: Install the RTK binary using the upstream installation guide. Then run: rtk init -g copilot: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --copilot cursor: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --agent cursor gemini-cli: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --gemini codex: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --codex windsurf: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --agent windsurf cline: Install the RTK binary using the upstream installation guide. Then run: rtk init --agent cline roo-code: Install the RTK binary using the upstream installation guide. Then run: rtk init --agent cline opencode: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --opencode pi: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --agent pi mistral-vibe: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --agent vibe kilo-code: Install the RTK binary using the upstream installation guide. Then run: rtk init --agent kilocode antigravity: Install the RTK binary using the upstream installation guide. Then run: rtk init --agent antigravity kimi: Install the RTK binary using the upstream installation guide. Then run: rtk init --agent kimi droid: Install the RTK binary using the upstream installation guide. Then run: rtk init -g --agent droid ## [en] Spec Kit URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/spec-kit Kind: atlas Turn requirements into a specification, implementation plan, and concrete task sequence. Teams wanting explicit project principles and versioned planning artifacts before implementation. Multiple integrations have compatibility checks. Pi needs an additional MCP extension for task-to-issue functionality. Python, uv, Git, and a supported coding agent. alquimia: uv tool install specify-cli specify init your-project --integration alquimia amp: uv tool install specify-cli specify init your-project --integration amp antigravity: uv tool install specify-cli specify init your-project --integration agy auggie: uv tool install specify-cli specify init your-project --integration auggie claude-code: uv tool install specify-cli specify init your-project --integration claude cline: uv tool install specify-cli specify init your-project --integration cline codebuddy: uv tool install specify-cli specify init your-project --integration codebuddy codex: uv tool install specify-cli specify init your-project --integration codex command-code: uv tool install specify-cli specify init your-project --integration command-code cursor: uv tool install specify-cli specify init your-project --integration cursor-agent dsh: uv tool install specify-cli specify init your-project --integration dsh devin-cli: uv tool install specify-cli specify init your-project --integration devin docker-agent: uv tool install specify-cli specify init your-project --integration docker-agent droid: uv tool install specify-cli specify init your-project --integration droid firebender: uv tool install specify-cli specify init your-project --integration firebender forgecode: uv tool install specify-cli specify init your-project --integration forge gemini-cli: uv tool install specify-cli specify init your-project --integration gemini copilot: uv tool install specify-cli specify init your-project --integration copilot goose: uv tool install specify-cli specify init your-project --integration goose grok-build: uv tool install specify-cli specify init your-project --integration grok bob: uv tool install specify-cli specify init your-project --integration bob junie: uv tool install specify-cli specify init your-project --integration junie kilo-code: uv tool install specify-cli specify init your-project --integration kilocode kimi: uv tool install specify-cli specify init your-project --integration kimi kiro-cli: uv tool install specify-cli specify init your-project --integration kiro-cli lingma: uv tool install specify-cli specify init your-project --integration lingma mistral-vibe: uv tool install specify-cli specify init your-project --integration vibe muse: uv tool install specify-cli specify init your-project --integration muse oh-my-pi: uv tool install specify-cli specify init your-project --integration omp opencode: uv tool install specify-cli specify init your-project --integration opencode pi: uv tool install specify-cli specify init your-project --integration pi qoder: uv tool install specify-cli specify init your-project --integration qodercli qwen: uv tool install specify-cli specify init your-project --integration qwen rovodev: uv tool install specify-cli specify init your-project --integration rovodev shai: uv tool install specify-cli specify init your-project --integration shai tabnine: uv tool install specify-cli specify init your-project --integration tabnine trae: uv tool install specify-cli specify init your-project --integration trae zcode: uv tool install specify-cli specify init your-project --integration zcode zed: uv tool install specify-cli specify init your-project --integration zed ## [en] Superpowers URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/superpowers Kind: atlas A development workflow built from reusable planning, debugging, testing, and review skills. Projects that benefit from explicit design approval and a repeatable implementation process. Workflow guidance still depends on the agent following it. Each harness needs its own installation; companion subagent tools are optional on Pi. An installed coding harness with its plugin or skills facility. claude-code: /plugin install superpowers@claude-plugins-official codex: Open /plugins, search for Superpowers, and choose Install Plugin. In the app, use Plugins → Coding → Superpowers. cursor: /add-plugin superpowers gemini-cli: gemini extensions install https://github.com/obra/superpowers copilot: copilot plugin marketplace add obra/superpowers-marketplace copilot plugin install superpowers@superpowers-marketplace droid: droid plugin marketplace add https://github.com/obra/superpowers droid plugin install superpowers@superpowers opencode: Follow the repository’s .opencode/INSTALL.md guide for the native OpenCode plugin. pi: pi install git:github.com/obra/superpowers antigravity: agy plugin install https://github.com/obra/superpowers devin-cli: devin plugins install obra/superpowers grok-build: grok plugin install superpowers@xai-official kimi: /plugins install https://github.com/obra/superpowers ## [en] TDD Guard URL: https://yigitkonur.com/atlas/spec-driven-development/frameworks/tdd-guard Kind: atlas A Claude Code hook that checks test-first development and blocks unsupported implementation steps. Existing Claude Code projects that want test results to gate file changes. Requires a supported test framework and reporter setup. Upstream now recommends its successor, Probity, for new projects; TDD Guard remains maintained. Node.js 22+ and a supported test runner. claude-code: /plugin marketplace add nizos/tdd-guard /plugin install tdd-guard@tdd-guard /tdd-guard:setup ## [en] Things I've Built URL: https://yigitkonur.com/projects Kind: projects A mix of tools, experiments, and things I've shipped — mostly open-source, mostly in public. The GitHub profile has the full set: [github.com/yigitkonur](https://github.com/yigitkonur). ## Projects - ThinkBuddy: Native Mac AI app. LLM Council of Karpathy as a SaaS — run several frontier models side by side and let them debate your prompts. - Wope: AI-first SEO research. The new era of SEO, run by search & AI practitioners who've been doing it since 2005. - Zeo: Istanbul-based digital marketing agency. Founded 2013, ~45-person team today, still shipping — now reworking the agency around practical AI integration. ## 🤖 AI Agents & Orchestration - mcp-supersubagents: MCP server for spawning and managing parallel AI agents — Codex, Copilot, Claude backends with PAT rotation. - constellagent: Desktop app for running multiple AI agents in parallel — each gets its own terminal, editor, and git worktree. - cli-agent-toolkit: Universal component manager for AI coding assistants — MCP servers, skills, agents, commands across 29 clients. - agents-fleet: Single source of truth for 152 AI agents across Claude, Copilot, Codex, and Droid. - agents-claude: 152 specialized Claude Code agents — AI/ML, coding (41 languages), planning, testing, reviewing, ops. - agents-codex: 152-agent Codex fleet with matryoshka middleware, handoff system, and skills-as-context. ## 🔌 MCP Servers - mcp-supersubagents: Parallel AI sub-agent orchestration with provider fallback chain. - mcp-crash-think-tool: Cascaded reasoning with adaptive step handling (crash). - mcp-vibepowerpack: Interactive browser UI for AI assistants — radio buttons, checkboxes, multi-step wizards. - mcp-better-vibe-kanban: Kanban board MCP server. - mcp-parasut: Paraşüt accounting API via MCP. - mcp reference implementations (sse: https://github.com/yigitkonur/example-mcp-sse; stateful: https://github.com/yigitkonur/example-mcp-stateful) ## 🛠 Agent Skills - skills-by-yigitkonur: 14 skills for AI coding assistants — greptile config, Devin review, Copilot review, design extraction, MCP testing, Playwright CLI, Supastarter, Tauri devtools, snapshot-to-nextjs, research-powerpack, planning, mcp-use, mcp-cli, mcp-apps-builder. `npx skills add yigitkonur/skills-by-yigitkonur`. ## 🏗 Systems & Hardware - cli-fix-my-mic: Stop AirPods from stealing your Mac's microphone — CoreAudio daemon, zero CPU. - lib-osmo-ble: Reverse-engineered DJI Osmo Pocket 3 BLE — DUML binary protocol, gimbal control. - cli-batch-requester: 10K+ req/s batch API client for LLM endpoints — Rust, async, load-balanced. - proxy-http-forward: High-performance HTTP/HTTPS forward proxy in Go — fasthttp, Prometheus, zero fingerprint. - proxy-http-cache: Transparent HTTP cache proxy with Redis — deduplicate API calls and save costs. - tauri-plugin-key-intercept: Tauri plugin to intercept macOS system shortcuts via CGEventTap. ## 🤖 AI & LLM Tools - cli-continues: Resume any AI coding session in another tool — Claude Code, Copilot, Gemini, Codex, Cursor. - api-llm-ocr: PDF to Markdown using vision LLMs — tables, layouts, and structure preserved. - cli-localize: Agentic-optimized localization CLI — SRT, JSON, PO, XML, and ARB with token-aware batching. - cli-subtitle-linter: Netflix-compliant subtitle fixer — syllable-weighted timing and auto line balancing. - cli-bulk-caller: Bulk outbound calls with automatic Whisper transcription via Telnyx. - cli-finetune-dataset: Weighted category-balanced dataset builder for LLM fine-tuning. - notebook-hdbscan: Cluster text embeddings with DBSCAN/HDBSCAN — parameter sweep and Excel export. ## 🧰 CLI & Developer Tools - cli-repo-to-prompt: Export any codebase to a single LLM-ready markdown prompt. - cli-pr-consensus: Multi-reviewer PR consensus tool. - hooks-claude-code: Auto-approve Claude Code plan mode + optional Craft.do archival via hooks. - cli-killport: Kill whatever's holding a port hostage. - cli-killapp: Kill a macOS app by name from the terminal. - cli-scriptix: Local script runner and launcher. ## ⚙ n8n - tooling (cli: https://github.com/yigitkonur/n8n-cli; schema-generator: https://github.com/yigitkonur/n8n-schema-generator; workflow-validator: https://github.com/yigitkonur/n8n-workflow-validator; node-boilerplate: https://github.com/yigitkonur/n8n-node-boilerplate) - nodes & workflows (craft nodes: https://github.com/yigitkonur/n8n-nodes-craft; latitude nodes: https://github.com/yigitkonur/n8n-nodes-latitude; craft workflows: https://github.com/yigitkonur/n8n-workflows-craft; ffmpeg-stack: https://github.com/yigitkonur/n8n-ffmpeg-stack) ## 📦 Deno SDKs - deno sdks (serper: https://github.com/yigitkonur/sdk-deno-serper; clado: https://github.com/yigitkonur/sdk-deno-clado; latitude: https://github.com/yigitkonur/sdk-deno-latitude; mem0: https://github.com/yigitkonur/sdk-deno-mem0) ## 🍎 macOS & infra - macOS helpers (alfred-menubar-pin: https://github.com/yigitkonur/alfred-menubar-pin; cli-dataflow-decompress: https://github.com/yigitkonur/cli-dataflow-decompress) ## ✍ Writing & Conferences - Claude Code (auto-approve plans: /auto-approve-claude-code-plan-mode; ssh remote on Mac Mini: /claude-code-ssh-remote-on-mac-mini-via-orbstack; NFS vs SMB for dev envs: /nfs-is-faster-than-smb-for-mac-dev-envs; 1M context in Codex (one command): /gpt-5-4-already-has-the-1m-context-window) - Research reports (Claude Code statuslines compared: /research/claude-code-statuslines-compared; mac screencast / YouTube tooling: /research/mac-screencast-youtube-tooling-research) - Research threads (awesome-webmcp: https://github.com/webmcpnet/awesome-webmcp/; yandex ranking factors leak: https://www.reddit.com/r/TechSEO/comments/10neprk/yandex_ranking_factors_are_leaked_spreadsheet/; n8n system prompt: https://www.reddit.com/r/n8n/comments/1huce7n/teach_your_ai_to_use_n8n_code_node_js_expressions/; clickhouse benchmark: https://benchmark.clickhouse.com/) - Side projects (Pokémon Red WASM multiplayer: /pokemon-red-wasm-multiplayer; Atatürk 4K restoration: https://x.com/yigitkonur/status/1718687991248335045; Mechanical keyboard handbook: https://www.reddit.com/r/MechanicalKeyboards/comments/15dol50/the_mechanical_keyboard_enthusiasts_handbook_a/) - ClickHouse at seo.do: How we used ClickHouse to create lightning-fast experiences (watch: https://clickhouse.com/videos/how-we-used-clickhouse-to-create-lightning-fast-experiences-at-seodo) - Digitalzone Istanbul (claude + gpt tools '24: https://www.youtube.com/watch?v=a_OVqZlQT64; ai working culture '23: https://www.youtube.com/watch?v=dMb1q6yyTW4; prompt engineering '23: https://www.youtube.com/watch?v=11GoGouBY2Q; gpt api automation '23: https://www.youtube.com/watch?v=Zwv1BFW2nQ0; bigquery at scale '21: https://www.youtube.com/watch?v=y8On1RaT6Y4; ml for search '18: https://www.youtube.com/watch?v=fv5wO9Ue7mo; measuring digital '16: https://www.youtube.com/watch?v=HhrA9Me8JAQ) - Search'n Stuff Antalya (panel discussion '25: https://www.youtube.com/@searchnstuff/videos; sonnet artifacts '24: https://www.youtube.com/playlist?list=PL5WYuC1ob3wCbOGJqUQilOCoHs_7qb3px) - Brick Institute: Prompt engineering '24 (watch: https://www.youtube.com/watch?v=s876vM5SL_A) - Consultancy Days (ai for e-commerce '23: https://www.youtube.com/watch?v=TX0PIL9TIOs; search console '19: https://www.youtube.com/watch?v=Ou59MaqlmUM; seo & ppc '17: https://www.youtube.com/watch?v=dbNfqayHkV8) - brightonSEO London: APIs without code '17 (watch: https://www.youtube.com/watch?v=yEwMQ1LQXxk) - Podcast & YouTube (Yigit Konur's Curation (Spotify): https://open.spotify.com/show/0zm0HYhd9U0khbPAdX04bX; YouTube channel: https://www.youtube.com/@yigitkonur) ## [en] Research URL: https://yigitkonur.com/research Kind: research-index This section now focuses on real research reports instead of placeholder sample entries. Each report is meant to be durable, source-linked, and useful on its own. ## Utility links - Browse by Tag →: /research/t/comparison - Research Methodology →: /research/methodology ## [en] Research Methodology URL: https://yigitkonur.com/research/methodology Kind: research-methodology This page explains how research pages are assembled, sourced, and maintained in git. - every report lives in markdown or MDX - structured metadata is stored in frontmatter - related profiles, tags, FAQs, and sources stay queryable This content is localized by file and edited directly in git-backed MDX. ## [tr] Merakın peşinden gidiyorum. URL: https://yigitkonur.com/tr Kind: home Ben Yiğit, San Francisco’da yaşayan meraklı bir hacker’ım. 2005’ten beri internette bir şeyler yapıyorum — Zeo ve Wope’tan ThinkBuddy’ye, açık kaynak araçlardan arada sırada harika derecede gereksiz deneylere. ## [tr] Hakkında URL: https://yigitkonur.com/tr/about Kind: about ## Hakkında Yapay zeka araçları geliştiriyorum ve yolda öğrendiklerimi yazıyorum. ## Şimdi ThinkBuddy'yi geliştiriyorum — Mac için bir yapay zeka üretkenlik uygulaması. Yanında açık kaynak geliştirici araçları yapıyorum ve ara sıra konferanslarda konuşuyorum. ## Geçmiş - '23→: ThinkBuddy — SaaS olarak Karpathy'nin LLM Council'i - '19-'23: Wope — Pazarlamacılar tarafından, pazarlamacılar için yapılmış Claude Code - '13-'19: Zeo Agency — dijital pazarlama — ekibi ~70 kişiye büyüttüm - '16-'19: Digitalzone — Doğu Avrupa'nın en büyük dijital pazarlama konferansını yönettim — 500–600 katılımcı - '09-'12: Bilkent Üniversitesi — bıraktım - '10: Weekend University — SEO'dan vazgeçmek yerine tam gaz gitmeye karar verdiğim an - '05→: Online iş kurmak — 15 yaşında ilk Türk dijital pazarlama blogunu kurdum ## İlgi Alanları Araç geliştirme, Yapay zeka ajanları, açık kaynak, mekanik klavyeler, bir şeyler üretmek ## [tr] Projeler URL: https://yigitkonur.com/tr/projects Kind: projects Araç, deney ve shipped işlerden oluşan bir karışım — çoğu açık kaynak, çoğu public. GitHub profilinde tam set var: [github.com/yigitkonur](https://github.com/yigitkonur). ## Projeler - ThinkBuddy: Native Mac AI uygulaması. Karpathy'nin LLM Council pattern'i SaaS hâlinde — birkaç frontier model aynı prompt'u yan yana çözüyor. - Wope: AI-first SEO araştırma aracı. 2005'ten beri search yapanların — AI'ı sonradan keşfedenlerin değil — kurduğu yeni nesil SEO. - Zeo: İstanbul merkezli dijital pazarlama ajansı. 2013'te kuruldu, bugün ~45 kişi, hâlâ üretiyor — şimdi ajansı pratik AI entegrasyonu üstüne yeniden kuruyoruz. ## 🤖 AI Agent & Orchestration - mcp-supersubagents: Paralel AI agent spawn'lamak ve yönetmek için MCP server — Codex, Copilot, Claude backend'leri, PAT rotation ile. - constellagent: Paralel AI agent'ları çalıştırmak için desktop app — her agent kendi terminal, editor ve git worktree'sine sahip. - cli-agent-toolkit: AI coding asistanları için universal component manager — 29 client'ta MCP server, skill, agent, command. - agents-fleet: Claude, Copilot, Codex ve Droid için 152 AI agent — tek source of truth. - agents-claude: 152 specialized Claude Code agent'ı — AI/ML, coding (41 dil), planning, testing, reviewing, ops. - agents-codex: 152 agent'lı Codex filosu — matryoshka middleware, handoff sistemi ve skills-as-context. ## 🔌 MCP Server'lar - mcp-supersubagents: Provider fallback zinciri ile paralel AI sub-agent orchestration. - mcp-crash-think-tool: Adaptive step handling ile cascaded reasoning (crash). - mcp-vibepowerpack: AI asistanları için interactive browser UI — radio button, checkbox, multi-step wizard. - mcp-better-vibe-kanban: Kanban board MCP server. - mcp-parasut: Paraşüt muhasebe API'si MCP üzerinden. - mcp reference implementations (sse: https://github.com/yigitkonur/example-mcp-sse; stateful: https://github.com/yigitkonur/example-mcp-stateful) ## 🛠 Agent Skill'leri - skills-by-yigitkonur: AI coding asistanları için 14 skill — greptile config, Devin review, Copilot review, design extraction, MCP testing, Playwright CLI, Supastarter, Tauri devtools, snapshot-to-nextjs, research-powerpack, planning, mcp-use, mcp-cli, mcp-apps-builder. `npx skills add yigitkonur/skills-by-yigitkonur`. ## 🏗 Sistem & Donanım - cli-fix-my-mic: AirPods'un Mac mikrofonunu çalmasını engelle — CoreAudio daemon, sıfır CPU. - lib-osmo-ble: DJI Osmo Pocket 3 BLE'nin reverse-engineered hali — DUML binary protocol, gimbal control. - cli-batch-requester: LLM endpoint'leri için 10K+ req/s batch API client — Rust, async, load-balanced. - proxy-http-forward: Go'da yüksek performanslı HTTP/HTTPS forward proxy — fasthttp, Prometheus, sıfır fingerprint. - proxy-http-cache: Redis ile transparent HTTP cache proxy — API çağrılarını dedupe et, maliyetten tasarruf et. - tauri-plugin-key-intercept: CGEventTap üzerinden macOS sistem kısayollarını intercept eden Tauri plugin'i. ## 🤖 AI & LLM Araçları - cli-continues: Herhangi bir AI coding session'ını başka bir tool'da devam ettir — Claude Code, Copilot, Gemini, Codex, Cursor. - api-llm-ocr: Vision LLM'leriyle PDF → Markdown — tablo, layout ve yapı korunuyor. - cli-localize: Agent'lara göre optimize edilmiş localization CLI — SRT, JSON, PO, XML, ARB'da token-aware batching. - cli-subtitle-linter: Netflix uyumlu altyazı düzeltici — heceli timing, otomatik satır dengeleme. - cli-bulk-caller: Telnyx üzerinden otomatik Whisper transkripsiyonu ile toplu giden arama. - cli-finetune-dataset: LLM fine-tuning için weighted ve kategoride dengeli dataset builder. - notebook-hdbscan: DBSCAN/HDBSCAN ile text embedding clustering — parameter sweep, Excel export. ## 🧰 CLI & Developer Araçları - cli-repo-to-prompt: Tüm codebase'i tek bir LLM-ready markdown prompt'una export et. - cli-pr-consensus: Multi-reviewer PR consensus aracı. - hooks-claude-code: Claude Code plan mode'unu auto-approve et + opsiyonel Craft.do arşivleme hook'ları. - cli-killport: Port'u rehin tutan her ne varsa öldür. - cli-killapp: Terminal'den macOS app'ini isme göre kapat. - cli-scriptix: Local script runner ve launcher. ## ⚙ n8n - tooling (cli: https://github.com/yigitkonur/n8n-cli; schema-generator: https://github.com/yigitkonur/n8n-schema-generator; workflow-validator: https://github.com/yigitkonur/n8n-workflow-validator; node-boilerplate: https://github.com/yigitkonur/n8n-node-boilerplate) - nodes & workflows (craft nodes: https://github.com/yigitkonur/n8n-nodes-craft; latitude nodes: https://github.com/yigitkonur/n8n-nodes-latitude; craft workflows: https://github.com/yigitkonur/n8n-workflows-craft; ffmpeg-stack: https://github.com/yigitkonur/n8n-ffmpeg-stack) ## 📦 Deno SDK'ları - deno sdks (serper: https://github.com/yigitkonur/sdk-deno-serper; clado: https://github.com/yigitkonur/sdk-deno-clado; latitude: https://github.com/yigitkonur/sdk-deno-latitude; mem0: https://github.com/yigitkonur/sdk-deno-mem0) ## 🍎 macOS & infra - macOS helper'ları (alfred-menubar-pin: https://github.com/yigitkonur/alfred-menubar-pin; cli-dataflow-decompress: https://github.com/yigitkonur/cli-dataflow-decompress) ## ✍ Yazı & Konferans - Claude Code (plan onayını otomatikleştir: /auto-approve-claude-code-plan-mode; Mac Mini'de ssh remote: /claude-code-ssh-remote-on-mac-mini-via-orbstack; dev env için NFS vs SMB: /nfs-is-faster-than-smb-for-mac-dev-envs; Codex'te 1M context (tek komut): /gpt-5-4-already-has-the-1m-context-window) - Araştırma raporları (Claude Code statusline karşılaştırması: /research/claude-code-statuslines-compared; mac screencast / YouTube tooling: /research/mac-screencast-youtube-tooling-research) - Research thread'leri (awesome-webmcp: https://github.com/webmcpnet/awesome-webmcp/; Yandex ranking factors leak: https://www.reddit.com/r/TechSEO/comments/10neprk/yandex_ranking_factors_are_leaked_spreadsheet/; n8n system prompt: https://www.reddit.com/r/n8n/comments/1huce7n/teach_your_ai_to_use_n8n_code_node_js_expressions/; ClickHouse benchmark: https://benchmark.clickhouse.com/) - Yan projeler (Pokémon Red WASM multiplayer: /pokemon-red-wasm-multiplayer; Atatürk 4K restorasyon: https://x.com/yigitkonur/status/1718687991248335045; Mekanik klavye handbook: https://www.reddit.com/r/MechanicalKeyboards/comments/15dol50/the_mechanical_keyboard_enthusiasts_handbook_a/) - seo.do'da ClickHouse: Yıldırım hızında deneyimler için ClickHouse'u nasıl kullandık (izle: https://clickhouse.com/videos/how-we-used-clickhouse-to-create-lightning-fast-experiences-at-seodo) - Digitalzone İstanbul (claude + gpt tools '24: https://www.youtube.com/watch?v=a_OVqZlQT64; ai working culture '23: https://www.youtube.com/watch?v=dMb1q6yyTW4; prompt engineering '23: https://www.youtube.com/watch?v=11GoGouBY2Q; gpt api automation '23: https://www.youtube.com/watch?v=Zwv1BFW2nQ0; bigquery at scale '21: https://www.youtube.com/watch?v=y8On1RaT6Y4; ml for search '18: https://www.youtube.com/watch?v=fv5wO9Ue7mo; measuring digital '16: https://www.youtube.com/watch?v=HhrA9Me8JAQ) - Search'n Stuff Antalya (panel '25: https://www.youtube.com/@searchnstuff/videos; sonnet artifacts '24: https://www.youtube.com/playlist?list=PL5WYuC1ob3wCbOGJqUQilOCoHs_7qb3px) - Brick Institute: Prompt engineering '24 (izle: https://www.youtube.com/watch?v=s876vM5SL_A) - Consultancy Days (e-ticaret için ai '23: https://www.youtube.com/watch?v=TX0PIL9TIOs; search console '19: https://www.youtube.com/watch?v=Ou59MaqlmUM; seo & ppc '17: https://www.youtube.com/watch?v=dbNfqayHkV8) - brightonSEO London: APIs without code '17 (izle: https://www.youtube.com/watch?v=yEwMQ1LQXxk) - Podcast & YouTube (Yigit Konur'un Curation'ı (Spotify): https://open.spotify.com/show/0zm0HYhd9U0khbPAdX04bX; YouTube kanalı: https://www.youtube.com/@yigitkonur) ## [tr] Araştırmalar URL: https://yigitkonur.com/tr/research Kind: research-index Bu bölüm artık örnek içerikler yerine gerçek araştırma raporlarına odaklanıyor. Her rapor, tek başına da değerli olacak şekilde kaynaklı ve kalıcı biçimde hazırlanıyor. ## Yardımcı Bağlantılar - Etikete Göre Gezin →: /research/t/comparison - Araştırma Metodolojisi →: /research/methodology ## [tr] Research Methodology URL: https://yigitkonur.com/tr/research/methodology Kind: research-methodology Bu sayfa araştırma raporlarının nasıl hazırlandığını, kaynaklandığını ve git üzerinde nasıl bakım gördüğünü açıklıyor. - her rapor markdown veya MDX olarak yazılıyor - yapılandırılmış metadata frontmatter'da tutuluyor - ilgili profiller, tag'ler, FAQ ve kaynaklar sorgulanabilir kalıyor Bu içerik dosya bazında localize ediliyor ve doğrudan git-backed MDX olarak düzenleniyor. ## [tr] Yazılar URL: https://yigitkonur.com/tr/writing Kind: writing 4× Claude Code Max hala yetmiyor — gerçekten işe yarayan şeyler bunlar Warp cli-agent notification protokolünü reverse-engineer etmek Codex app ile remote SSH kullanmak Tip: Codex'te 1M context'i tek komutla aç Pokémon Red'i çok oyunculu paylaşımlı bir arcade'e dönüştürdüm — işte nasıl mac-to-mac dosya sistemi: NFS dev için native SMB'den hızlı using claude code's new native ssh remote on a mac mini / darwin Claude Code plan mode'u PermissionRequest ile auto-approve etmek ## [en] Writing URL: https://yigitkonur.com/writing Kind: writing running 4× Claude Code Max still isn't enough — here's what actually helps reverse-engineering Warp's cli-agent notification protocol using remote SSH with Codex app Tip: enable 1M context in Codex with one command I turned Pokémon Red into a shared multiplayer arcade — here's how mac-to-mac file system: NFS is faster than native SMB for dev env using claude code's new native ssh remote on a mac mini / darwin auto-approve Claude Code plan mode via PermissionRequest