First Coder - AI Coding Assistant
Your AI-powered coding companion using AWS Bedrock models. Chat, code completions, and intelligent code generation - all in VS Code.
Features
💬 Interactive Chat
- Sidebar Chat Interface: Clean, modern chat integrated into VS Code
- Streaming Responses: Real-time AI responses as they're generated
- Conversation History: Maintains context across messages
- Model Selection: Choose from 44+ Bedrock models via dropdown
- Expandable Window: Open chat in separate panel for side-by-side work
- Copy Messages: One-click copy button for AI responses
👻 Inline Code Completions
- Ghost Text Suggestions: AI-powered completions as you type (like Copilot)
- Smart Debouncing: Waits for you to pause before fetching (saves API calls)
- Intelligent Caching: Remembers recent suggestions for instant retrieval
- Context-Aware: Analyzes surrounding code for relevant suggestions
- Multi-Language: Works across all file types
⚡ Code Generation
- Generate from Comments: Transform comments into working code
- Right-Click Command: Select text and generate code instantly
- Context-Sensitive: Uses your project context for better results
🤖 44+ AI Models
- Claude: 4.5 Sonnet, 4.5 Haiku, 3.7 Sonnet, 3.5 Sonnet/Haiku, 3 Opus/Sonnet/Haiku
- Amazon Titan: Nova Pro/Lite/Micro, Text Premier/Express/Lite
- Meta Llama: 3.3 70B, 3.2 (90B/11B/3B/1B), 3.1 (405B/70B/8B)
- Mistral AI: Large 2, Large, Small, 7B, Mixtral 8x7B
- AI21 Labs: Jamba 1.5 Large/Mini, Jamba Instruct, Jurassic-2 Ultra/Mid
- Cohere: Command R+/R, Command/Command Light
⚙️ Fully Configurable
- AWS Authentication: Profile, role-based, or direct credentials
- Region Selection: Choose your Bedrock-enabled AWS region
- Model Preferences: Set default model and parameters
- Performance Tuning: Adjust debounce delay, context window, temperature
- Feature Toggles: Enable/disable inline suggestions as needed
Prerequisites
- VS Code 1.85.0 or higher
- AWS account with Bedrock access
- AWS credentials configured locally
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions view (Cmd/Ctrl + Shift + X)
- Search for "First Coder"
- Click Install
From VSIX File
- Download the
.vsix file
- In VS Code, go to Extensions view
- Click "..." menu → "Install from VSIX..."
- Select the downloaded file
Setup
The extension supports three authentication methods. Choose the one that best fits your needs:
Option A: Profile-Based Authentication (Recommended)
Use AWS CLI profiles for secure credential management.
Configure AWS CLI:
aws configure --profile your-profile-name
In VS Code Settings, set:
- Auth Method:
profile
- AWS Profile: Your profile name (e.g.,
default)
Option B: Role-Based Authentication (AssumeRole)
Assume an IAM role for cross-account access or enhanced security.
Configure a base AWS profile (see Option A)
In VS Code Settings, set:
- Auth Method:
role
- AWS Profile: Base profile to use for assuming the role
- AWS Role ARN: ARN of the role to assume (e.g.,
arn:aws:iam::123456789012:role/BedrockRole)
- AWS Role Session Name: Optional session name (default:
bedrock-chat-session)
Option C: Direct Credentials
Use access keys directly (not recommended for production).
⚠️ Security Warning: Storing credentials in VS Code settings is less secure than using profiles or roles. Use this only for testing or temporary access.
In VS Code Settings, set:
- Auth Method:
credentials
- AWS Access Key ID: Your access key
- AWS Secret Access Key: Your secret key
- AWS Session Token: Optional, for temporary credentials
2. Enable Bedrock Models
- Log in to AWS Console
- Navigate to Amazon Bedrock
- Go to "Model access" in the left sidebar
- Request access to the models you want to use:
- Anthropic Claude models
- Amazon Titan models
- Meta Llama models
Open VS Code Settings (Cmd/Ctrl + ,) and search for "First Coder":
Core Settings:
- Auth Method: Choose authentication method (
profile, role, or credentials)
- AWS Profile: Set your AWS profile name (default: "default")
- AWS Region: Select the region where Bedrock is available (e.g., us-east-1)
- Default Model: Choose your preferred model
- Max Tokens: Maximum response length (default: 4096)
- Temperature: Response creativity 0-1 (default: 0.7)
Coding Assistant Settings:
- Enable Inline Suggestions: Toggle ghost text completions (default: true)
- Suggestion Delay: Debounce delay in ms before fetching suggestions (default: 600)
- Max Context Window: Characters to send as context for completions (default: 2000)
Usage
AI Coding Assistant Features
🎯 Inline Code Completions (Ghost Text)
First Coder provides AI-powered code suggestions as you type, similar to GitHub Copilot.
How it works:
- Start typing in any code file
- Pause for ~600ms (configurable)
- Gray "ghost text" suggestions appear
- Press
Tab to accept, or keep typing to ignore
Example:
function calculateFibonacci(n: number) {
// Pause here, and First Coder suggests:
// if (n <= 1) return n;
// return calculateFibonacci(n - 1) + calculateFibonacci(n - 2);
}
Performance Features:
- Debouncing: Only fetches suggestions after you stop typing (saves API calls)
- Caching: Remembers recent suggestions for instant retrieval
- Context-Aware: Analyzes surrounding code for relevant suggestions
Configuration:
{
"firstCoder.enableInlineSuggestions": true,
"firstCoder.suggestionDelay": 600,
"firstCoder.maxContextWindow": 2000
}
Transform comments into working code with a single command.
How to use:
- Write a comment describing what you want:
// Create a function to validate email addresses using regex
- Select the comment
- Right-click → "First Coder: Generate Code"
- Code is inserted below the comment
Also available via:
- Command Palette:
Cmd/Ctrl + Shift + P → "First Coder: Generate Code"
- Works with any selected text or instruction
Chat Interface
Opening the Chat
- Click the chat icon in the Activity Bar (left sidebar)
- Or use Command Palette (Cmd/Ctrl + Shift + P) → "First Coder: Open Chat"
Sending Messages
- Type your message in the input field
- Press Enter or click "Send"
- The AI will respond with streaming output
Changing Models
- Use the dropdown at the top of the chat panel
- Or use Command Palette → "First Coder: Change Model"
Expanding Chat
- Click the window icon ($(window)) in the title bar to open chat in a separate panel
- Useful for side-by-side coding and chatting
Clearing History
- Use Command Palette → "First Coder: Clear History"
Supported Models
| Model |
ID |
Best For |
| Claude 4.5 Opus |
us.anthropic.claude-opus-4-5-20251101-v1:0 |
Most powerful, complex tasks |
| Claude 4.5 Sonnet |
us.anthropic.claude-sonnet-4-5-20250929-v1:0 |
Balanced intelligence and speed |
| Claude 3.7 Sonnet |
us.anthropic.claude-3-7-sonnet-20250219-v1:0 |
High capability, lower latency |
| Claude 4.5 Haiku |
us.anthropic.claude-haiku-4-5-20251001-v1:0 |
Fastest, cost-effective |
Troubleshooting
"Access Denied" Error
- Verify your AWS credentials are configured correctly
- Ensure your IAM user/role has Bedrock permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
}
]
}
"Model Not Found" Error
- Check if the model is available in your selected region
- Verify you have requested access to the model in Bedrock console
"Invalid Profile" Error
- Verify the profile name in settings matches your AWS credentials file
- Check that
~/.aws/credentials exists and contains the profile
Development
Building
npm run compile
Watching for Changes
npm run watch
Packaging
npm run package
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and feature requests, please use the GitHub issue tracker.