A comprehensive web-based developer toolkit built with Flask. Simple, fast, and privacy-focused - all tools run locally with no data sent to external servers.
- 9 Developer Tools - JSON/YAML formatters, converters, diff viewer, regex tester, and more
- History Tracking - Save and retrieve tool usage across sessions
- Configurable - Enable/disable tools via configuration
- Modern UI - Clean, responsive interface
- Privacy-First - All processing happens locally
| Tool | Description | Status |
|---|---|---|
| Scratchpad | Simple note-taking tool with history tracking | Stable |
| JSON Tool | Format, validate, and minify JSON data | Stable |
| YAML Tool | Format, validate, and work with YAML data | Stable |
| JSON-YAML-XML Converter | Bidirectional format conversion | Stable |
| Text Diff Tool | Compare text side-by-side with highlighting | Stable |
| Regex Tester | Interactive regex testing with live highlighting | Stable |
| Cron Parser | Parse cron expressions with human-readable output | Stable |
| Scientific Calculator | Advanced calculator with graphing support | Stable |
| JWT Decoder | Decode and analyze JWT tokens | Stable |
| Sources Manager | Manage data sources (local, S3, SFTP, HTTP) | Stable |
| AWS Step Functions Viewer | Visualize state machines | Beta (disabled by default) |
# Clone the repository
git clone https://github.com/susamn/helpful-tools-v2.git
cd helpful-tools-v2
# Run the quick-start script (creates venv, installs deps, starts server)
./quick-start.sh
# Or start manually
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.pyOpen your browser to: http://127.0.0.1:8000
python app.py --port 8080 # Run on different port
python app.py --host 0.0.0.0 # Bind to all interfacesTools can be enabled/disabled via config/config.json:
{
"tools": {
"json-tool": {
"enabled": true,
"description": "JSON formatter and validator"
},
"aws-sf-viewer": {
"enabled": false,
"description": "AWS Step Functions state machine viewer"
}
}
}Set "enabled": false to hide a tool from the dashboard and disable its route.
The Sources Manager supports multiple data source types. You can enable/disable source types in config/config.json:
{
"source_types": {
"http": {
"enabled": true,
"description": "HTTP/HTTPS URL resources"
},
"s3": {
"enabled": true,
"description": "AWS S3 buckets"
},
"local_file": {
"enabled": false,
"description": "Local file system"
},
"sftp": {
"enabled": false,
"description": "SFTP servers"
},
"samba": {
"enabled": false,
"description": "Samba/SMB network shares"
}
}
}Only enabled source types will appear in the Sources Manager dropdown.
helpful-tools-v2/
├── app.py # Application entry point
├── config/
│ └── config.json # Tool configuration
├── src/
│ ├── main.py # Flask application and routes
│ ├── api/ # API modules (history, converter)
│ ├── sources/ # Data source implementations
│ └── validators/ # Data validation system
├── frontend/
│ ├── tools/ # HTML templates for each tool
│ └── static/ # CSS and JavaScript
└── tests/ # Test suite
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Dashboard |
/api/tools |
GET | List enabled tools |
/api/source-types |
GET | List enabled source types |
/api/convert |
POST | Format conversion |
/api/text-diff/compare |
POST | Text comparison |
/api/history/<tool> |
GET/POST | Tool history |
/health |
GET | Health check |
- Base64 Encoder/Decoder - Encode/decode Base64 strings
- URL Encoder/Decoder - URL encoding utilities
- Hash Generator - MD5, SHA-1, SHA-256 hash generation
- UUID Generator - Generate various UUID formats
- Color Picker - Color format converter (HEX, RGB, HSL)
- Unix Timestamp Converter - Convert between formats
- Markdown Preview - Live markdown rendering
- SQL Formatter - Format and beautify SQL queries
- HTML/CSS Minifier - Minify web assets
- IP Address Tools - Subnet calculator, CIDR notation
- Dark mode support
- Export/import history
- Keyboard shortcuts documentation
- Plugin system for custom tools
# Activate virtual environment
source venv/bin/activate
# Run all tests
python -m pytest tests/ -v
# Run specific test category
python -m pytest tests/api/ -v
python -m pytest tests/converter/ -v
# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html- Create HTML template in
frontend/tools/*-tool.html - Add CSS/JS assets in
frontend/static/ - Add tool entry in
src/main.pyTOOLS list with uniqueid - Add configuration in
config/config.json - Add tests in
tests/*-tool/
- Python 3.8+
- Flask 3.0+
- PyYAML 6.0+
- xmltodict 0.13+
See requirements.txt for complete list.
MIT License - see LICENSE for details.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Built with Flask, and inspired by the need for simple, local developer tools that respect privacy.