A fast, native desktop app for browsing and tailing AWS CloudWatch logs.
- Live Log Tailing - Stream new log events in real-time with auto-scroll
- Instant Filtering - Client-side filtering as you type (no AWS roundtrip)
- JSON Query Syntax - Filter by JSON fields with
field:valueorfield.nested:value - Log Level Detection - Automatic colorization based on log level (ERROR, WARN, INFO, DEBUG, TRACE, SYSTEM)
- Customizable Colors - Configure log level colors and detection patterns via Settings (Cmd-,)
- JSON Syntax Highlighting - Collapsible, colorized JSON viewer for structured logs
- Find in Logs - Search within the selected log entry with regex, case-sensitive, and whole-word options
- Context Menu - Right-click for quick access to Copy, Find, Filter, Refresh, and Clear actions
- Virtualized Rendering - Smooth scrolling through 50,000+ log entries
- Native Performance - Built with Tauri for small bundle size and low memory usage
- Persistent State - Remembers your last selected log group across sessions
- Node.js 18+
- Rust (latest stable)
- AWS credentials configured via:
- AWS CLI profiles (
~/.aws/credentials) - AWS SSO
- Environment variables (
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) - IAM roles (when running on EC2/ECS)
- AWS CLI profiles (
brew tap aegixx/aws-loggy
brew install --cask aws-loggywinget install SteampunkLabs.AWSLoggyDownload the latest release for your platform from the Releases page:
- macOS:
.dmginstaller (Apple Silicon and Intel) - Windows:
.msior.exeinstaller - Linux:
.deb,.AppImage, or.rpm
# Clone the repository
git clone https://github.com/aegixx/aws-loggy.git
cd aws-loggy
# Install dependencies
npm install
# Run in development mode
npm start
# Build for production
npm run app:buildThe built application will be in src-tauri/target/release/bundle/.
-
Select AWS Profile - Loggy uses your default AWS credentials.
-
Choose Log Group - Use the dropdown to select a CloudWatch log group from your account.
-
Browse Logs - View historical logs with automatic time range selection.
-
Live Tail - Click the tail button to stream new logs in real-time.
-
Filter Logs - Type in the filter bar to instantly filter displayed logs:
- Simple text:
errormatches any log containing "error" - JSON field:
level:errormatches logs where thelevelJSON field equals "error" - Nested field:
user.id:123matches nested JSON fields
- Simple text:
-
Toggle Log Levels - Click level badges (ERROR, WARN, INFO, DEBUG, TRACE, SYSTEM) to show/hide specific levels.
-
View Details - Click any log row to expand and see the full message with JSON highlighting.
| Shortcut | Action |
|---|---|
⌘F / Ctrl+F |
Find text in logs |
⌘L / Ctrl+L |
Focus filter input and select all |
⌘R / Ctrl+R |
Refresh - reconnect to AWS and re-query logs |
⌘K / Ctrl+K |
Clear logs (keep filters, re-fetch) |
⌘, / Ctrl+, |
Open Settings |
⌘A / Ctrl+A |
Select all visible logs |
⌘C / Ctrl+C |
Copy selected messages to clipboard |
Tab |
Focus log viewer for keyboard navigation |
↑ / ↓ |
Navigate between log rows |
Page Up / Down |
Jump one page at a time |
Home / End |
Jump to first / last log |
Space / Enter |
Expand / collapse selected log |
Escape |
Close dialogs / collapse expanded log |
# Run with hot reload
npm start
# Format code
npm run fmt
# Lint code
npm run lint
# Build production app
npm run app:build- Backend: Tauri 2.x, Rust, AWS SDK for Rust
- Frontend: React 19, TypeScript, Zustand, react-window, Tailwind CSS v4
loggy/
├── src-tauri/ # Rust backend
│ └── src/lib.rs # Tauri commands & AWS integration
├── src/ # React frontend
│ ├── components/ # UI components
│ ├── stores/ # Zustand state management
│ └── types/ # TypeScript definitions
├── docs/
│ └── DESIGN.md # Architecture documentation
└── CLAUDE.md # AI assistant instructions
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Run formatting and linting (
npm run fmt && npm run lint) - Commit your changes using Conventional Commits:
fix: descriptionfor bug fixes (patch release)feat: descriptionfor new features (minor release)feat!: descriptionorBREAKING CHANGE:for breaking changes (major release)
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Releases are automated via release-please based on conventional commit messages.
This project is licensed under the MIT License - see the LICENSE file for details.
- Tauri for the excellent desktop framework
- The AWS SDK team for the Rust SDK
- (!) Control over default font size, family, & line height
- On unfilter, scroll to maintain selected row position
- Debug / application logging for better troubleshooting
- Cloudwatch Filter Syntax support
- Regex filter support (
/pattern/) - Configurable datetime format
- Saved/favorite queries
- (!) Export to JSON/CSV
- CloudWatch Logs Insights integration
- (!) Multiple tabs / panes support - for viewing multiple streams simultaneously
- Alternate file support (e.g. local files, Azure Log Analytics, etc.)
- Multi-source aggregation (e.g. combine logs from multiple sources into a single view)
- Multi-region support
- Multi-account support
- Timeline / histogram view based on volume
- Stacked timeline view based on log level
- Configurable Group By filters (i.e. by JSON path)
- Load more button for loading logs outside of filtered time range
- (?) Pagination support
