{"id":13837252,"url":"https://github.com/aurc/loggo","last_synced_at":"2026-04-01T18:19:20.356Z","repository":{"id":36954101,"uuid":"493844885","full_name":"aurc/loggo","owner":"aurc","description":"A powerful terminal app for structured log streaming","archived":false,"fork":false,"pushed_at":"2026-03-19T05:17:37.000Z","size":51497,"stargazers_count":278,"open_issues_count":7,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-19T18:39:18.891Z","etag":null,"topics":["command-line","command-line-tool","go","golang","google-logging","kubectl","kubectl-logs","log","log-analysis","log-management","log-parser","log-reader","logging","terminal-app","terminal-ui"],"latest_commit_sha":null,"homepage":"","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/aurc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-05-18T22:33:44.000Z","updated_at":"2026-03-19T08:58:05.000Z","dependencies_parsed_at":"2024-01-13T17:31:48.835Z","dependency_job_id":null,"html_url":"https://github.com/aurc/loggo","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/aurc/loggo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurc%2Floggo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurc%2Floggo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurc%2Floggo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurc%2Floggo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aurc","download_url":"https://codeload.github.com/aurc/loggo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurc%2Floggo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":["command-line","command-line-tool","go","golang","google-logging","kubectl","kubectl-logs","log","log-analysis","log-management","log-parser","log-reader","logging","terminal-app","terminal-ui"],"created_at":"2024-08-04T15:01:04.417Z","updated_at":"2026-04-01T18:19:20.343Z","avatar_url":"https://github.com/aurc.png","language":"Go","readme":"# l'oGGo: Rich Terminal User Interface Logging App\n![release](https://img.shields.io/github/v/release/aurc/loggo)\n![release workflow](https://github.com/aurc/loggo/actions/workflows/go.yml/badge.svg)\n![license](https://img.shields.io/github/license/aurc/loggo)\n![go_version](https://img.shields.io/github/go-mod/go-version/aurc/loggo)\n![downloads](https://img.shields.io/github/downloads/aurc/loggo/total)\n## Introduction\n\n*For the impatient, go to [Getting Started](#getting-started)*\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"img/loggo_sm.png\"\u003e\n\u003c/p\u003e\n\nl'oGGo or Log \u0026 Go is a rich Terminal User Interface app written in [golang](https://go.dev/) that harness the\npower of your terminal to digest log streams based on JSON based logs.\n\nThis can be used against applications running locally, on a Kubernetes cluster (see [K8S Cheatsheet](#k8s)), GCP\nStack Driver ([Google Logs](https://cloud.google.com/logging), see [GCP-Stream Command](#gcp-stream-command)) and many others.\n\n\u003cimg src=\"img/compare.png\"\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003eWithout l`oGGo\u003c/p\u003e\n\u003cimg src=\"img/mov/term.gif\"\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eWith l`oGGo\u003c/p\u003e\n\u003cimg src=\"img/mov/loggo.gif\"\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nLoggo App leveraged [tview](https://github.com/rivo/tview/) and [tcell](https://github.com/gdamore/tcell) projects for rich Terminal User \nInterface (TUI).\n\n## Getting Started\n\n### macOS/Linux with Homebrew/Linuxbrew:\nThe easiest way is to utilise [Homebrew](https://brew.sh/) **(macOS)** or [LinuxBrew](https://docs.brew.sh/Homebrew-on-Linux) **(Linux)**\npackage management system. Once installed simply issue the following command:\n\n````\nbrew tap aurc/loggo\nbrew install aurc/loggo/loggo\n````\n\nTo update:\n````\nbrew upgrade aurc/loggo/loggo\n````\n\n### All Systems\n\n### Install with X-CMD\n\nIf you are an [x-cmd](https://x-cmd.com) user, you can use the following command to quickly find and execute the appropriate loggo installation command for your system:\n\n````\nx install loggo\n````\n\n### Install with Go\nAssuming you have [go](https://go.dev/) installed in your system (best choice if not homebrew) and bin packages\nare in your `PATH`, just run:\n\n````\ngo install github.com/aurc/loggo@latest\n````\n\n### Build from Source:\nIncluding **macOS**, build from source. \nPre-Reqs:\n- [Golang](https://go.dev/) v1.8+\n- Checkout the project from [https://github.com/aurc/loggo/](https://github.com/aurc/loggo/)\n\n````\ngo build -o loggo\n````\n\u003e Install the `loggo` binary in your system's binary bucket or add `loggo` binary to your\npath.\n\n### Download Pre-Compiled binary\n\nThis option might be suitable for you if you don't have Home/Linux-Brew or golang \nreadly available for you. In this case you can download a pre-compiled exectuable binary\nfor the following platforms:\n\nLatest Release [pre-build binaries here](https://github.com/aurc/loggo/releases/latest)!\n\n- **Windows 11**:\n    \n   Download a `tar.gz` file from [pre-build binaries](https://github.com/aurc/loggo/releases/latest) that match your platform:\n   - Most of PCs will be `amd64`, so file format will be like `loggo_x.y.z_windows_amd64.tar.gz`. Note: *If you own a Surface Pro, or\nvirtualised windows on a Mac M series, you'll probably want to grab the `arm64` version.*\n   - Open a terminal window (`cmd.exe`) and issue the following command in the folder you downloaded the file:\n     ````\n     tar -xvzf loggo_x.y.z_windows_amd64.tar.gz\n     ````\n   - A file `loggo.exe` will be extracted to the current folder.\n   - You can place this file in a directory that's on your %PATH% so the command `loggo` is accessible from anywhere.\n   - \n- **Linux** (both arm64 and amd64 plat):\n  - ubuntu:  `tar.gz` file from releases (e.g. loggo_vx.y.z_linux_\u003cplat\u003e.tar.gz)\n  - debian:  `*.deb` file from releases\n  - redhat:  `*.rpm` file from releases\n  - alpine:  `*.apk` file from releases\n\n## Using l'oGGo\n\nLoggo can be used to stream parsed logs from a persisted file and from a \npiped input and also provides a tool for creating log templates.\n\n### Some Features\n- Local Log filtering/search\n  - Main log stream remains unaffected regardless of the source (gcp, pipe, file, etc...)\n  - Display only log entries that match search/filter criteria\n  - Convenient key finder and operators for filter expression crafting\n  ![](img/loggo_filter.png)\n- Drill down onto each log entry\n  ![](img/log_entry.png)\n- Copy Log-Entry to Clipboard\n  - Note: Linux requires X11 dev package. For instance, install `libx11-dev` or `xorg-dev` or `libX11-devel` to access X window system.\n    ![](img/copy_clipboard.png)\n- Navigate Left-Right-Up-Down on Large Grids\n  - Select a Line\n  - Use the arrow keys (`↓ ↑ ← →`)\n    ![](img/mov/nav_right_left.gif)\n- Select on screen text\n  - Horizontally based selection (`Alt` + Mouse `Click/Drag`)\n  - Block/Vertical based selection (`Cmd`+`Opt`+ Mouse `Click/Drag` - macOS)\n  - Copy the selected text to clipboard (`Cmd`+`C` - macOS/`Ctrl`+`C` - other systems)\n    ![](img/mov/selection.gif)\n- Configure Rendering Templates:\n  ![](img/render_template.png)\n- Fine Tune how columns are displayed (Template):\n  - Note that single Value Matches are REGEX expressions.\n    ![](img/how_to_display.png)\n\n### `help` Command\n\nTo gain fine grained insight of each `loggo` command params, use\nthe `help` command, e.g.:\n````\nloggo help\nloggo help stream\nloggo help template\nloggo help gcp-stream\n````\n\n### `stream` Command\n\n![](img/loggo_log.png)\n\n**From File:**\n````\nloggo stream --file \u003cmy file\u003e\n````\n*With Template:*\n````\nloggo stream --file \u003cmy file\u003e --template \u003cmy template yaml\u003e\n````\n\n**From Pipe:**\n````\ntail -f \u003cmy file\u003e | loggo stream\n````\nKubernetes example (See [K8S Cheatsheet](#k8s-cheatsheet))\n````\nkubectl logs -f -n \u003cnamespace\u003e \u003cpod\u003e | loggo stream\n````\n*With Template:*\n````\ntail -f \u003cmy file\u003e | loggo stream --template \u003cmy template yaml\u003e\n````\n\nNote that you can pipe to anything that produces an output to the `stdin`.\n\n### `gcp-stream` Command \nl`oGGo natively supports GCP Logging but in order to use this feature, there are a few caveats:\n- Your personal account has the required permissions to access the logging resources.\n\n\nNote: `gcp-stream` **does not** support piped commands. If you want to use piped\ncommands (e.g. chaining K8S output) use the `stream` command instead.\n\nExample:\n````\nloggo gcp-stream \\\n    --filter 'resource.labels.namespace_name=\"some-namespace\" resource.labels.container_name=\"some-container\"' \\\n    --project some-project-ID \\\n    --from 10m\n````\nWhere:\n````\nUsage:\n  loggo gcp-stream [flags]\n\nFlags:\n  -p, --project string       GCP Project ID (required)\n  \n  ------------------- Optional Below ------------------\n  \n  -f, --filter string        Standard GCP filters\n      --force-auth           Only effective if combined with gcloud flag. Force re-authentication even\n                             if you may have a valid authentication file.\n  -d, --from string          Start streaming from:\n                               Relative: Use format \"1s\", \"1m\", \"1h\" or \"1d\", where:\n                                         digit followed by s, m, h, d as second, minute, hour, day.\n                               Fixed:    Use date format as \"yyyy-MM-ddH24:mm:ss\", e.g. 2022-07-30T15:00:00\n                               Now:      Use \"tail\" to start from now (default \"tail\")\n      --gcloud-auth          Use the existing GCloud CLI infrastructure installed on your system for GCP\n                             authentication. You must have gcloud CLI installed and configured. If this\n                             flag is not passed, it uses l'oggo native connector.\n  -h, --help                 help for gcp-stream\n      --params-list          List saved gcp connection/filtering parameters for convenient reuse.\n      --params-load string   Load the parameters for reuse. If any additional parameters are\n                             provided, it overrides the loaded parameter with the one explicitly provided.\n      --params-save string   Save the following parameters (if provided) for reuse:\n                               Project:   The GCP Project ID\n                               Template:  The rendering template to be applied.\n                               From:      When to start streaming from.\n                               Filter:    The GCP specific filter parameters.\n  -t, --template string      Rendering Template\n````\n\nFor convenience, you can build a list of frequently used command parameters/flags and reuse them without\nhaving to rewrite lengthy list of parameters, for example:\n\n````\nloggo gcp-stream \\\n    --filter 'resource.labels.namespace_name=\"some-namespace\" resource.labels.container_name=\"some-container\"' \\\n    --project some-project-ID \\\n    --from 10m\n    --template /tmp/myTemplate.yaml\n    --params-save mySavedParams1\n````\n\nThen you simply issue:\n````\nloggo gcp-stream --params-load mySavedParams1\n````\n\nIf you want to review all saved params buckets, issue the following command:\n\n````\nloggo gcp-stream --params-list\n````\n\nAdditionally, you might want to overwrite some parameters. The example command uses `--from 10m`, and\nsay you want to `tail` instead:\n\n````\nloggo gcp-stream --params-load mySavedParams1 --from tail\n````\n\nAny additional parameter provided will overwrite the loaded params at runtime.\n\n### `template` Command\nThe template command opens up the template editor without the\nneed to stream logs. This is convenient if you want to craft\ntemplates prior using the loggo command.\n\n**Blank Canvas:**\n\n![](img/mov/template.gif)\n````\nloggo template\n````\n\n**Edit Existing Template:**\n````\nloggo template --file \u003cmy template yaml\u003e\n````\n\n## K8S Cheatsheet\n\nCombined logs of all pods of an application.\n````\nkubectl -n \u003csome-namespace\u003e logs -f deployment/\u003capplication-name\u003e \\\n  --all-containers=true \\\n  --since=10m | loggo stream\n````\n\nLogs of a pod.\n````\nkubectl logs -f -n \u003csome-namespace\u003e \u003cpod-name\u003e | loggo stream\n````\n\n## Current Limitations\n\nMost of the items listed here are slated for development in the near future,\nprior the first release.\n- Browse/Load new log templates on the fly.\n- Create template with keys whose name contains `/` as it uses slashes to navigate to nested json branches.\n\n## Feedback\n\nPlease let us know your **thoughts**, **feature requests** and **bug reports**! Use the issues report\nlink here: https://github.com/aurc/loggo/issues\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurc%2Floggo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faurc%2Floggo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurc%2Floggo/lists"}