I Built an AI That Learns Your Coding Style (VS Code Extension That Reads Your GitHub DNA)
Atef Ataya

Atef Ataya @atef_ataya

About: AI DevRel & YouTube Educator YouTube Creator • AI Agents • Full-Stack Engineer

Location:
Abu Dhabi, UAE
Joined:
Jul 21, 2025

I Built an AI That Learns Your Coding Style (VS Code Extension That Reads Your GitHub DNA)

Publish Date: Jul 21
0 0

The Style Consistency Nightmare

Every developer knows this pain: you're reviewing code from six months ago, and it looks like three different people wrote it. Variable names like userData, user_data, and userInfo scattered throughout the same project. Some functions use arrow syntax, others use traditional declarations. It's technically functional, but it feels... messy.

Now multiply that across multiple repositories, team members, and projects. Coding style inconsistency isn't just an aesthetic problem—it's a productivity killer.

What if an AI could analyze your entire GitHub history, learn your personal coding DNA, and help you maintain perfect consistency across all your projects?

That's exactly what I built: GitHub Style Agent—a VS Code extension that creates a personalized coding assistant trained on YOUR patterns.

The "Aha!" Moment

The idea hit me during a code review where I spent more time fixing formatting and naming inconsistencies than addressing actual logic issues. I thought: "I've written thousands of lines of code. There must be patterns here that an AI could learn."

Traditional code generation tools give you generic solutions. But what if the AI could understand that:

  • You prefer camelCase for variables but PascalCase for components
  • Your Express routes always follow a specific error handling pattern
  • You have a particular way of structuring React hooks
  • Your API responses use consistent naming conventions

The result? An AI coding assistant that doesn't just write code—it writes YOUR code.

How GitHub Style Agent Works

🔍 Repository Analysis Phase

The extension connects to GitHub and analyzes your repositories to build a comprehensive style profile:

// Example of style pattern detection
interface StyleProfile {
  namingConventions: {
    variables: 'camelCase' | 'snake_case' | 'mixed',
    functions: 'camelCase' | 'snake_case' | 'mixed',
    constants: 'UPPER_CASE' | 'camelCase' | 'mixed'
  },
  architecturalPatterns: {
    errorHandling: 'try-catch' | 'promises' | 'mixed',
    importStyle: 'named' | 'default' | 'mixed',
    functionDeclaration: 'arrow' | 'traditional' | 'mixed'
  },
  codeStructure: {
    indentation: number,
    bracketStyle: 'same-line' | 'new-line',
    semicolons: boolean
  }
}
Enter fullscreen mode Exit fullscreen mode

📊 What Gets Analyzed

Naming Conventions:

  • Variable naming patterns (userId vs user_id vs UserID)
  • Function naming styles
  • File and folder structure preferences
  • Class and interface naming patterns

Architectural Patterns:

  • How you structure Express.js applications
  • Your preferred React component patterns
  • Error handling approaches
  • Import/export conventions

Code Formatting:

  • Indentation preferences
  • Bracket placement
  • Semicolon usage
  • Line length preferences

🤖 AI-Powered Code Generation

Once your style profile is built, the extension uses OpenAI's API to generate code that matches your patterns:

// Generate code that matches user's style
async function generateStyledCode(prompt: string, styleProfile: StyleProfile) {
  const styledPrompt = `
    Generate ${prompt} using these style preferences:
    - Variables: ${styleProfile.namingConventions.variables}
    - Functions: ${styleProfile.architecturalPatterns.functionDeclaration}
    - Error handling: ${styleProfile.architecturalPatterns.errorHandling}

    Follow the user's established patterns exactly.
  `;

  return await openai.chat.completions.create({
    model: "gpt-4",
    messages: [{ role: "user", content: styledPrompt }]
  });
}
Enter fullscreen mode Exit fullscreen mode

Live Demo: See Your Style in Action

Before: Generic AI Code

// Generic AI-generated Express route
app.get('/users/:id', function(req, res) {
  const userId = req.params.id;
  User.findById(userId, function(err, user) {
    if (err) {
      return res.status(500).json({error: err.message});
    }
    res.json(user);
  });
});
Enter fullscreen mode Exit fullscreen mode

After: Your Personal Style

// Generated using your GitHub style profile
app.get('/users/:id', async (req, res) => {
  try {
    const { id: userId } = req.params;
    const userData = await User.findById(userId);

    return res.status(200).json({
      success: true,
      data: userData
    });
  } catch (error) {
    return res.status(500).json({
      success: false,
      message: error.message
    });
  }
});
Enter fullscreen mode Exit fullscreen mode

The AI learned that you:

  • Prefer arrow functions over traditional functions
  • Use destructuring for parameters
  • Follow async/await over callbacks
  • Structure error responses with success flags
  • Use consistent variable naming patterns

Technical Architecture

Built With Modern Stack

┌─────────────────────────────────────┐
│           VS Code Extension         │
├─────────────────────────────────────┤
│  TypeScript + Node.js Runtime      │
├─────────────────────────────────────┤
│      GitHub REST API Client        │
├─────────────────────────────────────┤
│       OpenAI API Integration       │
├─────────────────────────────────────┤
│      Style Analysis Engine         │
└─────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Key Components

Style Analyzer:

class StyleAnalyzer {
  async analyzeRepository(repoUrl: string): Promise<StyleProfile> {
    const files = await this.fetchRepositoryFiles(repoUrl);
    const codePatterns = await this.extractPatterns(files);
    return this.buildStyleProfile(codePatterns);
  }

  private extractPatterns(files: CodeFile[]): CodePatterns {
    // AST parsing and pattern recognition
    // Machine learning-based style detection
    // Statistical analysis of coding choices
  }
}
Enter fullscreen mode Exit fullscreen mode

Code Generator Integration:

class StyledCodeGenerator {
  constructor(
    private openai: OpenAI,
    private styleProfile: StyleProfile
  ) {}

  async generateCode(request: CodeRequest): Promise<string> {
    const contextualPrompt = this.buildPromptWithStyle(request);
    return await this.openai.generate(contextualPrompt);
  }
}
Enter fullscreen mode Exit fullscreen mode

Getting Started: Install & Configure

1. Quick Installation

# Clone the repository
git clone https://github.com/atef-ataya/github-style-vscode-extension

# Install dependencies
cd github-style-vscode-extension
npm install

# Build the extension
npm run build
Enter fullscreen mode Exit fullscreen mode

2. VS Code Setup

  1. Open the project in VS Code
  2. Press F5 to launch Extension Development Host
  3. Install the extension in the new VS Code window

3. Configuration

// settings.json
{
  "githubStyleAgent.githubToken": "your_github_token",
  "githubStyleAgent.openaiApiKey": "your_openai_key",
  "githubStyleAgent.repositories": [
    "username/repo1",
    "username/repo2"
  ],
  "githubStyleAgent.analysisDepth": "comprehensive"
}
Enter fullscreen mode Exit fullscreen mode

4. First Analysis

  1. Open Command Palette (Ctrl+Shift+P)
  2. Run GitHub Style Agent: Analyze My Style
  3. Wait for analysis completion
  4. Start generating styled code!

Real-World Impact & Use Cases

For Solo Developers

  • Maintain consistency across personal projects
  • Speed up development with personalized code generation
  • Learn from your own patterns and improve over time

For Development Teams

  • Onboard new developers faster with established team patterns
  • Reduce code review time spent on style inconsistencies
  • Create living style guides based on actual codebase patterns

For Code Reviewers

  • Focus on logic, not formatting during reviews
  • Automatically suggest style-compliant alternatives
  • Maintain team coding standards without manual enforcement

Performance & Limitations

What Works Great

  • JavaScript/TypeScript projects (primary focus)
  • Express.js and React applications
  • Small to medium repositories (under 1000 files)
  • Well-established coding patterns (6+ months of history)

Current Limitations

  • Language support currently limited to JS/TS ecosystem
  • Large repositories may hit API rate limits
  • Inconsistent historical patterns can confuse the AI
  • Complex architectural decisions require human oversight

What Developers Are Saying

Sarah Chen, Frontend Developer:
"Finally! An AI that writes code like I do. No more fixing generic Stack Overflow solutions to match my style."

Marcus Rodriguez, Team Lead:
"Our junior developers are producing code that looks like our senior developers wrote it. Game changer for consistency."

Dr. Kim Park, Research Engineer:
"I love how it learned my specific error handling patterns. Saves me so much refactoring time."

Roadmap: What's Coming Next

Short Term (Next 2 Months)

  • Python support for data science workflows
  • React Native pattern recognition
  • Team style profiles for consistent team coding
  • Performance optimizations for large repositories

Medium Term (3-6 Months)

  • Multi-language support (Go, Rust, Java)
  • Advanced architectural patterns (microservices, serverless)
  • Integration with popular linters (ESLint, Prettier)
  • Style evolution tracking over time

Long Term Vision

  • AI pair programming with your personal style
  • Cross-project pattern sharing within organizations
  • Style recommendation engine for improving code quality
  • Integration with CI/CD for automated style enforcement

The Open Source Advantage

This isn't just another proprietary AI tool. GitHub Style Agent is completely open source because:

Transparency - See exactly how your style is analyzed

Privacy - Your code analysis stays local

Customization - Modify the analysis algorithms

Community-driven - Features requested by developers

No vendor lock-in - Own your tooling completely

Ready to Try Your Personal Coding AI?

Transform your development workflow with an AI that truly understands how YOU code.

🔗 GitHub Repository: github.com/atef-ataya/github-style-vscode-extension

📺 Tutorial Video: Watch detailed setup and demo

🌐 More Projects: atefataya.com


Found this useful? Give the repo a ⭐ star and help other developers discover their coding style AI!

What coding style patterns would you want the AI to learn from your repositories? Drop your ideas in the comments - your feedback shapes the roadmap!

Comments 0 total

    Add comment