{"id":45531013,"url":"https://github.com/waabox/gitdeck","last_synced_at":"2026-02-23T01:01:24.895Z","repository":{"id":339960435,"uuid":"1163701802","full_name":"waabox/gitdeck","owner":"waabox","description":"A fast TUI dashboard to monitor GitHub Actions and GitLab CI/CD pipelines from your terminal — no browser, no clutter.","archived":false,"fork":false,"pushed_at":"2026-02-22T15:35:54.000Z","size":1152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-22T18:55:10.356Z","etag":null,"topics":["git","temrinal","tui"],"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/waabox.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":"2026-02-22T02:22:00.000Z","updated_at":"2026-02-22T15:34:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/waabox/gitdeck","commit_stats":null,"previous_names":["waabox/gitdeck"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/waabox/gitdeck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waabox%2Fgitdeck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waabox%2Fgitdeck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waabox%2Fgitdeck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waabox%2Fgitdeck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waabox","download_url":"https://codeload.github.com/waabox/gitdeck/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waabox%2Fgitdeck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29733997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T20:09:16.275Z","status":"ssl_error","status_checked_at":"2026-02-22T20:09:13.750Z","response_time":110,"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":["git","temrinal","tui"],"created_at":"2026-02-23T01:00:45.703Z","updated_at":"2026-02-23T01:01:24.788Z","avatar_url":"https://github.com/waabox.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/waabox/gitdeck/wiki\"\u003e\n    \u003cimg src=\"./assets/logo-plain.png\" width=\"30%\" alt=\"gitdeck\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA terminal UI for monitoring CI/CD pipelines.\u003c/strong\u003e\u003cbr/\u003e\n  Run it from any git repository and get an instant overview of pipeline runs and job statuses — no browser required.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/waabox/gitdeck/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/waabox/gitdeck/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/waabox/gitdeck/actions/workflows/release.yml\"\u003e\u003cimg src=\"https://github.com/waabox/gitdeck/actions/workflows/release.yml/badge.svg\" alt=\"Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/waabox/gitdeck/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/waabox/gitdeck\" alt=\"Latest Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"go.mod\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/waabox/gitdeck\" alt=\"Go Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License: MIT\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/waabox/gitdeck/wiki\"\u003e\u003cimg src=\"https://img.shields.io/badge/wiki-documentation-blue?logo=github\" alt=\"Wiki\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/demo.gif\" width=\"80%\" alt=\"gitdeck demo\" /\u003e\n\u003c/p\u003e\n\n## Why gitdeck instead of the web UI?\n\n- **No context-switching**: see pipelines, jobs and logs without leaving your terminal.\n- **Keyboard-first**: rerun / cancel with a single keypress.\n- **Works with both GitHub Actions and GitLab CI/CD** from the same tool.\n\n## Quick Start\n\n```bash\n# Option A: Homebrew\nbrew tap waabox/gitdeck \u0026\u0026 brew install gitdeck\n\n# Option B: One-liner install (requires Go 1.24+)\ncurl -sSL https://raw.githubusercontent.com/waabox/gitdeck/main/install.sh | bash\n\ncd /path/to/your/repo\ngitdeck\n```\n\nOn first run gitdeck will authenticate via OAuth Device Flow — just open a link and enter a code.\n\n## Features\n\n- Live pipeline list with status icons and durations\n- Job detail panel with per-job navigation\n- Per-job step detail: press `enter` on a job to expand its individual steps inline\n- Auto-refresh every 5 seconds\n- Configurable number of pipelines to display (default: 3)\n- OAuth Device Flow authentication for GitHub and GitLab (no manual token copy-paste)\n- Config via `~/.config/gitdeck/config.toml` with environment variable overrides\n- Auto-detects repository from the current working directory\n- View full raw job logs in a fullscreen scrollable panel (press `l` on a job)\n- Re-run or cancel any pipeline with a single keypress and inline confirmation\n\n## Installation\n\n### macOS (Homebrew)\n\n```bash\nbrew tap waabox/gitdeck\nbrew install gitdeck\n```\n\n\u003e **Note:** The binary is not yet signed with an Apple Developer certificate, so macOS may flag it as unverified. If that happens, remove the quarantine attribute:\n\u003e ```bash\n\u003e xattr -d com.apple.quarantine \"$(readlink -f $(which gitdeck))\"\n\u003e ```\n\n### Linux (Debian/Ubuntu)\n\n```bash\nwget https://github.com/waabox/gitdeck/releases/latest/download/gitdeck_linux_amd64.deb\nsudo dpkg -i gitdeck_linux_amd64.deb\n```\n\nFor ARM64:\n\n```bash\nwget https://github.com/waabox/gitdeck/releases/latest/download/gitdeck_linux_arm64.deb\nsudo dpkg -i gitdeck_linux_arm64.deb\n```\n\n### Linux (RPM — Fedora/RHEL)\n\n```bash\nsudo rpm -i https://github.com/waabox/gitdeck/releases/latest/download/gitdeck_linux_amd64.rpm\n```\n\n### Quick install (curl)\n\n```bash\ncurl -sSL https://raw.githubusercontent.com/waabox/gitdeck/main/install.sh | bash\n```\n\nClones the repo into a temp directory, builds from source, and installs the binary to `/usr/local/bin`. Requires **Git** and **Go 1.24+**.\n\n### From source\n\n```bash\ngit clone https://github.com/waabox/gitdeck.git\ncd gitdeck\ngo build -o gitdeck ./cmd/gitdeck\nmv gitdeck /usr/local/bin/\n```\n\nRequires Go 1.24 or later.\n\n## Authentication\n\ngitdeck ships with built-in OAuth credentials for **GitHub** and **GitLab**. On first run it starts the Device Flow automatically — just open a link and enter a code:\n\n```\nNo GitHub token found. Starting OAuth authentication...\nVisit:      https://github.com/login/device\nEnter code: ABCD-1234\nWaiting for authorization...\nAuthenticated. Token saved to /Users/you/.config/gitdeck/config.toml\n```\n\nThe token is saved so subsequent runs are silent. No config file needed for the common case.\n\n## Configuration\n\nOptionally create `~/.config/gitdeck/config.toml` to customize behavior:\n\n```toml\n# Number of recent pipelines to show (default: 3)\npipeline_limit = 3\n\n[github]\n# Override the built-in OAuth Client ID with your own\n# client_id = \"YOUR_GITHUB_OAUTH_APP_CLIENT_ID\"\n\n[gitlab]\n# Override the built-in OAuth Application ID with your own\n# client_id = \"YOUR_GITLAB_OAUTH_APP_CLIENT_ID\"\n# Only needed for self-hosted GitLab instances\n# url = \"https://gitlab.example.com\"\n```\n\n### Environment variable overrides\n\n| Variable       | Overrides        |\n|----------------|------------------|\n| `GITHUB_TOKEN` | `github.token`   |\n| `GITLAB_TOKEN` | `gitlab.token`   |\n| `GITLAB_URL`   | `gitlab.url`     |\n\n### Using your own OAuth Apps\n\nIf you prefer to use your own OAuth credentials instead of the built-in ones:\n\n**GitHub**: Create an OAuth App at *Settings → Developer settings → OAuth Apps*. Set the callback URL to `http://localhost`. Copy the Client ID into the config.\n\n**GitLab**: Create an OAuth App at *User Settings → Applications*. Enable the `read_api` scope and tick *Allow Device Authorization Grant*. Copy the Application ID into the config.\n\n## Keyboard shortcuts\n\n| Key              | Action                                        |\n|------------------|-----------------------------------------------|\n| `↑` / `↓`        | Navigate pipelines or jobs / scroll logs      |\n| `Enter`          | Select pipeline, focus job detail panel       |\n| `Tab`            | Switch focus between panels                   |\n| `l`              | View full logs for selected job (fullscreen)  |\n| `r`              | Re-run selected pipeline (asks confirmation)  |\n| `x`              | Cancel selected pipeline (asks confirmation)  |\n| `PgUp` / `PgDn`  | Scroll logs by page (in log viewer)           |\n| `g` / `G`        | Jump to top / bottom of log (in log viewer)   |\n| `Esc`            | Exit log viewer / return focus to pipelines   |\n| `ctrl+r`         | Refresh pipelines now                         |\n| `q` / `Ctrl+C`   | Quit                                          |\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## Built with\n\n- [Go](https://go.dev)\n- [Bubble Tea](https://github.com/charmbracelet/bubbletea) — TUI framework\n- [Lip Gloss](https://github.com/charmbracelet/lipgloss) — Styling\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/waabox/gitdeck/wiki\"\u003eDocumentation\u003c/a\u003e · \u003ca href=\"https://github.com/waabox/gitdeck/issues\"\u003eIssues\u003c/a\u003e · \u003ca href=\"https://github.com/waabox/gitdeck/releases/latest\"\u003eReleases\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaabox%2Fgitdeck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaabox%2Fgitdeck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaabox%2Fgitdeck/lists"}