<?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: Nikesh Sundar </title>
    <description>The latest articles on DEV Community by Nikesh Sundar  (@nikeshsundar).</description>
    <link>https://dev.to/nikeshsundar</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%2F3824753%2F22c3ddfe-97ba-4fbb-8f64-c81f626d71a4.png</url>
      <title>DEV Community: Nikesh Sundar </title>
      <link>https://dev.to/nikeshsundar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nikeshsundar"/>
    <language>en</language>
    <item>
      <title>I built a CLI that migrates your JS codebase to TypeScript automatically using AI</title>
      <dc:creator>Nikesh Sundar </dc:creator>
      <pubDate>Sat, 28 Mar 2026 12:17:55 +0000</pubDate>
      <link>https://dev.to/nikeshsundar/i-built-a-cli-that-migrates-your-js-codebase-to-typescript-automatically-using-ai-1n49</link>
      <guid>https://dev.to/nikeshsundar/i-built-a-cli-that-migrates-your-js-codebase-to-typescript-automatically-using-ai-1n49</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Migrating a JavaScript codebase to TypeScript is painful.&lt;br&gt;
I spent 3 weeks doing it manually and thought — &lt;br&gt;
there has to be a better way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built RepoSurgeon — a CLI tool that does it automatically.&lt;/p&gt;

&lt;p&gt;npm install -g reposurgeon&lt;br&gt;
reposurgeon migrate .&lt;/p&gt;

&lt;p&gt;That's it. Your TypeScript project appears in &lt;br&gt;
./reposurgeon-output with a full diff report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supports 17 AI Providers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best part — it works with whatever AI key you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI, Claude, Gemini, Groq (free!), Mistral&lt;/li&gt;
&lt;li&gt;DeepSeek, xAI Grok, OpenRouter&lt;/li&gt;
&lt;li&gt;Ollama, LM Studio, Jan (local &amp;amp; free!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just set one key in .env and run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try It Free&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No credit card needed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;github.com/nikeshsundar/reposurgeon&lt;/p&gt;

&lt;p&gt;Star it if you find it useful! &lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I was tired of writing "fix" as my commit message so I built this in one afternoon</title>
      <dc:creator>Nikesh Sundar </dc:creator>
      <pubDate>Sun, 15 Mar 2026 02:43:27 +0000</pubDate>
      <link>https://dev.to/nikeshsundar/i-was-tired-of-writing-fix-as-my-commit-message-so-i-built-this-in-one-afternoon-4749</link>
      <guid>https://dev.to/nikeshsundar/i-was-tired-of-writing-fix-as-my-commit-message-so-i-built-this-in-one-afternoon-4749</guid>
      <description>&lt;p&gt;Every developer knows this feeling.&lt;/p&gt;

&lt;p&gt;You just spent 3 hours building a feature. &lt;br&gt;
You're tired. You just want to push and go to sleep.&lt;/p&gt;

&lt;p&gt;Then git asks you:&lt;/p&gt;

&lt;p&gt;"Enter commit message:"&lt;/p&gt;

&lt;p&gt;And you type... "fix"&lt;/p&gt;

&lt;p&gt;Or maybe "update" or "changes" or my personal favourite — "asdfgh"&lt;/p&gt;

&lt;p&gt;Sound familiar? I thought so.&lt;/p&gt;

&lt;h2&gt;
  
  
  The daily pain nobody talks about
&lt;/h2&gt;

&lt;p&gt;It's not just commit messages. Every single day as a developer you have to write 3 things that have nothing to do with actual coding:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Commit messages&lt;/strong&gt; — every time you save code to git&lt;br&gt;
&lt;strong&gt;2. Daily standup&lt;/strong&gt; — every morning "what did I do yesterday??"&lt;br&gt;
&lt;strong&gt;3. PR descriptions&lt;/strong&gt; — explaining your changes all over again to your team&lt;/p&gt;

&lt;p&gt;These 3 things happen EVERY DAY. They're not hard but they're annoying, repetitive, and eat up 10-15 minutes of your day doing mental work that adds zero value.&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;commitgpt&lt;/strong&gt; — a CLI tool that reads your git diff and automatically writes all 3 for you using AI.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
git add .
cmt
Output:
✨ feat(auth): add Google OAuth2 login with session timeout

- Implemented OAuth2 flow using Google provider
- Sessions expire after 30 mins of inactivity
- Fixed bug where users stayed logged in after password change
- Added redirect to dashboard on successful login
That's a real, professional conventional commit message — written in 2 seconds from your actual code changes.
All 3 commands
Commit message:
git add .
cmt
Daily standup:
cmt standup
Output:
Yesterday: Implemented OAuth2 login flow, fixed session expiry bug
Today: Writing tests for auth middleware, reviewing PR #42
Blockers: None
PR description:
cmt pr
Output:
## What changed
Added Google OAuth2 login with automatic session timeout.

## Why
Users were staying logged in indefinitely, creating a security risk.

## Testing
- Manual: tested login, logout, session expiry
- Unit: auth middleware coverage at 94%
It's completely free
No paid API needed. It works with a free GitHub token — 150 requests per day, zero cost, no credit card.
You can also use Gemini (1500 free requests/day), OpenAI, or Anthropic Claude. The tool auto-detects whichever key you have in your .env file.
How to use it
Install:
pip install commitgpt-nikesh
Get a free GitHub token:
Go to github.com → Settings → Developer Settings
Personal Access Tokens → Generate new token
No scopes needed
Create .env file:
GITHUB_TOKEN=ghp_your_token_here
Use it:
git add .
cmt              # commit message
cmt standup      # daily standup
cmt pr           # PR description
How I built it
I built this in one afternoon using vibe coding with AI.
The whole thing is about 300 lines of Python:
click for the CLI
openai SDK pointing to GitHub Models API
subprocess to call git commands
python-dotenv to load the API key
The hardest part was writing the right prompts to get consistent, high quality output every time.
What's next
Support for Jira ticket numbers in commit messages
VS Code extension
Support for more AI providers
Try it
pip install commitgpt-nikesh
GitHub: https://github.com/nikeshsundar/commitgpt
Would love your feedback in the comments. What features would you want to see next?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>git</category>
      <category>product</category>
    </item>
  </channel>
</rss>
