<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Pramesh Shah</title>
    <description>The latest articles on Forem by Pramesh Shah (@pramesh77).</description>
    <link>https://forem.com/pramesh77</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3748180%2F10a8ce74-b0e9-4a1f-a5ab-5b7e52654599.jpg</url>
      <title>Forem: Pramesh Shah</title>
      <link>https://forem.com/pramesh77</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pramesh77"/>
    <language>en</language>
    <item>
      <title>Stop Alt-Tabbing. Meet Code Sensei: The AI Workflow Loop for Your Terminal.</title>
      <dc:creator>Pramesh Shah</dc:creator>
      <pubDate>Mon, 16 Feb 2026 06:59:47 +0000</pubDate>
      <link>https://forem.com/pramesh77/stop-alt-tabbing-meet-code-sensei-the-ai-workflow-loop-for-your-terminal-2d83</link>
      <guid>https://forem.com/pramesh77/stop-alt-tabbing-meet-code-sensei-the-ai-workflow-loop-for-your-terminal-2d83</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  I Built a Terminal That Catches SQL Injections, Reviews Your Code, and Maps Your Architecture — All With a Single Keypress, Powered by GitHub Copilot CLI
&lt;/h1&gt;




&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/prameshshah/codesensei" rel="noopener noreferrer"&gt;github.com/prameshshah/codesensei&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Here is a problem every developer has faced:&lt;/p&gt;

&lt;p&gt;You stare at a SQL injection vulnerability for an hour and never see it. You merge a conflict you did not fully understand. You commit code that a senior developer would flag in 30 seconds. You have zero idea what the architecture of a project you just inherited actually looks like.&lt;/p&gt;

&lt;p&gt;Security scanners are expensive. Senior reviewers are busy. Architecture diagrams are drawn once and never updated. And your linter has absolutely no idea what your code &lt;em&gt;actually does&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CodeSensei solves all of this — from your terminal — with a single keypress.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The Loophole Most Developers Miss
&lt;/h3&gt;

&lt;p&gt;Here is what I noticed: most developers treat GitHub Copilot CLI as a one-off chat interface — ask a question, get an answer, close it. That leaves 90% of the value on the table.&lt;/p&gt;

&lt;p&gt;The real power of &lt;code&gt;gh copilot -p&lt;/code&gt; is that it is a &lt;strong&gt;programmable AI engine&lt;/strong&gt; you can give a persona, a context, and a structured task. So instead of building another chat window, I built a &lt;strong&gt;keyboard-driven workflow engine&lt;/strong&gt; that runs 6 specialist AI personas — each one focused, opinionated, and ready on demand.&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;CodeSensei&lt;/strong&gt; — a 3-panel terminal application that gives every developer instant access to:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;Persona&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Devil Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Penetration tester — finds SQL injection, hardcoded secrets, command injection, weak cryptography&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Learn Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Patient teacher — explains any codebase in plain English&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Review Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Senior developer — full quality review with a 0–10 score and verdict&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Git Review&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Senior developer — reviews only your staged diff before you commit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Conflicts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Conflict resolver — explains both sides, recommends the correct resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;B&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Blueprint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Senior architect — instant full-project structure map for any language&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Select a file. Press a key. Get expert output in seconds. No browser. No context switching. No waiting for a colleague.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  What Makes It Different
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. It is a workflow engine, not a chatbot.&lt;/strong&gt;&lt;br&gt;
Each mode is a different specialist. Press &lt;code&gt;D&lt;/code&gt; to find vulnerabilities, press &lt;code&gt;R&lt;/code&gt; to score the quality, press &lt;code&gt;G&lt;/code&gt; to review what you are about to commit. One tool, multiple expert opinions, zero context switching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The UI never freezes.&lt;/strong&gt;&lt;br&gt;
Every AI call runs in a background thread via Textual workers. You can navigate the file tree and read previous results while Copilot is still running. Most CLI AI tools block the terminal entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Git Review is scoped to the file you selected.&lt;/strong&gt;&lt;br&gt;
Not all staged files — only the file you are looking at. When you are reviewing &lt;code&gt;auth.py&lt;/code&gt;, you get a review of &lt;code&gt;auth.py&lt;/code&gt;, not a 3,000-line diff dump.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Blueprint works on every language, instantly.&lt;/strong&gt;&lt;br&gt;
Python, JavaScript, TypeScript, Java, C#, Go, Rust, Ruby, PHP, Swift, Kotlin, C/C++ — plus CSS selectors, HTML structure, JSON keys, CSV columns, YAML keys. Pure local parsing, no AI call needed, renders in milliseconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. It works everywhere a terminal runs.&lt;/strong&gt;&lt;br&gt;
VS Code terminal, Vim split, SSH sessions, cloud dev boxes, GitHub Codespaces. One command: &lt;code&gt;python app.py /your/project&lt;/code&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/prameshshah/codesensei" rel="noopener noreferrer"&gt;github.com/prameshshah/codesensei&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/prameshshah/codesensei.git
&lt;span class="nb"&gt;cd &lt;/span&gt;codesensei
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
gh extension &lt;span class="nb"&gt;install &lt;/span&gt;github/gh-copilot
python app.py /path/to/your/project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Live Demo Sequence
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. python app.py /your/project
2. Select any file in the file tree
3. Press D  →  security vulnerability scan
4. Press R  →  code quality score (0–10)
5. Press B  →  instant full project blueprint (no file selection needed)
6. git add yourfile.py  (in a second terminal)
7. Press G  →  AI reviews only your staged changes
8. Press C on a file with merge conflicts  →  AI resolves it
9. Press L  →  plain English explanation of any file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Screenshot — Application Overview
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnej28fzagt64wvlb80v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnej28fzagt64wvlb80v0.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Screenshot — Devil Mode in Action
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7gfjqvgylr4tltcu8v6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7gfjqvgylr4tltcu8v6.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Screenshot — Blueprint Mode
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97jguok4q7zpt7id1lh4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97jguok4q7zpt7id1lh4.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Screenshot — Conflict Resolution Mode
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F681kvxz5xb55iwryxuj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F681kvxz5xb55iwryxuj3.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;Building CodeSensei completely changed how I think about what GitHub Copilot CLI actually is.&lt;/p&gt;

&lt;p&gt;Most people use &lt;code&gt;gh copilot suggest&lt;/code&gt; or &lt;code&gt;gh copilot explain&lt;/code&gt; — single-shot commands for one-off questions. But &lt;code&gt;gh copilot -p&lt;/code&gt; (the planner mode) is something entirely different. It is a &lt;strong&gt;fully programmable AI engine&lt;/strong&gt; you can give a persona, a codebase, and a specific mission.&lt;/p&gt;

&lt;p&gt;The breakthrough insight was this: &lt;strong&gt;the quality of the output is entirely determined by the specificity of the persona you give it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A generic prompt like &lt;em&gt;"review this code"&lt;/em&gt; gives a generic answer. But a prompt like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"You are a penetration tester with 10 years of red team experience. Your job is to find every exploitable vulnerability in this file. Be hostile. Be specific. Include line numbers. Rate each finding CRITICAL / HIGH / MEDIUM / LOW."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...gives you something that genuinely catches bugs you would miss.&lt;/p&gt;

&lt;p&gt;I built 6 of these specialist personas — each one tuned for a specific job. The result is a tool that feels less like a chat assistant and more like having a security team, a senior engineer, and an architect available on demand, 24/7, in your terminal.&lt;/p&gt;


&lt;h3&gt;
  
  
  Merge Conflict Resolution — The Problem Nobody Talks About
&lt;/h3&gt;

&lt;p&gt;Let me paint you a picture that every developer has lived through.&lt;/p&gt;

&lt;p&gt;It is Friday afternoon. You have been working on a feature branch for three days. You go to merge it into main. Git returns this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD (main branch)
def calculate_discount(user, cart):
    if user.is_premium:
        return cart.total * 0.20
    return 0
=======
def calculate_discount(user, cart, promo_code=None):
    if promo_code and promo_code.is_valid():
        return cart.total * promo_code.discount_rate
    return 0
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; feature/promo-codes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two developers touched the same function. One added a premium member discount. One added promo code support. Neither knew the other was working on it. Now you have a conflict — and here is the real problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You were not the one who wrote either version.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You are looking at code you did not write, in a function you do not fully understand, under pressure to resolve it correctly without breaking either feature. The wrong merge silently ships broken discount logic to production. Nobody notices until a customer complains.&lt;/p&gt;

&lt;p&gt;This happens every day on every team. And the standard tool for resolving it is reading both versions and guessing.&lt;/p&gt;

&lt;h3&gt;
  
  
  What CodeSensei Does
&lt;/h3&gt;

&lt;p&gt;Press &lt;code&gt;C&lt;/code&gt; on any file containing conflict markers. CodeSensei sends the entire file — markers and all — to GitHub Copilot with a specialist conflict resolver prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;⚡ CodeSensei — Conflict Resolution
Found 1 conflict(s) in file
─────────────────────────────────

CONFLICT 1 of 1

CURRENT (main):
  Applies a 20% discount for premium users.
  Simple flat-rate logic tied to user membership status.

INCOMING (feature/promo-codes):
  Applies a variable discount using a promo code object.
  Supports dynamic discount rates but ignores premium membership entirely.

THE PROBLEM:
  Both are valid features. Neither version preserves the other.
  A naive merge silently drops either premium discounts or promo code
  support. Your tests may not catch this.

RECOMMENDATION:
  Merge both. The correct resolution:

  def calculate_discount(user, cart, promo_code=None):
      discount = 0
      if user.is_premium:
          discount = cart.total * 0.20
      if promo_code and promo_code.is_valid():
          promo_discount = cart.total * promo_code.discount_rate
          discount = max(discount, promo_discount)
      return discount

  This preserves both features and applies whichever gives the customer
  the better deal — which is almost certainly the intended behaviour.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is not a guess. That is an AI that read both versions, understood the business intent behind each one, identified the silent failure mode, and gave you a merged version that preserves both features.&lt;/p&gt;




&lt;h3&gt;
  
  
  Git Review — Your Last Line of Defence Before the Commit
&lt;/h3&gt;

&lt;p&gt;Most code reviews happen after the code is merged. A pull request goes up, a colleague reviews it the next morning, and feedback arrives 18 hours after the code was written. By that point the developer has context-switched, forgotten why they made certain decisions, and has to mentally reload the entire change.&lt;/p&gt;

&lt;p&gt;CodeSensei's Git Review Mode flips this entirely.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Real World Scenario
&lt;/h3&gt;

&lt;p&gt;You have been working on &lt;code&gt;auth.py&lt;/code&gt;. You added JWT token validation and updated the login endpoint. You are ready to commit. Before you do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add auth.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select &lt;code&gt;auth.py&lt;/code&gt; in CodeSensei. Press &lt;code&gt;G&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;⚙ CodeSensei — Git Review
Staged diff of: auth.py
⏱ Response: 8.2s
─────────────────────────────────

REVIEWING: auth.py (staged diff only — 47 lines changed)

CRITICAL — Security Issue (Line 34):
  JWT token is being validated with algorithm="none" allowed in the
  decoder options. This is a known vulnerability — an attacker can
  forge a token by setting the algorithm to "none" and removing the
  signature. Your server will accept it as valid.

  Fix:
  jwt.decode(token, SECRET_KEY, algorithms=["HS256"])

HIGH — Missing Rate Limiting (Line 52):
  The /login endpoint has no rate limiting. An attacker can make
  unlimited login attempts. Add rate limiting before merging.

MEDIUM — Token Expiry Too Long (Line 28):
  JWT expiry set to 30 days. Standard is 15 minutes for access tokens
  with a separate refresh token. A stolen token is valid for a month.

SUGGESTION — Error Message Leaks Information (Line 61):
  "Invalid password for user {username}" reveals the username exists.
  Use a generic "Invalid credentials" message instead.

Quality Score: 5/10 — Needs Work
Verdict: Do not merge to main without addressing the CRITICAL issue.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You caught a JWT algorithm vulnerability &lt;strong&gt;before it reached the repository&lt;/strong&gt; — not in a PR review 18 hours later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Scoped to the Selected File?
&lt;/h3&gt;

&lt;p&gt;When you stage multiple files and run &lt;code&gt;git diff --staged&lt;/code&gt;, you get a wall of changes. The AI processes all of it, the output is unfocused, and the review becomes generic.&lt;/p&gt;

&lt;p&gt;CodeSensei only reviews the diff for the file you are looking at. One file. One focused review. One clear verdict.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Engineering Challenge
&lt;/h3&gt;

&lt;p&gt;The biggest technical challenge was making &lt;code&gt;gh copilot -p&lt;/code&gt; produce &lt;strong&gt;structured, deterministic output&lt;/strong&gt; instead of interactive responses. Copilot's planner mode is designed to be conversational — it reads files, asks follow-up questions, and confirms before acting. Great for interactive use, completely wrong for a TUI that needs silent structured output.&lt;/p&gt;

&lt;p&gt;The solution was &lt;strong&gt;inline code embedding&lt;/strong&gt; — sending actual code content directly in the prompt instead of a file path reference, combined with carefully crafted prompts that leave no room for follow-up questions.&lt;/p&gt;

&lt;p&gt;Conflict Mode uses: &lt;em&gt;"Do NOT ask follow-up questions — give me the resolution directly."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Blueprint Mode bypasses Copilot entirely for the structure diagram — pure local AST parsing renders instantly regardless of project size. The AI is only called when the user explicitly needs architectural analysis at the file level.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Work — AI Provider Fallback System
&lt;/h2&gt;

&lt;p&gt;Here is the honest limitation of any tool built on a single AI provider: &lt;strong&gt;quotas run out.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub Copilot gives you a monthly allocation of premium requests. Power users — the exact developers who would use CodeSensei most heavily — are the ones most likely to hit that limit mid-session. Right now, when that happens, you see a 402 error and the tool stops. That is unacceptable for a professional development tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Vision
&lt;/h3&gt;

&lt;p&gt;The next major version of CodeSensei implements an &lt;strong&gt;intelligent AI provider fallback chain&lt;/strong&gt; — when one provider is unavailable, it automatically routes to the next best option with zero user intervention.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Every AI request flows through a provider router:

┌──────────────────────────────────────────────────────────┐
│                     Provider Router                       │
│                                                          │
│  1. GitHub Copilot CLI    ← always tried first           │
│           │                                              │
│           ▼  402 quota exhausted / unavailable           │
│  2. Ollama (local)        ← free, offline, fully private │
│           │                                              │
│           ▼  not installed                               │
│  3. Groq API              ← free tier, fastest inference │
│           │                                              │
│           ▼  no API key configured                       │
│  4. Google Gemini         ← generous free tier           │
│           │                                              │
│           ▼  no API key configured                       │
│  5. OpenAI API            ← paid, universal fallback     │
└──────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same 6 specialist prompts — Devil Mode, Learn, Review, Git Review, Conflicts, Blueprint — would be sent to whichever provider is available. The results panel would show which provider responded:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🔥 CodeSensei — Devil Mode
Provider: Ollama (llama3.2) — Copilot quota reached, using local fallback
⏱ Response: 2.1s
─────────────────────────────────
[findings here — identical format, different engine]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why This Architecture Matters
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Privacy-first by design.&lt;/strong&gt;&lt;br&gt;
Ollama runs entirely on your local machine. No code ever leaves your network. For developers working on proprietary or sensitive codebases, this is not a nice-to-have — it is a compliance requirement. A tool that routes to a local model when Copilot is unavailable is a tool that enterprises can actually deploy at scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Always-on reliability.&lt;/strong&gt;&lt;br&gt;
A development tool that stops working when an API quota runs out is not a professional tool — it is a prototype. The fallback chain means CodeSensei keeps working through quota exhaustion, network issues, and API outages. The workflow never breaks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost-aware routing.&lt;/strong&gt;&lt;br&gt;
The router knows which providers are free (Ollama, Groq free tier), which are paid (OpenAI), and routes to the cheapest available option first. Developers should not pay for AI inference when a free local model can do the same job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Same output format regardless of provider.&lt;/strong&gt;&lt;br&gt;
Every provider uses identical prompt templates and output parsing. Whether the response comes from Copilot, Ollama, or Gemini — the results panel looks exactly the same. The developer never thinks about which AI is running underneath.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Broader Vision
&lt;/h3&gt;

&lt;p&gt;CodeSensei started as a tool that orchestrates GitHub Copilot CLI into a structured workflow engine. The fallback system extends that vision: &lt;strong&gt;the workflow should be resilient, not dependent on any single provider.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The six specialist personas — penetration tester, teacher, senior developer, git reviewer, conflict resolver, architect — are the product. The AI provider is the engine. And like any well-engineered system, the engine should be swappable without the user ever noticing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Planned Features
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Key&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Export Mode&lt;/td&gt;
&lt;td&gt;&lt;code&gt;E&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save any analysis result as a &lt;code&gt;.md&lt;/code&gt; file for documentation or PR descriptions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;History Mode&lt;/td&gt;
&lt;td&gt;&lt;code&gt;H&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Browse previous analysis results within the session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trace Mode&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toggle full prompt visibility for learning and transparency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Search&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter the file tree as you type for large projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team Report&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Share a structured CodeSensei analysis report across a team&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;&lt;em&gt;Built with Python · Textual · GitHub Copilot CLI&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
