@byokit/discover has 0 recorded weekly downloads on npm.
About @byokit/discover
Formerly @byokit/reach, which stays published as a deprecated shim re-exporting this package through 0.7.x
and is removed in 0.8.0.
Install
npm install @byokit/discover
· Latest release · All releases
iOS setup (Expo)
iOS only returns local-network mDNS results when the app declares the Bonjour service types it browses and
a usage description. Add the config plugin and list the types you pass to browse():
{
"expo": {
"plugins": [["@byokit/discover", { "services": ["_byokit._tcp"] }]]
}
}
services is required and must be non-empty; an empty list fails prebuild by name instead of writing an
empty Bonjour list. localNetwork overrides the usage string shown in the iOS prompt (a sensible default
is used when omitted). Prebuild writes NSBonjourServices and NSLocalNetworkUsageDescription into
Info.plist; rebuild the native binary after adding the plugin. Android needs no plugin:
react-native-zeroconf's own manifest already merges CHANGE_WIFI_MULTICAST_STATE.
Quickstart
npm install @byokit/discover
Work out the addresses for a server on port 8792, listen where reach says, and put the addresses in the pairing
offer. Persist ingress and pass it back as previous next time.
import { createServer } from 'node:http';
import { reach } from '@byokit/discover';
const { urls, bind, ingress, pendingCleanup } = await reach({ port: 8792, previous: saved.ingress });
// One listener per address reach names, never a wildcard: loopback behind Serve, the selected tailnet IP for
// direct Tailscale, the classified LAN (or overlay) addresses for those routes.
const servers = bind.map((address) => createServer(handler).listen(8792, address));
saved.ingress = ingress;
if (pendingCleanup) saved.pendingCleanup = pendingCleanup; // retry unserve() later
const { text } = host.offer({ role: 'control', urls }); // show `text` as a QR
The LAN route with a made-up interface list, so it never touches Tailscale or the network. Docker's bridge is
skipped; the NetBird-style wt0 address is a private route, not LAN:
import type { NetworkInterfaceInfo } from 'node:os';
import { reach, routes } from '@byokit/discover';
const nic = (address: string): NetworkInterfaceInfo =>
({ address, netmask: '255.255.255.0', family: 'IPv4', mac: '02:00:00:00:00:01', internal: false, cidr: `${address}/24` });
const interfaces = { en0: [nic('192.168.1.20')], docker0: [nic('172.17.0.1')], wt0: [nic('100.90.1.2')] };
console.log(routes(interfaces));
console.log(await reach({ port: 8792, via: 'lan', interfaces }));
{
lan: [ '192.168.1.20' ],
private: [ { address: '100.90.1.2', interface: 'wt0' } ],
tailscale: []
}
{ urls: [ 'ws://192.168.1.20:8792' ], bind: [ '192.168.1.20' ] }
API at a glance…
Description from the npm listing.
- typescript
- ai
- ai-sdk
- react-native
- web
- privacy
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (1)Similar npm AI SDKs plugins
All 20 @byokit/discover alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/@byokit/discover. First seen Oct 27, 2026; last successful collection Oct 27, 2026. See the methodology.