{"id":31579038,"url":"https://github.com/matheusfillipe/bqui","last_synced_at":"2026-05-03T20:33:44.204Z","repository":{"id":314524225,"uuid":"1055860943","full_name":"matheusfillipe/bqui","owner":"matheusfillipe","description":"TUI for bigquery - 100% vibed, dont even use","archived":false,"fork":false,"pushed_at":"2025-09-17T07:53:05.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T20:52:06.650Z","etag":null,"topics":["bigquery","bubbleteat","charm","golang","google","sql","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matheusfillipe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-09-12T23:41:49.000Z","updated_at":"2025-09-17T07:53:08.000Z","dependencies_parsed_at":"2025-09-13T01:24:31.968Z","dependency_job_id":"0862642b-aef8-4e80-a039-6637b8779da0","html_url":"https://github.com/matheusfillipe/bqui","commit_stats":null,"previous_names":["matheusfillipe/bqui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matheusfillipe/bqui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfillipe%2Fbqui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfillipe%2Fbqui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfillipe%2Fbqui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfillipe%2Fbqui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matheusfillipe","download_url":"https://codeload.github.com/matheusfillipe/bqui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfillipe%2Fbqui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32584046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"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":["bigquery","bubbleteat","charm","golang","google","sql","terminal","tui"],"created_at":"2025-10-05T20:45:23.753Z","updated_at":"2026-05-03T20:33:44.198Z","avatar_url":"https://github.com/matheusfillipe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bqui 📊\n\nA beautiful Terminal User Interface for Google BigQuery, built with Go and [Bubble Tea](https://github.com/charmbracelet/bubbletea).\n\n**bqui** makes exploring BigQuery datasets and tables as simple and delightful as using your favorite CLI tools like `lazydocker` or the BigQuery web console.\n\n## ✨ Features\n\n- **🏗️ Intuitive Two-Pane Layout**: Browse datasets and tables in the left pane, view schemas and data in the right pane\n- **⌨️ Vim Key Bindings**: Full vim-style navigation (`hjkl`, `g`/`G`, etc.) plus standard arrow keys\n- **🔍 Powerful Search**: Filter datasets and tables with `/` - type to search, `Esc` to clear\n- **📋 Smart Copy**: Copy full table names to clipboard with `y` or `Ctrl+Y`\n- **📊 Schema Viewer**: Inspect table schemas with field types, modes (REQUIRED/REPEATED), and descriptions\n- **👀 Data Preview**: Sample table data right in your terminal\n- **🔄 Tab Navigation**: Switch between Schema, Preview, and Query tabs with `Tab`\n- **🚀 Project Switching**: Access multiple GCP projects with `Ctrl+P`\n- **🎨 Beautiful Styling**: Clean, colorful interface with proper syntax highlighting\n\n## 🚀 Installation\n\n### From Source\n\n```bash\ngo install github.com/yourusername/bqui/cmd/bqui@latest\n```\n\n### Build Locally\n\n```bash\ngit clone https://github.com/yourusername/bqui.git\ncd bqui\nmake build\n```\n\n## 🔧 Setup\n\n### Authentication\n\nbqui uses Google Cloud's standard authentication methods:\n\n1. **Application Default Credentials**:\n   ```bash\n   gcloud auth application-default login\n   ```\n\n2. **Service Account Key**:\n   ```bash\n   export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n   ```\n\n3. **Via Command Line**:\n   ```bash\n   bqui -credentials /path/to/service-account.json\n   ```\n\n### Project Configuration\n\nSet your default project:\n```bash\nexport GOOGLE_CLOUD_PROJECT=your-project-id\n# or\nexport GCP_PROJECT=your-project-id\n```\n\nOr specify via command line:\n```bash\nbqui -project your-project-id\n```\n\n## 🎮 Usage\n\n### Basic Usage\n\n```bash\n# Use default project from credentials\nbqui\n\n# Specify project explicitly\nbqui -project my-gcp-project\n\n# Use custom credentials\nbqui -project my-project -credentials /path/to/creds.json\n\n# Show help\nbqui -h\n```\n\n### Key Bindings\n\n#### Navigation\n- `↑↓←→` or `hjkl` - Navigate lists and panes\n- `Enter` - Select dataset or table\n- `Tab` - Switch between left/right panes or tabs within right pane\n- `g` / `G` - Go to top/bottom (vim-style)\n- `Home` / `End` - Go to top/bottom\n- `Page Up` / `Page Down` - Page navigation\n\n#### Search \u0026 Filter\n- `/` - Start search/filter mode\n- `Esc` - Clear filter or exit search mode\n- Type to filter results in real-time\n\n#### Actions\n- `y` or `Ctrl+Y` - Copy full table name to clipboard\n- `Tab` - Cycle through right pane tabs (Schema → Preview → Query → Schema...)\n- `Esc` - Go back to left pane / cancel search / exit help\n- `Ctrl+P` - Open project selector\n- `?` - Show/hide help\n- `q` or `Ctrl+C` - Quit application\n\n#### Right Pane Tabs\n- **Schema Tab**: View table structure, field types, and descriptions\n- **Preview Tab**: See sample data from the table\n- **Query Tab**: Execute custom SQL queries (coming soon)\n\n### Navigation Flow\n\n1. **Start**: View all datasets in your project\n2. **Select Dataset**: Press `Enter` on a dataset to see its tables\n3. **Select Table**: Press `Enter` on a table to automatically switch to schema view\n4. **Explore Table**: Use `Tab` to cycle through Schema → Preview → Query tabs\n5. **Go Back**: Press `Esc` to return to the left pane (table list)\n6. **Search**: Use `/` to quickly find datasets or tables\n7. **Copy**: Use `y` to copy table names for use in your queries\n\n## 🧪 Examples\n\n### Exploring a Dataset\n\n```bash\n# Launch bqui\nbqui -project my-data-warehouse\n\n# Navigate to your analytics dataset\n# Use ↓ or j to select \"analytics_dataset\"\n# Press Enter to explore tables\n\n# Search for specific tables\n# Press / and type \"user\" to filter to user-related tables\n# Press Enter on \"user_events\" to see its schema\n\n# Copy table name for use in queries\n# Press y to copy \"my-data-warehouse.analytics_dataset.user_events\"\n```\n\n## 🔧 Configuration\n\n### Environment Variables\n\n- `GOOGLE_APPLICATION_CREDENTIALS` - Path to service account credentials\n- `GOOGLE_CLOUD_PROJECT` - Default GCP project ID\n- `GCP_PROJECT` - Alternative project ID variable\n\n### Command Line Flags\n\n- `-project` - BigQuery project ID\n- `-credentials` - Path to credentials file\n- `-emulator` - BigQuery emulator endpoint (for testing)\n- `-version` - Show version information\n\n## 🧑‍💻 Development\n\n### Prerequisites\n\n- Go 1.21 or later\n- Google Cloud SDK (for authentication)\n\n### Building\n\n```bash\n# Install dependencies\ngo mod download\n\n# Build the binary\ngo build ./cmd/bqui\n\n# Run tests\nmake test\n\n# Run with emulator for testing\nmake test-emulator\n```\n\n### Testing\n\nbqui includes comprehensive tests using the [BigQuery emulator](https://github.com/goccy/bigquery-emulator):\n\n```bash\n# Run all tests\nmake test\n\n# Run tests with coverage\nmake test-coverage\n\n# Run specific test\ngo test ./internal/bigquery -v\n```\n\n### Project Structure\n\n```\nbqui/\n├── cmd/bqui/           # Main application entry point\n├── internal/\n│   ├── bigquery/       # BigQuery client wrapper\n│   └── tui/           # TUI components (Bubble Tea)\n├── pkg/clipboard/      # Clipboard utilities\n├── test/              # Test files and fixtures\n└── .github/workflows/ # CI/CD pipelines\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n### Quick Start\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Make your changes and add tests\n4. Run tests: `make test`\n5. Commit: `git commit -m 'Add amazing feature'`\n6. Push: `git push origin feature/amazing-feature`\n7. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Bubble Tea](https://github.com/charmbracelet/bubbletea) - The fantastic TUI framework\n- [BigQuery Go Client](https://pkg.go.dev/cloud.google.com/go/bigquery) - Official Google BigQuery client\n- [BigQuery Emulator](https://github.com/goccy/bigquery-emulator) - Testing infrastructure\n- Inspired by [lazydocker](https://github.com/jesseduffield/lazydocker) and similar TUI tools\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n**Authentication Errors**\n```bash\n# Ensure you're authenticated\ngcloud auth application-default login\n\n# Or set credentials explicitly\nexport GOOGLE_APPLICATION_CREDENTIALS=/path/to/creds.json\n```\n\n**Project Access Issues**\n```bash\n# Verify project access\ngcloud projects list\n\n# Set default project\ngcloud config set project YOUR_PROJECT_ID\n```\n\n**Build Issues**\n```bash\n# Clean and rebuild\ngo clean -cache\ngo mod download\ngo build ./cmd/bqui\n```\n\n### Getting Help\n\n- 📝 [Open an issue](https://github.com/yourusername/bqui/issues) for bug reports\n- 💡 [Start a discussion](https://github.com/yourusername/bqui/discussions) for questions\n- 📧 Email: your-email@example.com\n\n---\n\n*bqui makes BigQuery exploration delightful. Happy querying! 🚀*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusfillipe%2Fbqui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheusfillipe%2Fbqui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusfillipe%2Fbqui/lists"}