A GUI application for executing HTTP commands, built with Go and Fyne framework. This tool provides a user-friendly interface for managing and executing HTTP requests defined in Postman Collection format.
- Modern GUI interface built with Fyne
- Command management through Postman Collection files
- Support for multiple command groups
- Command filtering and search
- HTTP request execution with customizable headers and methods
- Response visualization
- Dark/Light theme support (switcher in the top panel)
- Cross-platform (Windows, macOS, Linux)
- Theme:
Ligth
- Theme:
Dark
- Go 1.21 or higher
- Fyne dependencies:
- For macOS: Xcode Command Line Tools
- For Linux: gcc, libgl1-mesa-dev, xorg-dev
- For Windows: gcc (MinGW-w64)
# Clone the repository
git clone https://github.com/romanitalian/GHOSTman.git
cd GHOSTman
# Build the application
go build -o ghostman
# Run the application
./ghostman
go install github.com/romanitalian/GHOSTman@latest
Create a Postman Collection file (e.g., collection.json
) in the data
directory:
{
"info": {
"name": "My API Collection",
"description": "Collection of API endpoints"
},
"item": [
{
"name": "Get Users",
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "https://api.example.com/users",
"host": ["api.example.com"],
"path": ["users"]
}
}
}
]
}
- Launch the application
- Select a command from the left panel
- (Optional) Switch between Light and Dark theme using the selector at the top
- Click "Execute" or press Enter
- View the response in the right panel
# Install dependencies
go mod download
# Run tests
go test ./...
# Run tests with coverage
make test-coverage # or make tc for short
# Build for development
go build -tags dev
.
├── data/ # Postman Collection files
├── coverage/ # Test coverage reports
├── main.go # Application entry point
├── Makefile # Build and development commands
├── go.mod # Go module definition
└── go.sum # Go module checksums
- Implement synchronization via Git
- Add support for gRPC
- AI-powered request suggestions
- Visual API flow builder
- Built-in API documentation generator
- End-to-end API test recorder
- Cloud sync and team collaboration
To check test coverage and generate a report, run:
make coverage
Example output:
$ make coverage
mkdir -p docs
go test -coverprofile=docs/coverage.out ./... && go tool cover -func=docs/coverage.out | grep total:
github.com/romanitalian/GHOSTman coverage: 0.0% of statements
ok github.com/romanitalian/GHOSTman/internal/collection 0.005s coverage: 81.8% of statements
ok github.com/romanitalian/GHOSTman/internal/httpclient 0.008s coverage: 85.2% of statements
github.com/romanitalian/GHOSTman/internal/logging coverage: 0.0% of statements
github.com/romanitalian/GHOSTman/internal/ui coverage: 0.0% of statements
total: (statements) 19.3%
HTML report: open docs/coverage.html
go tool cover -html=docs/coverage.out -o docs/coverage.html
You can open docs/coverage.html
in your browser for a detailed report.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: entity - add amazing feature'
) - Push to the branch (
git push --force-with-lease origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.