···11+<p align="center">
22+ <img src="https://github.com/skyware-js/.github/blob/main/assets/logo-dark.png?raw=true" height="72">
33+</p>
44+<h1 align="center">@skyware/labeler</h1>
55+66+A lightweight alternative to Ozone for operating an atproto labeler.
77+88+[Documentation](https://skyware.js.org/docs/firehose)
99+1010+## CLI
1111+1212+The `@skyware/labeler` package also comes with a CLI for setting up and managing a labeler.
1313+1414+```sh
1515+$ npx @skyware/labeler
1616+Usage: npx @skyware/labeler [command]
1717+Commands:
1818+ setup - Initialize an account as a labeler.
1919+ clear - Restore a labeler account to normal.
2020+ label add - Add new label declarations to a labeler account.
2121+ label delete - Remove label declarations from a labeler account.
2222+```
2323+2424+For a full guide to setting up a labeler, see [Getting Started](https://skyware.js.org/guides/labeler/introduction/getting-started).
2525+2626+## Installation
2727+2828+```sh
2929+npm install @skyware/labeler
3030+```
3131+3232+## Example Usage
3333+3434+This library requires an existing labeler declaration. To get set up, refer to the [Getting Started](https://skyware.js.org/guides/labeler/introduction/getting-started) guide.
3535+3636+```js
3737+import { LabelerServer } from "@skyware/labeler";
3838+3939+const server = new LabelerServer({ did: "···", signingKey: "···" });
4040+4141+server.start(14831, (error, address) => {
4242+ if (error) {
4343+ console.error(error);
4444+ } else {
4545+ console.log(`Labeler server listening on ${address}`);
4646+ }
4747+});
4848+```