adb-ready 0.0.1-alpha.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/COMPATIBILITY.md +39 -0
- package/LICENSE +21 -0
- package/README.md +177 -41
- package/dist/cli.js +7084 -662
- package/dist/cli.js.map +36 -18
- package/docs/RELEASING.md +115 -0
- package/docs/automation.md +126 -0
- package/docs/configuration.md +153 -0
- package/docs/dev-sessions.md +140 -0
- package/docs/getting-started.md +111 -0
- package/docs/logs-and-context.md +109 -0
- package/docs/targets-and-wireless.md +105 -0
- package/docs/troubleshooting.md +118 -0
- package/examples/README.md +18 -0
- package/examples/custom/adb-ready.config.json +21 -0
- package/examples/expo/adb-ready.config.json +10 -0
- package/examples/gradle/adb-ready.config.json +9 -0
- package/examples/react-native/adb-ready.config.json +10 -0
- package/package.json +27 -4
- package/schema/config-v1.schema.json +207 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to ADB Ready are documented here.
|
|
4
|
+
|
|
5
|
+
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and releases follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
While the project is below `1.0.0`, minor releases may include documented
|
|
8
|
+
breaking changes.
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
## [0.1.0] - 2026-09-10
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Interactive and non-interactive Android workflow entrypoints.
|
|
17
|
+
- Deterministic USB, emulator, and Wireless debugging target selection.
|
|
18
|
+
- Secure pairing, wireless connection, and ADB capability diagnostics.
|
|
19
|
+
- Verified TCP reverse and forward port management.
|
|
20
|
+
- Expo, React Native, native Gradle, and direct custom development sessions.
|
|
21
|
+
- Bounded target and port health recovery with independently verified repairs.
|
|
22
|
+
- Targeted structured logcat, private session history, problem inspection, and
|
|
23
|
+
redacted AI-ready context export.
|
|
24
|
+
- JSON Schema-backed project configuration, profiles, lifecycle hooks, and
|
|
25
|
+
explainable configuration precedence.
|
|
26
|
+
- Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
|
|
27
|
+
|
|
28
|
+
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.1.0...HEAD
|
|
29
|
+
[0.1.0]: https://github.com/Adam014/adb-ready/compare/v0.0.1-alpha.0...v0.1.0
|
package/COMPATIBILITY.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Compatibility
|
|
2
|
+
|
|
3
|
+
ADB Ready is distributed as portable JavaScript and delegates Android transport
|
|
4
|
+
work to the user's real `adb` executable. It does not contain native addons and
|
|
5
|
+
does not block installation by operating system or CPU architecture.
|
|
6
|
+
|
|
7
|
+
## Support policy
|
|
8
|
+
|
|
9
|
+
| Tier | Environments | Contract |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| CI target | macOS arm64, Linux x64, Windows x64 | The complete verification gate is configured to run on every push and pull request. |
|
|
12
|
+
| Runtime target | Node.js 22, 24, and 26; current Bun; Deno 2 npm compatibility | The packed CLI entrypoint and deterministic command contract must launch successfully. |
|
|
13
|
+
| Upstream-capable | macOS x64, Linux arm64, Windows arm64, musl Linux, WSL 2, containers, ChromeOS Linux, and BSD | Supported when a compatible JavaScript runtime and a working `adb` executable are available. Reports are accepted and no package metadata intentionally blocks these hosts. |
|
|
14
|
+
|
|
15
|
+
“Upstream-capable” is not a lower-priority user class. It records that the
|
|
16
|
+
availability of Platform-Tools, USB passthrough, mDNS, or host networking can be
|
|
17
|
+
controlled by the operating environment rather than ADB Ready. Compatibility
|
|
18
|
+
claims move to the CI tier only after they have a reproducible test environment.
|
|
19
|
+
|
|
20
|
+
## Architecture and dependencies
|
|
21
|
+
|
|
22
|
+
- The npm artifact is architecture-neutral JavaScript.
|
|
23
|
+
- Node.js 22 or newer is the installation baseline.
|
|
24
|
+
- `adb` remains an external dependency and can be supplied through `PATH`, an
|
|
25
|
+
Android SDK location, or `--adb PATH`.
|
|
26
|
+
- USB and wireless visibility depend on what the selected ADB server can access.
|
|
27
|
+
Remote servers are supported through `--adb-host` and `--adb-port`.
|
|
28
|
+
- npm, pnpm, Yarn, and Bun consumers use the same package and the same
|
|
29
|
+
`adb-ready`/`adbr` entrypoint.
|
|
30
|
+
|
|
31
|
+
## Honest verification boundary
|
|
32
|
+
|
|
33
|
+
Deterministic fixtures cover platform paths, ADB output variants, target states,
|
|
34
|
+
IPv4/IPv6 discovery, selection, cancellation, timeouts, and packaging. A local
|
|
35
|
+
read-only smoke test is available as `bun run verify:real-adb`.
|
|
36
|
+
|
|
37
|
+
Physical USB, emulator, wireless, VPN, container, WSL, and remote-server claims
|
|
38
|
+
must be recorded as tested only after they pass on that real environment. ADB
|
|
39
|
+
Ready never treats a fixture as proof of hardware compatibility.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ADB Ready contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,65 +1,201 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# ADB Ready
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
**One Android target. One reliable development session.**
|
|
6
|
+
|
|
7
|
+
Select a device, prepare localhost ports, start your project, and keep the
|
|
8
|
+
connection healthy—without stitching together fragile ADB scripts.
|
|
9
|
+
|
|
10
|
+
[](https://github.com/Adam014/adb-ready/actions/workflows/ci.yml)
|
|
11
|
+
[](https://www.npmjs.com/package/adb-ready)
|
|
12
|
+
[](https://nodejs.org/)
|
|
13
|
+
[](https://bun.sh/)
|
|
14
|
+
[](https://deno.com/)
|
|
15
|
+
[](./COMPATIBILITY.md)
|
|
4
16
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
17
|
+
[Quick start](#quick-start) · [Why ADB Ready](#why-adb-ready) ·
|
|
18
|
+
[Workflows](#find-your-workflow) · [Documentation](#documentation) ·
|
|
19
|
+
[Compatibility](#compatibility)
|
|
8
20
|
|
|
9
|
-
|
|
21
|
+
</div>
|
|
10
22
|
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
```text
|
|
24
|
+
$ adb-ready dev
|
|
25
|
+
|
|
26
|
+
✓ Android target selected Pixel 9 · wireless
|
|
27
|
+
✓ Localhost ports ready 8081 → 8081
|
|
28
|
+
✓ Development command started pnpm run start --android
|
|
29
|
+
● Session healthy watching target, ports, and logs
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Stop rebuilding your Android setup every time a cable moves, Wi-Fi reconnects,
|
|
33
|
+
or ADB picks the wrong device. ADB Ready turns the target, ports, project
|
|
34
|
+
command, recovery, and useful logs into one development session.
|
|
13
35
|
|
|
14
36
|
```bash
|
|
15
|
-
npx adb-ready
|
|
16
|
-
npx adb-ready@alpha doctor
|
|
17
|
-
npx adb-ready@alpha devices
|
|
37
|
+
npx adb-ready dev
|
|
18
38
|
```
|
|
19
39
|
|
|
20
|
-
|
|
21
|
-
|
|
40
|
+
## Why ADB Ready?
|
|
41
|
+
|
|
42
|
+
### Start once. Stay ready.
|
|
43
|
+
|
|
44
|
+
ADB Ready finds one usable Android target, prepares its ports, launches your
|
|
45
|
+
project with the correct `ANDROID_SERIAL`, and watches the session while you
|
|
46
|
+
work.
|
|
47
|
+
|
|
48
|
+
### Recover without the ritual.
|
|
49
|
+
|
|
50
|
+
When a wireless target or reverse mapping disappears, recovery is bounded,
|
|
51
|
+
target-safe, and independently verified. It never silently restarts the shared
|
|
52
|
+
ADB server or rewrites another tool's mapping.
|
|
53
|
+
|
|
54
|
+
### Get signal instead of noise.
|
|
55
|
+
|
|
56
|
+
Focused logcat, structured problems, and a saved redacted timeline keep the
|
|
57
|
+
important failure evidence together. One command turns it into compact context
|
|
58
|
+
for any AI assistant—without uploading anything.
|
|
59
|
+
|
|
60
|
+
### Keep your existing stack.
|
|
61
|
+
|
|
62
|
+
ADB Ready orchestrates the real ADB, framework, and package manager you already
|
|
63
|
+
use. It does not replace Android Studio or force your project onto Bun.
|
|
64
|
+
|
|
65
|
+
| Projects | Package managers | CLI runtimes |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| Expo · React Native · Gradle · custom | npm · pnpm · Yarn · Bun | Node.js · Bun · Deno |
|
|
68
|
+
|
|
69
|
+
## Quick start
|
|
70
|
+
|
|
71
|
+
You need Android SDK Platform-Tools and Node.js 22 or newer for the standard npm
|
|
72
|
+
entrypoint.
|
|
22
73
|
|
|
23
|
-
|
|
74
|
+
```bash
|
|
75
|
+
# Check ADB and the host
|
|
76
|
+
npx adb-ready doctor
|
|
24
77
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- Read-only Android target discovery with `devices`.
|
|
28
|
-
- Deterministic target selection through `--select`.
|
|
29
|
-
- Human, plain, JSON, and NDJSON output.
|
|
30
|
-
- Explicit ADB executable, server host, server port, timeout, and presentation
|
|
31
|
-
controls.
|
|
32
|
-
- Portable execution through Node, Bun, and Deno.
|
|
78
|
+
# See connected and wireless targets
|
|
79
|
+
npx adb-ready devices
|
|
33
80
|
|
|
34
|
-
|
|
81
|
+
# Start the complete development session
|
|
82
|
+
npx adb-ready dev
|
|
83
|
+
```
|
|
35
84
|
|
|
36
|
-
|
|
85
|
+
Add it to a project when the team should share one version:
|
|
37
86
|
|
|
38
|
-
|
|
39
|
-
|
|
87
|
+
```bash
|
|
88
|
+
npm install --save-dev adb-ready
|
|
89
|
+
npx adb-ready init
|
|
90
|
+
npx adb-ready dev
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Running `adb-ready` without a command opens the interactive workflow home.
|
|
94
|
+
`adbr` is the shorter alias for the same CLI.
|
|
95
|
+
|
|
96
|
+
[Read the five-minute setup →](./docs/getting-started.md)
|
|
97
|
+
|
|
98
|
+
## Find your workflow
|
|
99
|
+
|
|
100
|
+
| I want to… | Start here |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| launch Expo, React Native, Gradle, or my own command | [`adb-ready dev`](./docs/dev-sessions.md) |
|
|
103
|
+
| pair or reconnect an Android device over Wi-Fi | [Targets and Wireless debugging](./docs/targets-and-wireless.md) |
|
|
104
|
+
| choose the right device when several are connected | [Deterministic target selection](./docs/targets-and-wireless.md#explicit-selection) |
|
|
105
|
+
| expose Metro, a local API, or a debugger to Android | [Port workflows](./docs/dev-sessions.md#port-ownership) |
|
|
106
|
+
| see only the Android logs that matter | [Focused logcat](./docs/logs-and-context.md#focused-logcat) |
|
|
107
|
+
| understand why the last session failed | [Session problems](./docs/logs-and-context.md#session-history) |
|
|
108
|
+
| prepare safe evidence for an AI assistant | [Diagnostic context](./docs/logs-and-context.md#diagnostic-context) |
|
|
109
|
+
| share project settings without a custom shell script | [Configuration](./docs/configuration.md) |
|
|
110
|
+
| use ADB Ready from CI or another tool | [Automation contract](./docs/automation.md) |
|
|
111
|
+
| fix a known setup or target problem | [Troubleshooting](./docs/troubleshooting.md) |
|
|
112
|
+
|
|
113
|
+
## What happens in `adb-ready dev`?
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
find or recover one target
|
|
117
|
+
↓
|
|
118
|
+
verify only the ports your project needs
|
|
119
|
+
↓
|
|
120
|
+
start the project on that same target
|
|
121
|
+
↓
|
|
122
|
+
watch target · ports · logs · child process
|
|
123
|
+
↓
|
|
124
|
+
recover safely or explain exactly what needs you
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- Expo and React Native receive reverse port `8081` by default.
|
|
128
|
+
- Add any local service with repeated `--port` flags.
|
|
129
|
+
- Pass any command after `--`; it runs directly without an implicit shell.
|
|
130
|
+
- Existing matching mappings are reused. Conflicts are never overwritten.
|
|
131
|
+
- On exit, only resources created by that session are cleaned up.
|
|
132
|
+
- The final exit code and a bounded, redacted session record are preserved.
|
|
40
133
|
|
|
41
134
|
```bash
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
bunx adb-ready@alpha doctor
|
|
135
|
+
adb-ready dev --port 8081 --port 8000
|
|
136
|
+
adb-ready dev -- pnpm run android:local
|
|
137
|
+
adb-ready dev --dry-run --json
|
|
46
138
|
```
|
|
47
139
|
|
|
48
|
-
|
|
140
|
+
## Built for humans and automation
|
|
141
|
+
|
|
142
|
+
The interactive CLI provides keyboard navigation, live state, reduced-motion
|
|
143
|
+
support, narrow-terminal fallbacks, and clear recovery feedback. Scripts get a
|
|
144
|
+
separate deterministic contract:
|
|
49
145
|
|
|
50
146
|
```bash
|
|
51
|
-
|
|
52
|
-
|
|
147
|
+
adb-ready devices --json --non-interactive
|
|
148
|
+
adb-ready logs --package com.example.app --format ndjson
|
|
149
|
+
adb-ready context --since 5m --only problems,recovery,logs
|
|
53
150
|
```
|
|
54
151
|
|
|
55
|
-
|
|
152
|
+
- machine data on `stdout`, human diagnostics on `stderr`;
|
|
153
|
+
- versioned JSON results and NDJSON events;
|
|
154
|
+
- no prompt, animation, or terminal takeover in redirected/CI execution;
|
|
155
|
+
- stable problem categories, meaningful exit codes, timeouts, and dry runs; and
|
|
156
|
+
- explicit target, ADB path, and remote ADB server overrides.
|
|
157
|
+
|
|
158
|
+
## Documentation
|
|
159
|
+
|
|
160
|
+
| Guide | What it answers |
|
|
161
|
+
| --- | --- |
|
|
162
|
+
| [Getting started](./docs/getting-started.md) | How do I reach my first ready session? |
|
|
163
|
+
| [Development sessions](./docs/dev-sessions.md) | What does ADB Ready own, watch, recover, and clean up? |
|
|
164
|
+
| [Targets and Wireless debugging](./docs/targets-and-wireless.md) | How are devices paired, connected, and selected safely? |
|
|
165
|
+
| [Logs and AI context](./docs/logs-and-context.md) | What is captured, redacted, saved, and exported? |
|
|
166
|
+
| [Configuration](./docs/configuration.md) | How do projects, profiles, hooks, and precedence work? |
|
|
167
|
+
| [Automation](./docs/automation.md) | What are the JSON, NDJSON, stdout, and exit-code contracts? |
|
|
168
|
+
| [Troubleshooting](./docs/troubleshooting.md) | What should I do for each common failure? |
|
|
169
|
+
| [Compatibility](./COMPATIBILITY.md) | Which hosts, runtimes, and environments are covered? |
|
|
170
|
+
| [Example configs](./examples/README.md) | What can I copy for Expo, React Native, Gradle, or custom projects? |
|
|
171
|
+
|
|
172
|
+
Run `adb-ready --help` for the full command list or
|
|
173
|
+
`adb-ready help COMMAND` for focused options.
|
|
174
|
+
|
|
175
|
+
## Compatibility
|
|
176
|
+
|
|
177
|
+
ADB Ready targets macOS, Linux, and Windows, with Node.js, Bun, and Deno runtime
|
|
178
|
+
smoke coverage. The package is architecture-neutral JavaScript with no native
|
|
179
|
+
addon or artificial OS/CPU block. A working ADB executable remains the only
|
|
180
|
+
Android transport backend.
|
|
181
|
+
|
|
182
|
+
[See tested and upstream-capable support tiers →](./COMPATIBILITY.md)
|
|
183
|
+
|
|
184
|
+
## Trust by default
|
|
185
|
+
|
|
186
|
+
- The shared ADB server is never restarted implicitly.
|
|
187
|
+
- Destructive or global actions are never hidden inside recovery.
|
|
188
|
+
- Pairing codes never enter command-line arguments.
|
|
189
|
+
- Session data is bounded, redacted, private to the user, and never uploaded.
|
|
190
|
+
- Package contents are allowlisted and checked before release.
|
|
191
|
+
- npm publication is prepared for short-lived OIDC credentials and provenance.
|
|
192
|
+
|
|
193
|
+
## Project
|
|
56
194
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
current commands are intentionally read-only and never restart the ADB server
|
|
60
|
-
or mutate a connected device.
|
|
195
|
+
[Changelog](./CHANGELOG.md) · [Contributing](./CONTRIBUTING.md) ·
|
|
196
|
+
[Security](./SECURITY.md) · [MIT License](./LICENSE)
|
|
61
197
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
198
|
+
ADB Ready is Android-only. The `0.1.0` release focuses on target acquisition,
|
|
199
|
+
ports, development-session recovery, logs, diagnostics, and automation. App
|
|
200
|
+
lifecycle, files, screenshots, screen recording, and shell workflows come
|
|
201
|
+
after this core is proven on real projects.
|