{"id":30891149,"url":"https://github.com/sahilverse/web-serial-terminal","last_synced_at":"2026-05-01T12:33:01.217Z","repository":{"id":313656078,"uuid":"1052178875","full_name":"sahilverse/web-serial-terminal","owner":"sahilverse","description":"A browser-based serial terminal for ESP32, Arduino, and microcontrollers using Web Serial API. No installation required - just open and connect!","archived":false,"fork":false,"pushed_at":"2025-09-07T15:16:27.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T17:30:53.474Z","etag":null,"topics":["arduino","browser-terminal","debugging-tool","esp32","javascript","microcontroller","serial-monitor","serial-terminal","usb-serial","web-serial-api","webapp"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sahilverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-07T15:12:28.000Z","updated_at":"2025-09-07T15:18:27.000Z","dependencies_parsed_at":"2025-09-07T17:30:59.057Z","dependency_job_id":"f0a6ac31-63dc-4760-94d4-50322ea35ca6","html_url":"https://github.com/sahilverse/web-serial-terminal","commit_stats":null,"previous_names":["sahilverse/web-serial-terminal"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/sahilverse/web-serial-terminal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilverse%2Fweb-serial-terminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilverse%2Fweb-serial-terminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilverse%2Fweb-serial-terminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilverse%2Fweb-serial-terminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sahilverse","download_url":"https://codeload.github.com/sahilverse/web-serial-terminal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sahilverse%2Fweb-serial-terminal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32497812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","browser-terminal","debugging-tool","esp32","javascript","microcontroller","serial-monitor","serial-terminal","usb-serial","web-serial-api","webapp"],"created_at":"2025-09-08T18:03:14.265Z","updated_at":"2026-05-01T12:33:01.197Z","avatar_url":"https://github.com/sahilverse.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web Serial Terminal for microcontrollers\n\nA modern web-based serial terminal for ESP32, Arduino, and other microcontrollers using the Web Serial API. This terminal provides a clean, terminal-style interface with customizable baud rates and line endings, compatible with any USB serial device.\n\n## Features\n\n- **Web Serial API Integration**: Connect directly to ESP32, Arduino, and other microcontroller devices through your browser\n- **Multiple Baud Rate Support**: 9600, 57600, 74880, 115200, 230400, 460800, 921600, and custom rates\n- **Line Ending Options**: None, LF (\\n), CRLF (\\r\\n), CR (\\r)\n- **Terminal-style Interface**: Green-on-black color scheme with monospace font\n- **Command Input**: Dedicated input area for sending commands\n- **Auto-scroll**: Automatically scrolls to show latest output\n- **Clear Command**: Type \"clear\" to clear the terminal\n- **Real-time Communication**: Bidirectional communication with connected devices\n\n## Browser Compatibility\n\nThis application requires a browser that supports the Web Serial API:\n- Google Chrome (version 89+)\n- Microsoft Edge (version 89+)\n- Brave Browser\n- Other Chromium-based browsers\n\n**Note**: Firefox and Safari do not currently support the Web Serial API.\n\n## Usage\n\n1. **Open the Terminal**\n   - Open `index.html` in a supported browser\n   - No web server required - works as a local file\n\n2. **Connect to Device**\n   - Click \"Connect\" button\n   - Select your microcontroller device from the browser's device picker\n   - Choose appropriate baud rate (default: 115200)\n   - Select line ending format if needed\n\n3. **Send Commands**\n   - Type commands in the input field at the bottom\n   - Press Enter to send\n   - Commands will appear in the terminal with a \"\u003e\" prefix\n\n4. **Monitor Output**\n   - All device output appears in the main terminal area\n   - Terminal auto-scrolls to show latest messages\n   - Use \"clear\" command to clear the terminal\n\n5. **Disconnect**\n   - Click \"Disconnect\" when finished\n   - Connection status is shown in the top-right corner\n\n## Configuration Options\n\n### Baud Rates\n- 9600 (common for basic Arduino projects)\n- 57600\n- 74880 (ESP8266/ESP32 boot messages)\n- 115200 (default, most common)\n- 230400\n- 460800\n- 921600\n- Custom (enter any valid baud rate)\n\n### Line Endings\n- None: No line ending characters\n- LF (\\n): Unix-style line ending\n- CRLF (\\r\\n): Windows-style line ending\n- CR (\\r): Classic Mac-style line ending\n\n## Supported Devices\n\nThis terminal works with any device that communicates over USB serial, including:\n\n**ESP Family:**\n- ESP32 (all variants)\n- ESP8266 (NodeMCU, Wemos D1, etc.)\n\n**Arduino Boards:**\n- Arduino Uno, Nano, Mini\n- Arduino Mega, Leonardo, Micro\n- Arduino Pro, Pro Mini\n\n**Other Compatible Devices:**\n- STM32 development boards\n- Raspberry Pi Pico\n- Teensy boards\n- Any microcontroller with USB-to-serial conversion\n\n## File Structure\n\n```\nESP32-Web-Serial-Terminal/\n├── index.html          # Main application file\n└── README.txt          # This documentation file\n```\n\n## Technical Details\n\n- **Language**: HTML5, CSS3, JavaScript (ES6+)\n- **API**: Web Serial API\n- **Dependencies**: None (vanilla JavaScript)\n- **File Size**: ~8KB (single file)\n- **Framework**: None (pure web technologies)\n\n## Common Commands\n\nHere are some useful commands you can try once connected:\n\n**ESP32/ESP8266 Commands:**\n```\nAT                      # Test AT command response (if AT firmware)\nAT+GMR                  # Get firmware version (if AT firmware)\nhelp                    # Show available commands (device-dependent)\nls                      # List files (if filesystem enabled)\nreboot                  # Restart the device\n```\n\n**Arduino Commands:**\n```\nhelp                    # Show available commands (sketch-dependent)\nstatus                  # Get device status (if implemented)\nreset                   # Reset device (if implemented)\n```\n\n**Universal Commands:**\n```\nclear                   # Clear the terminal (web terminal command)\n```\n\n*Note: Available commands depend on the firmware/sketch running on your device.*\n\n## Troubleshooting\n\n### Connection Issues\n- Ensure your device is properly connected via USB\n- Check that no other serial monitor is using the same port\n- Try different baud rates if communication appears garbled\n- Make sure your browser supports Web Serial API\n\n### Display Issues\n- If text appears wrapped, the terminal uses horizontal scrolling\n- Use browser zoom controls if text is too small/large\n- Terminal maintains monospace formatting for proper alignment\n\n### Permission Issues\n- Some browsers may require HTTPS for Web Serial API\n- Try using a local web server if file:// protocol causes issues\n\n## Development\n\nThis is a single-file application built with vanilla web technologies. To modify:\n\n1. Edit the HTML, CSS, or JavaScript directly in `index.html`\n2. No build process or dependencies required\n3. Test by opening the file in a supported browser\n\n## License\n\nThis project is open source and available for modification and distribution.\n\n## Contributing\n\nFeel free to submit issues, feature requests, or pull requests to improve this terminal.\n\n\n---\n\n**Note**: This terminal is designed for development and debugging purposes. Always ensure your ESP32/Arduino code handles serial communication appropriately to avoid infinite loops or excessive output that might overwhelm the browser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahilverse%2Fweb-serial-terminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsahilverse%2Fweb-serial-terminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahilverse%2Fweb-serial-terminal/lists"}