✨ What is DotFetch?
DotFetch is a powerful, modern HTTP client built specifically for VS Code. Designed for developers who demand the best tools for API testing, debugging, and development workflows.
🎯 Key Benefits:
- Native VS Code Integration - Seamless experience within your development environment
- Environment Variables - Full support for
.env files with live substitution
- Professional UI - Dark theme optimized interface matching VS Code aesthetics
- Advanced Features - Collections, history, cURL import/export, and more
- Performance Focused - Fast, reliable, and memory-efficient
🚀 Quick Start
Installation
Install from VS Code Marketplace:
Ctrl+P → ext install FreeRave.dotfetch
Or search in Extensions:
- Open VS Code
Ctrl+Shift+X (Windows/Linux) or Cmd+Shift+X (Mac)
- Search for "DotFetch"
- Click Install
Reload VS Code and you're ready to go!
Your First Request
- Open DotFetch:
Ctrl+Shift+P → "DotFetch: Open HTTP Client"
- Enter URL:
https://jsonplaceholder.typicode.com/posts/1
- Select Method: Choose from GET, POST, PUT, DELETE, etc.
- Send Request: Click the Send button or press
Enter
🎨 Features
🔧 Core HTTP Client
|
Complete HTTP Support
- ✅ All HTTP Methods (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS)
- ✅ Custom Headers with validation
- ✅ Request Body (JSON, Text, Form Data)
- ✅ Query Parameters management
- ✅ Timeout configuration
- ✅ Response status codes & headers
Advanced Request Features
- ✅ Request History with timestamps
- ✅ Auto-save recent requests
- ✅ Request validation before sending
- ✅ Syntax highlighting for JSON bodies
|
Response Analysis
- ✅ Formatted JSON responses
- ✅ Response headers inspection
- ✅ Status code indicators
- ✅ Response time measurement
- ✅ Raw response viewer
|
🌍 Environment Variables
|
Multi-Environment Support
- ✅
.env, .env.local, .env.development
- ✅
.env.production, .env.test
- ✅ Automatic environment detection
- ✅ Environment switching
Live Variable Substitution
- ✅
{{VARIABLE_NAME}} syntax
- ✅ Real-time highlighting
- ✅ Pre-send validation
- ✅ Missing variable warnings
|
Environment Tree View
- ✅ VS Code sidebar integration
- ✅ Variable explorer
- ✅ Copy variable values
- ✅ Refresh environments
|
📁 Collections & Organization
- ✅ Request Collections - Group requests by project/feature
- ✅ Auto-Default Collection - Automatic setup for new users
- ✅ Save & Load - One-click request management
- ✅ Collection CRUD - Full create, read, update, delete operations
- ✅ Quick Access - Expandable collection tree
🔄 Import/Export
|
cURL Export
- ✅ Generate complete cURL commands
- ✅ Include all headers & body
- ✅ Clipboard integration
- ✅ One-click copy
|
cURL Import
- ✅ Parse complex cURL commands
- ✅ Auto-extract method, URL, headers
- ✅ Smart body detection
- ✅ Error handling for malformed commands
|
🎨 Professional UI/UX
- ✅ Native Dark Theme - Perfect VS Code integration
- ✅ Method Color Coding - Visual HTTP method distinction
- ✅ Responsive Design - Works on all screen sizes
- ✅ Loading States - Visual feedback for all operations
- ✅ Keyboard Navigation - Full accessibility support
- ✅ Context Menus - Right-click functionality
- ✅ Smooth Animations - Professional transitions
📸 Screenshots
Main Interface
Environment Variables
Request Collections
cURL Import/Export
🛠️ Configuration
Extension Settings
DotFetch contributes the following settings:
{
"dotfetch.timeout": {
"type": "number",
"default": 10000,
"description": "Default request timeout in milliseconds"
},
"dotfetch.autoSave": {
"type": "boolean",
"default": true,
"description": "Automatically save requests to history"
},
"dotfetch.maxHistory": {
"type": "number",
"default": 50,
"description": "Maximum number of requests to keep in history"
}
}
Environment Files
DotFetch automatically detects these environment files in your workspace:
.env # Base environment
.env.local # Local overrides
.env.development # Development specific
.env.production # Production settings
.env.test # Test environment
📖 Usage Guide
Basic Request
- Open DotFetch from the sidebar or command palette
- Enter URL in the URL field
- Select HTTP Method from dropdown
- Add Headers (optional) - one per line:
Key: Value
- Add Body (optional) - JSON or text
- Click Send or press
Enter
Using Environment Variables
Create .env file in your workspace root:
API_BASE_URL=https://api.example.com
API_KEY=your_secret_key
Use in requests:
URL: {{API_BASE_URL}}/users
Headers:
Authorization: Bearer {{API_KEY}}
Variables highlight in real-time and validate before sending
Managing Collections
- Create Collection: Click "New Collection" → Enter name
- Save Request: Fill request → Click "Save" → Select collection
- Load Request: Expand collection → Click request name
- Organize: Drag and drop to reorder collections
cURL Operations
Export to cURL:
- Fill request details
- Click "Export cURL"
- Command copied to clipboard
Import from cURL:
- Click "Import cURL"
- Paste cURL command
- Click "Import" - fields auto-populate
🔧 Development
Prerequisites
- Node.js 16+
- VS Code 1.74+
- TypeScript 5.0+
Building
# Install dependencies
npm install
# Development build (watch mode)
npm run watch
# Production build
npm run compile
# Run tests
npm test
# Lint code
npm run lint
Project Structure
dotfetch/
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── environmentManager.ts # Environment variable handling
│ ├── environmentTree.ts # Tree view provider
│ └── test/
│ └── extension.test.ts # Test suite
├── media/
│ ├── index.html # Webview UI
│ ├── script.js # Frontend logic
│ ├── styles.css # Styling & themes
│ └── icon.png # Extension icon
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
└── CHANGELOG.md # Release notes
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/dotfetch.git
cd dotfetch
- Install dependencies:
npm install
- Start development:
npm run watch
- Open in VS Code and press
F5 to debug
Testing
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run specific test file
npm test -- --grep "Environment Manager"
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- VS Code Team for the amazing extension platform
- Axios for the reliable HTTP client
- Our Community for feedback and contributions
📞 Support