{"id":31558039,"url":"https://github.com/leaf76/lazy_blacktea","last_synced_at":"2026-03-07T13:03:06.114Z","repository":{"id":316276550,"uuid":"1062714069","full_name":"leaf76/lazy_blacktea","owner":"leaf76","description":"PyQt desktop GUI for Android ADB power-users — batch install, logs, screenshots, and multi-device automation.","archived":false,"fork":false,"pushed_at":"2026-03-05T19:11:13.000Z","size":3381,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-05T22:28:43.801Z","etag":null,"topics":["adb","android","appimage","automation","debug","developer-tools","gui","linux","macos","pyqt"],"latest_commit_sha":null,"homepage":"","language":"Python","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/leaf76.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-09-23T16:12:37.000Z","updated_at":"2026-03-05T19:11:17.000Z","dependencies_parsed_at":"2025-10-02T06:13:40.943Z","dependency_job_id":null,"html_url":"https://github.com/leaf76/lazy_blacktea","commit_stats":null,"previous_names":["leaf76/lazy_blacktea"],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/leaf76/lazy_blacktea","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaf76%2Flazy_blacktea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaf76%2Flazy_blacktea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaf76%2Flazy_blacktea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaf76%2Flazy_blacktea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leaf76","download_url":"https://codeload.github.com/leaf76/lazy_blacktea/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leaf76%2Flazy_blacktea/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30214618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T12:15:00.571Z","status":"ssl_error","status_checked_at":"2026-03-07T12:15:00.217Z","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":["adb","android","appimage","automation","debug","developer-tools","gui","linux","macos","pyqt"],"created_at":"2025-10-05T00:12:12.991Z","updated_at":"2026-03-07T13:03:06.101Z","avatar_url":"https://github.com/leaf76.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lazy Blacktea\n\n![Lazy Blacktea logo](assets/icons/icon_128x128.png)\n\n[![Build Status](https://github.com/cy76/lazy_blacktea/workflows/build/badge.svg)](https://github.com/cy76/lazy_blacktea/actions)\n[![Test Status](https://github.com/cy76/lazy_blacktea/workflows/test/badge.svg)](https://github.com/cy76/lazy_blacktea/actions)\n[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n\u003e Current release: v0.0.51 (2026-03-06)\n\u003e Release notes: [CHANGELOG.md](CHANGELOG.md)\n\n**Languages:** English | [繁體中文](README_zh-TW.md)\n\n## Project Status\nThis Python/PyQt6 version may no longer receive active maintenance or new releases.\n\nFor a Rust-based version, please use: \u003chttps://github.com/leaf76/lazy_blacktea_rust\u003e\n\n## Why Lazy Blacktea?\n- Monitor multiple Android devices and schedule operations from a single window.\n- Ship ready-to-run automation tasks (install, record, capture, shell commands, logcat streaming).\n- Offer a clear device table, progress indicators, and dual light/dark themes.\n- Accelerate heavy I/O and file workloads with a Rust native companion module.\n- Rely on built-in tests and CI pipelines to lower regression risks.\n\n## Quick Start\nSee the full setup guide in [docs/quickstart.md](docs/quickstart.md).\n\n```bash\nuv run python lazy_blacktea_pyqt.py\n```\nFor headless environments (CI, remote), add `QT_QPA_PLATFORM=offscreen`.\n\n## Core Features\n| Area | Highlights | Key Modules |\n| --- | --- | --- |\n| Device management | Live discovery, grouping, and dynamic refresh | `ui.async_device_manager`, `ui.device_manager` |\n| Automation tasks | Batch installs (with transfer progress + cancel), bug reports, shell, recording, screenshots | `ui.device_operations_manager`, `utils.adb_tools` |\n| File workflows | Browse device files, preview, and coordinate export paths | `ui.device_file_browser_manager`, `utils.file_generation_utils` |\n| Diagnostics | Logcat streaming, buffer controls, error classification, completion dialogs | `ui.logcat_viewer`, `ui.console_manager`, `ui.error_handler` |\n| Performance | Debounced refresh, batched UI updates, native helpers | `utils.debounced_refresh`, `utils.task_dispatcher`, `native_lbb` |\n\n## UI Preview\n![Lazy Blacktea overview in dark mode](assets/screenshots/Screenshot_0036.png)\n\n## Architecture\nSee [docs/architecture.md](docs/architecture.md) for the project tour, module responsibilities, and troubleshooting notes.\n\n## Deployment \u0026 Release\nSee [docs/deployment.md](docs/deployment.md) for packaging steps, version management, and release checklist details.\n\n## Community \u0026 Support\n- Issue tracker: \u003chttps://github.com/cy76/lazy_blacktea/issues\u003e\n- Discussions: \u003chttps://github.com/cy76/lazy_blacktea/discussions\u003e\n- Contribution guide: [`CONTRIBUTING.md`](CONTRIBUTING.md)\n- Security reports: submit privately via GitHub Security Advisories.\n\n## How to Contribute\n1. Fork the repository and create a feature branch.\n2. Practice TDD: add tests, implement the change, refactor when green. Use Conventional Commits.\n3. Run `python3 tests/run_tests.py` and update docs or performance notes as needed.\n4. Open a pull request with test results, screenshots for UI changes, and relevant context.\n\n## License\nLazy Blacktea ships under the [MIT License](LICENSE); PyQt6 and third-party dependencies keep their respective licenses.\n\n## Roadmap\n- Provide richer automation templates and script samples.\n- Sync preferences, tagging, and usage metrics via optional cloud services.\n- Expand Windows support (experimental).\n- Add guided onboarding and interactive tutorials.\n\nLike the project? Drop a ⭐, share it with your team, and tell us how it helped!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleaf76%2Flazy_blacktea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleaf76%2Flazy_blacktea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleaf76%2Flazy_blacktea/lists"}