<?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>DEV Community: Suhaib Bin Younis</title>
    <description>The latest articles on DEV Community by Suhaib Bin Younis (@suhaibbinyounis).</description>
    <link>https://dev.to/suhaibbinyounis</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%2F3371242%2F339449a7-63f7-4e38-83fb-fa1d8db3c2d8.jpeg</url>
      <title>DEV Community: Suhaib Bin Younis</title>
      <link>https://dev.to/suhaibbinyounis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suhaibbinyounis"/>
    <language>en</language>
    <item>
      <title>I Built a VS Code Extension That Turns GitHub Copilot Into a Full OpenAI-Compatible API</title>
      <dc:creator>Suhaib Bin Younis</dc:creator>
      <pubDate>Sun, 21 Dec 2025 08:22:49 +0000</pubDate>
      <link>https://dev.to/suhaibbinyounis/i-built-a-vs-code-extension-that-turns-github-copilot-into-a-full-openai-compatible-api-21bn</link>
      <guid>https://dev.to/suhaibbinyounis/i-built-a-vs-code-extension-that-turns-github-copilot-into-a-full-openai-compatible-api-21bn</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;I was paying for too many AI services.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot: $10/month&lt;/li&gt;
&lt;li&gt;OpenAI API: $50-100/month&lt;/li&gt;
&lt;li&gt;ChatGPT Plus: $20/month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One day I realized something obvious: Copilot uses GPT-4. I'm already paying for access to one of the best language models. I just couldn't use it outside of VS Code's autocomplete.&lt;/p&gt;

&lt;p&gt;So I fixed that.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Copilot API Gateway&lt;/strong&gt; — a VS Code extension that exposes your Copilot subscription as a local HTTP server.&lt;/p&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%2F2qhgtwud2zulzc24wyw6.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%2F2qhgtwud2zulzc24wyw6.png" alt="GitHub Copilot API Gateway"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It implements three API formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI (&lt;code&gt;/v1/chat/completions&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Anthropic (&lt;code&gt;/v1/messages&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Google Gemini (&lt;code&gt;/v1beta/models/:model:generateContent&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any tool that works with these APIs now works with your Copilot subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For Individual Developers
&lt;/h3&gt;

&lt;p&gt;You no longer need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pay for OpenAI API credits to test LangChain&lt;/li&gt;
&lt;li&gt;Set up Ollama and download 40GB models&lt;/li&gt;
&lt;li&gt;Configure local inference with LM Studio&lt;/li&gt;
&lt;li&gt;Manage API keys across different services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just point your code at &lt;code&gt;http://127.0.0.1:3030/v1&lt;/code&gt; and it works.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Teams and Enterprises
&lt;/h3&gt;

&lt;p&gt;The math is simple:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Without This&lt;/th&gt;
&lt;th&gt;With This&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$10 Copilot + $50-200 API costs&lt;/td&gt;
&lt;td&gt;$10 Copilot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Per developer, per month&lt;/td&gt;
&lt;td&gt;Per developer, per month&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a team of 50, that's potentially &lt;strong&gt;$2,500-10,000/month in savings&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install from VS Code Marketplace&lt;/span&gt;
ext &lt;span class="nb"&gt;install &lt;/span&gt;suhaibbinyounis.github-copilot-api-vscode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Or search "GitHub Copilot API Gateway" in VS Code.&lt;/p&gt;
&lt;h3&gt;
  
  
  Start the Server
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open the Copilot API sidebar&lt;/li&gt;
&lt;li&gt;Click "Start Server"&lt;/li&gt;
&lt;li&gt;Server runs at &lt;code&gt;http://127.0.0.1:3030&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Use It
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://127.0.0.1:3030/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not-needed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-4o&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;That's it. Your existing OpenAI code works unchanged.&lt;/p&gt;
&lt;h2&gt;
  
  
  Framework Integrations
&lt;/h2&gt;
&lt;h3&gt;
  
  
  LangChain
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain_openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ChatOpenAI&lt;/span&gt;

&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ChatOpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://127.0.0.1:3030/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not-needed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain recursion&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  LlamaIndex
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;llama_index.llms.openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_base&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://127.0.0.1:3030/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not-needed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  AutoGPT / CrewAI / Any Agent
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_BASE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://127.0.0.1:3030/v1
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;not-needed

&lt;span class="c"&gt;# Now run your agent&lt;/span&gt;
python agent.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Built-in AI Apps
&lt;/h2&gt;

&lt;p&gt;The extension also includes purpose-built AI applications:&lt;/p&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%2F3owmnxb8mskqvnotra69.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%2F3owmnxb8mskqvnotra69.png" alt="Apps Hub"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Playwright Test Generator&lt;/strong&gt; — Describe tests in English, get complete projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Review Assistant&lt;/strong&gt; — AI feedback on your diffs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit Message Generator&lt;/strong&gt; — Semantic commits from staged changes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation Generator&lt;/strong&gt; — Auto-docs for any codebase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These run directly in VS Code. No external tools needed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Security Features
&lt;/h2&gt;

&lt;p&gt;This isn't a toy. It includes production-ready security:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP allowlisting&lt;/li&gt;
&lt;li&gt;Bearer token authentication&lt;/li&gt;
&lt;li&gt;Rate limiting&lt;/li&gt;
&lt;li&gt;Request payload limits&lt;/li&gt;
&lt;li&gt;Automatic data redaction in logs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Configure via VS Code settings:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"githubCopilotApi.server.apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-secret"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"githubCopilotApi.server.ipAllowlist"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"192.168.1.0/24"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"githubCopilotApi.server.rateLimitPerMinute"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  API Documentation
&lt;/h2&gt;

&lt;p&gt;Full Swagger UI included at &lt;code&gt;/docs&lt;/code&gt;:&lt;/p&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%2Ftptnr5ilml807380j9q0.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%2Ftptnr5ilml807380j9q0.png" alt="Swagger Documentation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Source Code
&lt;/h2&gt;

&lt;p&gt;Everything is open source:&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/suhaibbinyounis" rel="noopener noreferrer"&gt;
        suhaibbinyounis
      &lt;/a&gt; / &lt;a href="https://github.com/suhaibbinyounis/github-copilot-api-vscode" rel="noopener noreferrer"&gt;
        github-copilot-api-vscode
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Unlock GitHub Copilot as a local API Gateway. Use Copilot with Cursor, LangChain, and any OpenAI-compatible tool.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/suhaibbinyounis/github-copilot-api-vscode/media/icon.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fsuhaibbinyounis%2Fgithub-copilot-api-vscode%2Fmedia%2Ficon.png" alt="GitHub Copilot API Gateway" width="128" height="128"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;GitHub Copilot API Gateway&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;strong&gt;Use GitHub Copilot, Gemini, Ollama &amp;amp; any VS Code AI — like any other API.&lt;/strong&gt;&lt;br&gt;
  One extension. Zero API keys. Auto-discovers every model. Works with LangChain, Cursor, Aider, and 50+ tools
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=suhaibbinyounis.github-copilot-api-vscode" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/71606fce2b09dacd1c1f660a48391cb5e43884ddaf1aa74fbfb6442f72a4c980/68747470733a2f2f696d672e736869656c64732e696f2f76697375616c2d73747564696f2d6d61726b6574706c6163652f762f73756861696262696e796f756e69732e6769746875622d636f70696c6f742d6170692d7673636f64653f7374796c653d666f722d7468652d6261646765266c6f676f3d76697375616c2d73747564696f2d636f6465266c6f676f436f6c6f723d7768697465266c6162656c3d5653253230436f6465" alt="VS Code Marketplace"&gt;
  &lt;/a&gt;
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=suhaibbinyounis.github-copilot-api-vscode" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/9979e6c67d46d550d93c5b142d0e00aee423fb6f8424aa930ee5d4de01f3d4bf/68747470733a2f2f696d672e736869656c64732e696f2f76697375616c2d73747564696f2d6d61726b6574706c6163652f692f73756861696262696e796f756e69732e6769746875622d636f70696c6f742d6170692d7673636f64653f7374796c653d666f722d7468652d6261646765266c6f676f3d76697375616c2d73747564696f2d636f6465266c6f676f436f6c6f723d7768697465266c6162656c3d496e7374616c6c73" alt="VS Code Installs"&gt;
  &lt;/a&gt;
  &lt;a href="https://open-vsx.org/extension/suhaibbinyounis/github-copilot-api-vscode" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/74a57b55c75a477ab3fea4258e5c4f7a604679ed65231c0ed1cebd4a889cd3f3/68747470733a2f2f696d672e736869656c64732e696f2f6f70656e2d7673782f762f73756861696262696e796f756e69732f6769746875622d636f70696c6f742d6170692d7673636f64653f7374796c653d666f722d7468652d6261646765266c6f676f3d65636c697073652d696465266c6f676f436f6c6f723d7768697465266c6162656c3d4f70656e253230565358" alt="Open VSX"&gt;
  &lt;/a&gt;
  &lt;a href="https://open-vsx.org/extension/suhaibbinyounis/github-copilot-api-vscode" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/727ce0a47142f3a22cecc5178193860d492886bf198d45f5a028d1f769bdba2c/68747470733a2f2f696d672e736869656c64732e696f2f6f70656e2d7673782f64742f73756861696262696e796f756e69732f6769746875622d636f70696c6f742d6170692d7673636f64653f7374796c653d666f722d7468652d6261646765266c6f676f3d65636c697073652d696465266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473" alt="Open VSX Downloads"&gt;
  &lt;/a&gt;
  &lt;a href="https://github.com/suhaibbinyounis/github-copilot-api-vscode/stargazers" rel="noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/4422e65cc30cc481b3247f1afa1c6a229c4fa75ad391e02be29f3a569f406779/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f73756861696262696e796f756e69732f6769746875622d636f70696c6f742d6170692d7673636f64653f7374796c653d666f722d7468652d6261646765266c6f676f3d67697468756226636f6c6f723d79656c6c6f77" alt="GitHub Stars"&gt;
  &lt;/a&gt;
  &lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/608c8dfda488178950ce502d7697514db3a6a712579327ed90b9b594260f6355/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e7376673f7374796c653d666f722d7468652d6261646765" alt="License: MIT"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/90dbb18d6dfd63d40c43dba2d581ddb0baef27a62ea4025f46190859b3b1c03e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e41492d3431323939313f7374796c653d666c61742d737175617265266c6f676f3d6f70656e6169266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/90dbb18d6dfd63d40c43dba2d581ddb0baef27a62ea4025f46190859b3b1c03e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e41492d3431323939313f7374796c653d666c61742d737175617265266c6f676f3d6f70656e6169266c6f676f436f6c6f723d7768697465" alt="OpenAI"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3c8f0a023ccb41c33bd4041c80b8eee24849f5f66af0aabc1c463b53332ef338/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f416e7468726f7069632d3139313931393f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/3c8f0a023ccb41c33bd4041c80b8eee24849f5f66af0aabc1c463b53332ef338/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f416e7468726f7069632d3139313931393f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963266c6f676f436f6c6f723d7768697465" alt="Anthropic"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/48e467bf95f8246056f51fda8a3ce59f67e21f80bd81f88a7464c174b8ee9db3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476f6f676c652d3432383546343f7374796c653d666c61742d737175617265266c6f676f3d676f6f676c65266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/48e467bf95f8246056f51fda8a3ce59f67e21f80bd81f88a7464c174b8ee9db3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476f6f676c652d3432383546343f7374796c653d666c61742d737175617265266c6f676f3d676f6f676c65266c6f676f436f6c6f723d7768697465" alt="Google"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/16853ec08c549849c2d4b3f980743656ee7c5c23b89da3ff1908b929aff9941d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6574612d3034363744463f7374796c653d666c61742d737175617265266c6f676f3d6d657461266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/16853ec08c549849c2d4b3f980743656ee7c5c23b89da3ff1908b929aff9941d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6574612d3034363744463f7374796c653d666c61742d737175617265266c6f676f3d6d657461266c6f676f436f6c6f723d7768697465" alt="Meta"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2324cd4dcc8866bac1b24a26a77677bd7abc4569b7dbe9fd5b03e8decaf3c4e2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f6c6c616d612d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d6f6c6c616d61266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/2324cd4dcc8866bac1b24a26a77677bd7abc4569b7dbe9fd5b03e8decaf3c4e2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f6c6c616d612d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d6f6c6c616d61266c6f676f436f6c6f723d7768697465" alt="Ollama"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/suhaibbinyounis/github-copilot-api-vscode/demo.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fsuhaibbinyounis%2Fgithub-copilot-api-vscode%2Fdemo.gif" alt="GitHub Copilot API Gateway Demo" width="800"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ Quick Start&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 1. Install from VS Code Marketplace (search "GitHub Copilot API Gateway")&lt;/span&gt;
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 2. Click "Start Server" in the sidebar&lt;/span&gt;
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 3. Done. Your local API is ready.&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Use it like OpenAI:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-python notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s1"&gt;openai&lt;/span&gt; &lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-v"&gt;OpenAI&lt;/span&gt;

&lt;span class="pl-s1"&gt;client&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;OpenAI&lt;/span&gt;(
    &lt;span class="pl-s1"&gt;base_url&lt;/span&gt;&lt;span class="pl-c1"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;"http://127.0.0.1:3030/v1"&lt;/span&gt;,
    &lt;span class="pl-s1"&gt;api_key&lt;/span&gt;&lt;span class="pl-c1"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;"anything"&lt;/span&gt;  &lt;span class="pl-c"&gt;# No real API key needed&lt;/span&gt;
)

&lt;span class="pl-s1"&gt;response&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-s1"&gt;client&lt;/span&gt;.&lt;span class="pl-c1"&gt;chat&lt;/span&gt;.&lt;span class="pl-c1"&gt;completions&lt;/span&gt;.&lt;span class="pl-c1"&gt;create&lt;/span&gt;(
    &lt;span class="pl-s1"&gt;model&lt;/span&gt;&lt;span class="pl-c1"&gt;=&lt;/span&gt;&lt;span class="pl-s"&gt;"gpt-4o"&lt;/span&gt;,
    &lt;span class="pl-s1"&gt;messages&lt;/span&gt;&lt;span class="pl-c1"&gt;=&lt;/span&gt;[{&lt;span class="pl-s"&gt;"role"&lt;/span&gt;: &lt;span class="pl-s"&gt;"user"&lt;/span&gt;, &lt;span class="pl-s"&gt;"content"&lt;/span&gt;: &lt;span class="pl-s"&gt;"Hello!"&lt;/span&gt;}]
)&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;🔒 &lt;strong&gt;Your data stays local.&lt;/strong&gt; This extension runs entirely on your machine — no third-party servers, no telemetry, no data collection. The full source code is available on &lt;a href="https://github.com/suhaibbinyounis/github-copilot-api-vscode" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; for you to…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/suhaibbinyounis/github-copilot-api-vscode" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ext &lt;span class="nb"&gt;install &lt;/span&gt;suhaibbinyounis.github-copilot-api-vscode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or visit the &lt;a href="https://marketplace.visualstudio.com/items?itemName=suhaibbinyounis.github-copilot-api-vscode" rel="noopener noreferrer"&gt;VS Code Marketplace&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;If this is useful, consider starring the repo. Questions or feedback? Drop a comment below.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>vscode</category>
      <category>openai</category>
    </item>
    <item>
      <title>Introducing notes.suhaib.in — A Simple Space to Learn in Public</title>
      <dc:creator>Suhaib Bin Younis</dc:creator>
      <pubDate>Sun, 20 Jul 2025 04:46:40 +0000</pubDate>
      <link>https://dev.to/suhaibbinyounis/introducing-notessuhaibin-a-simple-space-to-learn-in-public-2mfe</link>
      <guid>https://dev.to/suhaibbinyounis/introducing-notessuhaibin-a-simple-space-to-learn-in-public-2mfe</guid>
      <description>&lt;p&gt;I built &lt;a href="https://notes.suhaib.in" rel="noopener noreferrer"&gt;notes.suhaib.in&lt;/a&gt; as a kind of digital scratchpad — a place to log ideas, small experiments, debugging wins, and things I’m still wrapping my head around. It’s not a blog. It’s not polished. It’s just my stream of working thoughts as I build and learn.&lt;/p&gt;

&lt;p&gt;The idea came from a simple frustration: we often wait too long to share what we’re learning because it’s not "done." But dev work is rarely ever done — we’re always evolving, pivoting, refactoring. So I figured... why not make the note-taking part public too?&lt;/p&gt;

&lt;p&gt;The content you'll find there is raw — some of it’s half-baked, and some of it’s just breadcrumbs for future posts. I jot stuff like:&lt;/p&gt;

&lt;p&gt;Quick tech notes (things I forget and have to Google again)&lt;br&gt;
Setup guides I wish I’d had earlier&lt;br&gt;
Snippets from AI/ML experiments that didn’t make it into full articles&lt;/p&gt;

&lt;p&gt;Stuff I’m testing with tools like Bun, LangChain, Supabase, etc.&lt;br&gt;
It’s built for speed. I wanted a frictionless way to publish without worrying about structure or SEO. Just write and post. That’s it.&lt;br&gt;
My hope is that it helps other devs — even if it’s just one line that solves your issue or sparks an idea.&lt;/p&gt;

&lt;p&gt;Check it out if you’re into that kind of vibe: &lt;a href="https://notes.suhaib.in" rel="noopener noreferrer"&gt;notes.suhaib.in&lt;/a&gt;. And if you’ve got a similar space or want to build one, let me know — I’d love to see it.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
