Repository navigation
Releases
adbrent 0.4.5
Faster
- Plain
adbon a session's device is as fast as naming the serial. A session that holds one device no longer asks adb what is connected on every command; it checks again every half minute. On a real phone this took plainadbfrom about 9.5 ms of overhead to about 2.3 ms. - The in-use check and the on-rent command waste less time waiting. They are polled from 1 ms upward instead of every 10 or 20 ms.
Fixed
- Log lines could mix. Two commands finishing at the same moment could write their log lines into each other, leaving lines
adbrent logand the report skipped. Each line is now written in one piece.
Changed behaviour
- If a session's device is unplugged, its plain
adbgets adb's own "device not found" for up to half a minute before adbrent gives it another device. Before, it moved to another device on the next command. - The shortcut is not used with
-d,-e,-t,-H,-P,-L, or whenANDROID_ADB_SERVER_PORT,ANDROID_ADB_SERVER_ADDRESSorADB_SERVER_SOCKETis set.
Tested
30 tests pass. Benchmarked on an Apple Silicon Mac against a real phone, and with 40 sessions taking 8 devices at once. Not tested on Linux; the Intel Mac binary was only started under Rosetta.
adbrent 0.4.4
- Fair waiting line. Agents waiting with
adbrent rent --waitare served first come, first served. A device that comes free goes to whoever has waited longest; an agent that arrives later is told others are first.adbrent statusand the status page list who is waiting. - Commands on rent and release.
adbrent on rent '<command>'andadbrent on release '<command>'run a shell command of yours each time a device changes hands, with the device in$ADBRENT_SERIALand the real adb in$ADB. - Clearer report.
adbrent reportno longer says sessions "ran into something" when nothing was rented or refused.
Not tested on Linux for this release; the changes are not platform-specific.
adbrent 0.4.3
Debug mode on the status page (adbrent serve):
- A badge and a Debug mode panel show whether debug is on, with a button to switch it.
- The panel carries the same summary as
adbrent report, including what is worth a look. - With debug on, a Commands view lists every adb and adbrent command agents ran, with the ones adbrent stopped marked.
adbrent report --jsonprints the report as data.
Update: cargo install adbrent --force && adbrent install, or in Claude Code /plugin marketplace update adbrent and /plugin update adbrent@adbrent. Then restart your sessions.
adbrent 0.4.2
Fixes for updating.
- A session that has been open since before an update still runs the older plugin script. That script replaced a newer binary with its own older one the next time the session started or compacted. It now fetches only when the installed binary is missing or older.
adbrent installnow updates an already installed Claude Code plugin. Before, the plugin stayed at its old version.
Update: cargo install adbrent --force && adbrent install, or in Claude Code /plugin marketplace update adbrent and /plugin update adbrent@adbrent. Then restart your sessions.
adbrent 0.4.1
A normal install now logs problems only: refusals, forced rentals, errors and agent feedback.
The fuller record added in 0.4.0 (rentals, releases, hold times, waits, shared devices, and the trace of every command) is for development and debugging, and is recorded only while adbrent debug on is set. adbrent report still works with it off, covering problems only.
Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.
adbrent 0.4.0
See how agents get on with adbrent, so you can fix what gets in their way.
adbrent reportsums up the last 24 hours and points out patterns worth fixing: an agent going back to a device it was just refused, forcing its way on after a refusal, repeated refusals for use outside adbrent, running out of devices, waits that gave up, errors, and what agents reported.- A fuller log: rentals and releases with how long each device was held, waits, shared devices and errors, alongside refusals and feedback.
adbrent log -fprints entries as they happen. adbrent debug onadds a trace of every adb and adbrent command agents run: who, which device, passed or stopped, and the time spent in adbrent. About 0.15 ms per command. Off by default, because command lines can contain what agents type into apps.- The status page now separates problems from routine activity.
Nothing here is shown to agents, and nothing leaves your machine.
Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.
adbrent 0.3.3
A redesigned status page for adbrent serve:
- A one-line summary at the top ("2 of 5 devices rented"), and each device's state explained in words.
- The feed of what agents ran into can be narrowed to agent feedback.
- A take-back is confirmed in place, not through a browser dialog.
- It redraws only when something changed, so keyboard focus is kept, and durations tick on their own.
- Light and dark themes; still loads nothing from the network.
Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.
adbrent 0.3.2
- New:
adbrent watch [SERIAL...] [--once]prints a line each time a device is rented or released. - Waiting in the background: refusals now tell the agent to run
adbrent rent --waitas a background command, so it is told the moment it has a device. Waiting no longer asks every device once a second. - No context cost at session start: the plugin adds nothing to a session's context. A session hears from adbrent in one line when it first rents a device (about 30 tokens), and after that only when refused.
- Shorter messages, a short section for agents in
adbrent help, and records of crashed sessions are cleaned up.
Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.
adbrent 0.3.1
Important fix. Update from any earlier version.
With two copies of adbrent on one PATH (for example two installs with different ADBRENT_HOME folders), each copy took the other for the real adb and they started each other without end, until the user account ran out of processes. adbrent now skips every adbrent stand-in when it looks for the real adb, and a stand-in that is reached as someone's "real adb" stops with an error instead of handing off again.
Also: a take-back from the status page is now logged as done by you.
Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.
adbrent 0.3.0
- Live status page:
adbrent serveshows devices, who rents them, what is using a device outside adbrent, and recent activity, with a take-back button. Served to your own machine only. - Share a device with a helper session:
adbrent sharein the renter,adbrent join <code>in the helper. - Keep a device away from agents:
adbrent exclude <serial>. - Phones first: plain
adbhands out phones and tablets before TVs, watches and car units. - Sandboxed sessions: a command whose rental cannot be recorded is stopped, with the fix in the message, instead of running unprotected.
Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.