Passa al contenuto principale
Versione: Next 🚧

Tools Reference

Five tools. All read-only, all idempotent, none capable of changing anything.

Every tool returns text in English and French, and every one can return an error result rather than data — see Failure shapes, which is the section worth reading twice.


bits_recommend​

Goal in, agents out.

ParameterTypeRequired
goalstring, max 2000 bytesyes
osstringno
archstringno

Returns ranked agents with the reason each fits, and — where your goal implies a platform — that agent's platform view, so you are never pointed at something that ships a binary but has no enrolment path yet.

Every response carries a catalogue completeness block:

"catalogue": { "state": "complete", "agents_expected": 4, "agents_read": 4, "as_of": "..." }
Why that block exists

"None of these fit" is only emitted when state is complete. If the catalogue were read partially — one agent's record failing to load — a naive tool would quietly answer "we have nothing for that" and you would go elsewhere. Nothing would have errored. Check state before acting on a negative answer.


bits_explain​

ParameterTypeRequired
agentbitcollector | bitscanner | bitenforcer | bitmapperyes
topicobserves | never_touches | privileges | platforms | heartbeat | where_results_landno

Returns what the agent observes, what it explicitly never touches, what privilege buys you, and where its results land.

The never_touches and privileges topics are the useful ones. Privilege does not just change what an agent is allowed to do — it changes what its output means. A bitcollector running unprivileged cannot attribute listening sockets to processes, so its port inventory is real but its process mapping is absent, and it says so rather than reporting zero.


bits_platforms​

ParameterTypeRequired
agentone of the four slugsyes

Returns three separate facts per platform, never one column:

FactMeaning
catalogueda signed release binary exists for this OS and architecture
enrolablean enrolment path exists for this agent today
observablethis agent reports a heartbeat once enrolled

and a state per platform: platform_supported, platform_not_built, or platform_unknown.

Why three facts and not one

An agent can be catalogued on a platform, have no enrolment path yet, and never report a heartbeat — all at once. bitenforcer is exactly that today: it ships signed Linux binaries, is not yet enrolable, and by design never emits a heartbeat because it has no delivery path. Rendering that as "supported: yes" would be true and would mislead you into waiting for telemetry that is never coming.

platform_unknown is the third state, and it exists so that a failed catalogue read can never be reported as "this platform is not supported".


bits_plan_config​

ParameterTypeRequired
agentone of the four slugsyes
profileminimal | standard | strictyes
destinationcontrol_plane — bitcollector only; omit it and the plan configures no exporterno
privilegeroot | capabilities | unprivileged — how the agent will actually runno

The two optional hints only ever make the plan more conservative when they are missing or unrecognised: an absent privilege is read as unprivileged, never as root.

Returns the agent and profile you asked for, plus four fields:

FieldContents
configa draft configuration for a human to review; values only your dashboard can supply are marked REPLACE_ME, never guessed
will_not_dowhat this config deliberately does not do, and why
notescaveats that apply to your chosen profile and privilege level
next_stepwhere to go to enrol — never a command, never a URL

It refuses any argument shaped like an enrolment token — see Failure shapes.

Read will_not_do before you deploy the config​

It is not boilerplate. It names the settings that were deliberately left out, and the reason for each. Three categories are never generated:

Settings that assert something only you can assert. Scanning another network requires declaring that you are legally authorised to do so. The tool will describe the setting; it will not write your assertion for you.

Settings that say one thing and do another. Some options read as restrictive and are not — a service marked disabled in a firewall policy that still results in an open port, for instance. Those are refused by name with an explanation of what to do instead.

Settings that are not implemented. An option that appears to set a protection, produces no protection, and leaves a policy asserting otherwise is worse than no option at all.

The privilege trade-off is stated, not assumed​

If you ask for a capabilities-based setup instead of root where that materially degrades the agent, the plan says so with numbers. For flow capture, capabilities without root collapse per-flow process attribution from roughly 87% of flows to about 6% — and the remainder are the agent's own. The least-privilege answer is usually right; here it quietly removes the feature you installed the agent for, so you are told rather than left to discover it.


bits_download​

One agent, one platform, one verifiable binary.

ParameterTypeRequired
agentone of the four slugsyes
oslinux | darwin | windowsyes
archamd64 | arm64yes

Returns, for the published binary:

FieldContents
agent, os, archwhat you asked for
versionthe release the binary belongs to
file_namethe file name to save it as
size_bytesits size in bytes
sha256its SHA-256 checksum, taken from the release catalogue
download_urlwhere to download it
verify_commanda command that downloads the file and checks it against sha256
notea reminder to verify the checksum before running the binary

The figures come from the release catalogue; the tool does not compute or guess them. It never offers a download it cannot give a checksum for: if the catalogue has no binary for that platform, or the entry lacks a usable SHA-256, size or file name, the answer is an error, not a URL. Call bits_platforms first to see which platforms an agent ships on.

Verify before you run

Use the download URL the tool returns, and run the verification before you execute the binary. A download tool writes whatever it receives — an HTML error page included — so only a matching checksum tells you that you have the real file.

Like bits_plan_config, it refuses any argument shaped like an enrolment token.


Failure shapes​

Every tool can return an error result instead of data. Handle these — do not treat them as "no results".

What you seeWhat it means
catalogue read failed: …The release catalogue could not be read or could not be verified. Not "nothing found"
all platforms platform_unknownSame cause, rendered per platform. Never read this as "unsupported"
state other than completeThe catalogue was read partially. A negative recommendation is withheld
catalogue read failed (…) — no download is offeredbits_download found no binary it can vouch for — the platform is not built, or the catalogue could not be read or verified. No URL is guessed
refused: that argument is shaped like a live Cert-IX enrolment tokenYou sent an enrolment token. Take it out of the conversation; it belongs on the agent's machine
too many requests from your addressRate limited per address. Slow down and retry shortly
HTTP 429Rate limited. Honour Retry-After
HTTP 405You sent something other than POST
The rule behind all of them

An answer that cannot be trusted is reported as a failure, never as an empty or negative result. If a tool tells you an agent does not support your platform, it means it looked and it does not. If it could not look, it says that instead.

Questa pagina ti è stata utile?