{"id":37126663,"url":"https://github.com/cod-e-codes/gophetch","last_synced_at":"2026-01-14T14:38:08.557Z","repository":{"id":313689159,"uuid":"1052261742","full_name":"Cod-e-Codes/gophetch","owner":"Cod-e-Codes","description":"Terminal system monitor with animated ASCII rain clouds, custom frame support, and real-time system information","archived":false,"fork":false,"pushed_at":"2025-09-07T21:04:26.000Z","size":2888,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T21:30:17.372Z","etag":null,"topics":["animation","ascii-art","bubbletea","cli","cross-platform","go","golang","real-time","system-info","system-monitor","terminal","termux"],"latest_commit_sha":null,"homepage":"https://github.com/Cod-e-Codes/gophetch","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cod-e-Codes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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-07T18:22:04.000Z","updated_at":"2025-09-07T21:04:30.000Z","dependencies_parsed_at":"2025-09-07T21:30:20.921Z","dependency_job_id":"4425386f-48fe-451f-b2d7-509b7238c6e0","html_url":"https://github.com/Cod-e-Codes/gophetch","commit_stats":null,"previous_names":["cod-e-codes/gophetch"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Cod-e-Codes/gophetch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fgophetch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fgophetch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fgophetch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fgophetch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cod-e-Codes","download_url":"https://codeload.github.com/Cod-e-Codes/gophetch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fgophetch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28423958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["animation","ascii-art","bubbletea","cli","cross-platform","go","golang","real-time","system-info","system-monitor","terminal","termux"],"created_at":"2026-01-14T14:38:07.516Z","updated_at":"2026-01-14T14:38:08.545Z","avatar_url":"https://github.com/Cod-e-Codes.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gophetch\r\n\r\n[![Go Report Card](https://goreportcard.com/badge/github.com/Cod-e-Codes/gophetch)](https://goreportcard.com/report/github.com/Cod-e-Codes/gophetch)\r\n[![CI](https://github.com/Cod-e-Codes/gophetch/workflows/CI/badge.svg)](https://github.com/Cod-e-Codes/gophetch/actions)\r\n[![Release](https://img.shields.io/github/v/release/Cod-e-Codes/gophetch)](https://github.com/Cod-e-Codes/gophetch/releases)\r\n\r\nA terminal-based system monitor with ASCII animation built in Go using Bubble Tea.\r\n\r\n\u003cimg src=\"gophetch-demo.gif\" width=\"600\" alt=\"Gophetch Demo\"\u003e\r\n\r\n*Demo showing the animated rain cloud, color palette, and real-time system information.*\r\n\r\n## Features\r\n\r\n- Real-time system information display\r\n- Animated rain cloud ASCII art (default)\r\n- Custom ASCII frame file support for personalized animations\r\n- JSON configuration file for customizable display options\r\n- Cross-platform compatibility (Windows, Linux, macOS, Android/Termux)\r\n- Color palette with animated wave effects\r\n- System metrics including CPU, memory, disk usage, and load average\r\n- Responsive terminal UI with proper cleanup\r\n- **Tab System**: Multi-tab interface with specialized information panels\r\n- **Interactive Navigation**: Keyboard-driven tab switching and list navigation\r\n\r\n## Tab System\r\n\r\nGophetch features a comprehensive tab system that organizes system information into specialized panels for better usability and information density.\r\n\r\n### Available Tabs\r\n\r\n1. **Standard Tab** - Traditional system information display\r\n   - Operating system and architecture\r\n   - CPU, memory, and disk usage\r\n   - System uptime and process count\r\n   - Load average and runtime information\r\n\r\n2. **Network Tab** - Network connectivity and activity\r\n   - IP addresses (all interfaces)\r\n   - Active network connections count\r\n   - Listening ports and services\r\n   - Network interface statistics\r\n\r\n3. **Hardware Tab** - Hardware-specific information\r\n   - GPU information and driver details\r\n   - Temperature monitoring (where available)\r\n   - Fan speed readings (where available)\r\n   - Battery status and level (laptops/mobile devices)\r\n\r\n4. **Processes Tab** - Interactive process management\r\n   - Total process count\r\n   - Top processes by resource usage\r\n   - Interactive list with up/down navigation\r\n   - Process details (PID, CPU%, Memory usage)\r\n\r\n5. **Weather Tab** - Current weather and forecast\r\n   - Current weather conditions and temperature\r\n   - Today's detailed forecast with ASCII art\r\n   - Auto-detected location or manual location support\r\n   - Real-time weather data from wttr.in\r\n\r\n### Tab Navigation\r\n\r\n- **Tab/Shift+Tab** - Navigate between tabs\r\n- **Number keys (1-5)** - Jump directly to specific tabs\r\n- **Up/Down arrows or j/k** - Navigate within the Processes tab list\r\n- **q or Ctrl+C** - Exit application\r\n\r\n### Tab Configuration\r\n\r\nThe tab system can be configured in `gophetch.json`:\r\n\r\n```json\r\n{\r\n  \"enable_tabs\": true,\r\n  \"visible_tabs\": [\"standard\", \"network\", \"hardware\", \"processes\", \"weather\"],\r\n  \"default_tab\": \"standard\",\r\n  \"tab_order\": [\"standard\", \"network\", \"hardware\", \"processes\", \"weather\"]\r\n}\r\n```\r\n\r\n- **enable_tabs**: Enable/disable the tab system (default: true)\r\n- **visible_tabs**: Array of tabs to show (can hide specific tabs)\r\n- **default_tab**: Which tab to show on startup\r\n- **tab_order**: Custom order for tab display\r\n\r\n### Performance Features\r\n\r\n- **Background Data Fetching**: All system calls run in background goroutines to keep UI responsive\r\n- **Non-blocking Updates**: UI renders immediately while data loads progressively in background\r\n- **Smart Caching**: Data is cached and updated at optimal intervals\r\n- **Efficient Updates**: Network and hardware data updates every 10 seconds\r\n- **Weather Caching**: Weather data updates every 30 seconds to respect API limits\r\n- **Loading Indicators**: Visual feedback shows \"(Loading...)\" while data is being fetched\r\n- **Responsive UI**: Smooth navigation and real-time updates without blocking\r\n\r\n## Requirements\r\n\r\n- Terminal with ANSI color support\r\n- Go 1.21 or later (only required for building from source)\r\n\r\n## Installation\r\n\r\n### From Source\r\n```bash\r\ngit clone https://github.com/Cod-e-Codes/gophetch.git\r\ncd gophetch\r\ngo build\r\n```\r\n\r\n### From Releases\r\nDownload the latest release for your platform from the [Releases](https://github.com/Cod-e-Codes/gophetch/releases) page.\r\n\r\n### Build Scripts\r\nThe project includes build scripts for different platforms:\r\n\r\n**PowerShell (Windows):**\r\n```powershell\r\n.\\build.ps1                    # Build for current platform\r\n.\\build.ps1 -Release           # Build optimized release\r\n.\\build.ps1 -Platform \"linux/amd64\"  # Cross-compile\r\n```\r\n\r\n**Bash (Linux/macOS):**\r\n```bash\r\n./build.sh                     # Build for current platform\r\n./build.sh --release           # Build optimized release\r\n./build.sh --platform \"windows/amd64\"  # Cross-compile\r\n```\r\n\r\n**Release Build (All Platforms):**\r\n```bash\r\n./release.sh 1.0.0             # Build release for all platforms\r\n```\r\n\r\n## Usage\r\n\r\n```bash\r\n# Run with default rain animation\r\n./gophetch\r\n\r\n# Run with custom frame rate\r\n./gophetch 100ms\r\n\r\n# Run with custom ASCII frames file\r\n./gophetch frames.txt\r\n\r\n# Run with custom frames file and frame rate\r\n./gophetch frames.txt 500ms\r\n```\r\n\r\n## Configuration\r\n\r\nGophetch supports a JSON configuration file (`gophetch.json`) that is automatically created on first run. You can customize all display options:\r\n\r\n### Configuration Options\r\n\r\n- **fps**: Animation frame rate (default: 5)\r\n- **color_scheme**: Main color theme (default: \"blue\")\r\n- **show_cpu**: Display CPU information (default: true)\r\n- **show_memory**: Display memory information (default: true)\r\n- **show_disk**: Display disk usage (default: true)\r\n- **show_uptime**: Display system uptime (default: true)\r\n- **show_kernel**: Display kernel/Go version (default: true)\r\n- **show_os**: Display OS and architecture (default: true)\r\n- **show_hostname**: Display username (default: true)\r\n- **frame_file**: Path to custom ASCII frames file (default: \"default\")\r\n- **loop_animation**: Loop animation frames (default: true)\r\n- **static_mode**: One-shot info dump like Neofetch (default: false)\r\n- **hide_animation**: Skip animation even if frames exist (default: false)\r\n- **show_fps_counter**: Show FPS overlay (default: false)\r\n- **show_weather**: Display weather info (default: false)\r\n\r\n## Frame File Format\r\n\r\nCustom ASCII frames can be loaded from text files. Each frame is separated by `---FRAME---`:\r\n\r\n```\r\n┌─────────────┐\r\n│   FRAME 1   │\r\n│  ┌───────┐  │\r\n│  │ ● ● ● │  │\r\n│  └───────┘  │\r\n└─────────────┘\r\n---FRAME---\r\n┌─────────────┐\r\n│   FRAME 2   │\r\n│  ┌───────┐  │\r\n│  │ ○ ● ○ │  │\r\n│  └───────┘  │\r\n└─────────────┘\r\n```\r\n\r\nAn example frame file (`example-frames.txt`) is included with a simple character animation. You can use it as a starting point for your own custom animations.\r\n\r\n## Asciinema .cast File Support\r\n\r\nGophetch now supports asciinema `.cast` files, allowing you to use terminal recordings as animations. This opens up a world of possibilities for creating dynamic, realistic terminal animations.\r\n\r\n### Creating .cast Files\r\n\r\nYou can create `.cast` files using the `asciinema` tool:\r\n\r\n```bash\r\n# Record a terminal session\r\nasciinema rec my-animation.cast\r\n\r\n# Play it back to test\r\nasciinema play my-animation.cast\r\n\r\n# Use it with Gophetch\r\n./gophetch my-animation.cast\r\n```\r\n\r\n### .cast File Features\r\n\r\n- **Automatic frame extraction**: Gophetch automatically extracts frames from the continuous terminal output\r\n- **ANSI sequence processing**: Handles terminal colors, cursor movements, and formatting using regex-based processing\r\n- **Timing preservation**: Maintains the original timing relationships from the recording\r\n- **Standard format**: Works with any asciinema-compatible recording\r\n- **Cross-platform**: Works on all supported platforms (Windows, Linux, macOS, Android/Termux)\r\n\r\n### Supported File Formats\r\n\r\nGophetch now supports two animation formats:\r\n\r\n1. **Custom Frame Files** (`.txt`, `.frames`): Traditional ASCII art frames separated by `---FRAME---`\r\n2. **Asciinema .cast Files** (`.cast`): Terminal recordings with automatic frame extraction\r\n\r\n### Example Use Cases\r\n\r\n- Terminal demos and tutorials\r\n- Command-line tool showcases\r\n- Interactive script demonstrations\r\n- Real-time data visualization\r\n- Terminal-based games and applications\r\n- Live coding sessions\r\n- System monitoring displays\r\n\r\n## Controls\r\n\r\n### Basic Controls\r\n- `q` or `Ctrl+C` - Exit application\r\n\r\n### Tab System Controls\r\n- `Tab` - Switch to next tab\r\n- `Shift+Tab` - Switch to previous tab\r\n- `1-5` - Jump directly to specific tab (Standard, Network, Hardware, Processes, Weather)\r\n- `Up/Down arrows` or `j/k` - Navigate within the Processes tab list\r\n\r\n## System Information Displayed\r\n\r\n### Standard Tab\r\n- Operating system and architecture\r\n- Username\r\n- CPU core count and usage\r\n- Memory allocation and garbage collection stats\r\n- Disk usage and permissions\r\n- Process count\r\n- Load average (estimated on Windows)\r\n- Runtime information (uptime, FPS, Go version)\r\n\r\n### Network Tab\r\n- IP addresses (all network interfaces)\r\n- Active network connections count\r\n- Listening ports and services\r\n- Network interface statistics\r\n\r\n### Hardware Tab\r\n- GPU information and driver details\r\n- Temperature monitoring (where available)\r\n- Fan speed readings (where available)\r\n- Battery status and level (laptops/mobile devices)\r\n\r\n### Processes Tab\r\n- Total process count\r\n- Top processes by resource usage\r\n- Interactive process list with navigation\r\n- Process details (PID, CPU%, Memory usage)\r\n\r\n### Weather Tab\r\n- Current weather conditions and temperature\r\n- Today's detailed forecast with ASCII art\r\n- Auto-detected location\r\n- Real-time weather data from wttr.in\r\n\r\n## Future Enhancements\r\n\r\n- Change default config location to OS-appropriate paths (Linux/macOS: `~/.config/gophetch`, Windows: `%APPDATA%\\gophetch`, Termux: `$HOME/.config/gophetch`)\r\n- Add auto-cycle feature for tabs to enable passive monitoring or demos\r\n\r\n## License\r\n\r\nSee [LICENSE](LICENSE) file for details.\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcod-e-codes%2Fgophetch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcod-e-codes%2Fgophetch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcod-e-codes%2Fgophetch/lists"}