DotFetch
Fetch and display system info in VS Code
π DotFetch
Professional HTTP Client for VS Code
Modern API Testing Made Simple
π₯ Marketplace β’ π Open VSX β’ π Documentation β’ π Report Issues
β¨ 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
.envfiles with live substitution - Comprehensive Authentication - API Key (Header & Query), OAuth 2.0 Client Credentials, Bearer Token, and Basic Auth
- Developer-Friendly Security - SSL/TLS verification toggle for localhost development, password visibility toggles, and safe non-persistent credential storage
- Professional UI - Dark theme optimized interface matching VS Code aesthetics with Response Body and Headers inspector tabs
- Performance & Memory Protected - 10MB payload size limits and large response truncation guards
v2.1.1 Runtime Verified: DotFetch v2.1.1 keeps the hardened v2.1 request engine and adds a fully runtime-verified UI/UX polish pass across the Request Builder, Response Viewer, Sidebar, Auth/Environment presentation, keyboard workflow, and toast/micro-interaction system.
π 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) orCmd+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
Ctrl+Enter/Cmd+Enter
π¨ Features
π§ Core HTTP Client
|
Complete HTTP & Auth Support
Advanced Request Features
|
Response Analysis & Protection
|
π Environment Variables
|
Multi-Environment Support
Live Variable Substitution
|
Environment Tree View
|
π Collections & Organization
- β Request Collections - Group requests by project/feature
- β One-Click Export - Portable JSON backups
- β Request Annotations - Save notes for documentation
- β Save & Load - One-click request management
- β Collection CRUD - Full create, read, update, delete operations
π Import/Export
|
cURL Export
|
cURL Import
|
π¨ Professional UI/UX
- β Native Dark Theme - Automatically syncs with VS Code's active theme
- β
Native VS Code Keyboard Workflow -
Ctrl+EnterSend,Alt+DFocus URL,Ctrl+Alt+SSave,Ctrl+Shift+BackspaceClear,?Help - β Method Color Coding - Visual HTTP method distinction
- β Responsive Design - Works on all screen sizes
- β Loading States - Visual feedback for all operations
- β Context Menus & Modals - Professional fluid interactions
- β Pretty / Raw Response Views - Fast switching between formatted and raw payloads
- β Smart Request Indicators - Active counts/dots for Params, Headers, Auth, Body, and Notes
- β Non-Destructive Row Toggles - Disable Params or Headers without deleting their values
- β
Inline Copy Feedback - Green
β Copiedstate only after successful clipboard writes - β Environment Guidance - Missing-environment variable warning plus responsive active-environment tooltip
- β Toast System - Stacked in-WebView feedback with a maximum of three visible notifications
β¨οΈ Keyboard Workflow
Ctrl+Enter/Cmd+Enterβ Send Active RequestAlt+Dβ Focus and select the URL fieldCtrl+Alt+S/Cmd+Alt+Sβ Save Request to CollectionCtrl+Shift+Backspace/Cmd+Shift+Backspaceβ Clear Request Form?β Toggle Keyboard Shortcuts HelpEscapeβ Close Active Modal
Host-level shortcuts are registered through native VS Code keybindings and are scoped to the active DotFetch Request Builder, preventing actions from firing while another editor or panel is active.
πΈ Screenshots
Main Interface
DotFetch Main Interface
Environment Variables
Environment Variables Panel
Request Collections
Collections Management
cURL Import/Export
cURL Import Export
π οΈ Configuration
Extension Settings
DotFetch contributes the following settings:
{
"dotfetch.timeout": {
"type": "number",
"default": 10000,
"description": "Default request timeout in milliseconds"
},
"dotfetch.sslVerify": {
"type": "boolean",
"default": true,
"description": "Enable SSL certificate verification (disable for localhost or self-signed certs)"
},
"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
.envfile in your workspace root:BASHAPI_BASE_URL=https://api.example.com API_KEY=your_secret_key -
Use in requests:
CODEURL: {{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 & Verification
DotFetch uses automated quality gates alongside manual runtime verification.
# Install dependencies
npm install
# Development build (watch mode)
npm run watch
# Production build (bundles extension and webview)
npm run compile
# Type check
npm run typecheck
# Lint code
npm run lintRuntime verification covers all authentication flows, networking behavior, credential persistence boundaries, response limits, and SSL/TLS handling.
Project Structure
dotfetch/
βββ src/
β βββ extension.ts # Main extension entry point & activation
β βββ webviewPanel.ts # WebView lifecycle, message routing & HTML builder
β βββ requestService.ts # Axios execution engine, SSL Agent & OAuth handler
β βββ dataManager.ts # GlobalState persistence (History & Collections)
β βββ environmentManager.ts # Environment variable loading & interpolation
β βββ collectionTree.ts # Sidebar Collections tree view provider
β βββ historyTree.ts # Sidebar History tree view provider
β βββ environmentTree.ts # Sidebar Environment tree view provider
β βββ webview/ # Modular Frontend (MVC Architecture)
β β βββ main.js # Central webview coordinator & entry point
β β βββ request.js # Request assembling, execution & draft/wire separation
β β βββ auth.js # Comprehensive Auth flows, live previews & RFC validation
β β βββ ui.js # Key-value tables, response tabs & headers inspector
β β βββ shortcuts.js # Keybindings & shortcut customization
β β βββ curl.js # cURL command generator & parser
β β βββ state.js # Canonical webview state & auth schema factory
β β βββ api.js # PostMessage abstraction layer
β βββ test/
β βββ extension.test.ts # Test suite
βββ media/
β βββ index.html # Webview HTML template
β βββ script.js # Compiled webview IIFE bundle (via esbuild)
β βββ styles.css # Dark theme & glassmorphic styling
β βββ icon.png # Extension icon
βββ package.json # Extension manifest & configuration schemas
βββ tsconfig.json # TypeScript configuration
βββ CHANGELOG.md # Detailed release notesπ€ Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Fork the repository
- Clone your fork:
BASH
git clone https://github.com/yourusername/dotfetch.git cd dotfetch - Install dependencies:
BASH
npm install - Start development:
BASH
npm run watch - Open in VS Code and press
F5to 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 Apache License 2.0 - 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
- Documentation: Full Docs
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@dotfetch.dev
Made with β€οΈ for the developer community
β Star us on GitHub β’ π Report Bug β’ π‘ Request Feature
Related Products
β
β
β
β
β
β
β
β
β
β
β
β