Mirror of https://github.com/roostorg/osprey
github.com/roostorg/osprey
1<img width="200" height="64" alt="ROOST logo" src="images/ROOST-Horizontal-Yellow.png" />
2
3# Osprey
4
5**Automate the obvious and investigate the ambiguous.** High-performance safety rules engine for real-time event processing at scale.
6
7- take action based on user behavior
8- combine actions with human written rules
9- let operators query human actions and past decisions
10- perform investigations or write new rules based on decisions
11
12Osprey is an event stream decisions engine and analysis UI designed to investigate and take automatic action on events and their properties as they happen in real-time. Originally developed internally at [Discord](https://discord.com/) to combat spam, abuse, botting, and scripting across its platform, Osprey has been open-sourced to help other platforms facing similar challenges.
13
14
15
16Osprey is a library for processing actions through human-written rules and outputting verdicts & custom effects back to configurable output sinks. It evaluates events using structured rule logic (SML) that is extendable via user-defined functions (UDFs). Osprey can also track state across events by labelling entities if implementers provide a labels service backend (see [labels_service.py](./example_plugins/src/services/labels_service.py) for a Postgres-backed labels service example).
17
18Osprey is built for engineers and Trust & Safety teams who want to explore, test, and integrate its core capabilities into their platform for incident response and Trust & Safety investigation. [Read more about user research and personas](docs/user_personas.md).
19
20## Adopters
21
22Osprey is used by:
23
24[](https://bsky.social) | [](https://discord.com) | [](https://matrix.org)
25--- | --- | ---
26
27Using Osprey and want to add your project/organization to this list? [Open a pull request!](https://github.com/roostorg/osprey/edit/main/README.md)
28
29## Development
30
31- See [DEVELOPMENT.md](./docs/DEVELOPMENT.md) for comprehensive development setup and workflow documentation
32- All code changes should pass linting (Ruff) and type checking (MyPy)
33- Pre-commit hooks automatically run on each commit to maintain code quality
34
35## Join Us
36
37Writing code is not the only way to help the project. Reviewing pull requests, answering questions to help others on mailing lists or issues, providing feedback from a domain expert perspective, organizing and teaching tutorials, working on the website, improving the documentation, are all priceless contributions.
38
39- Join us in [our Discord server](https://discord.gg/5Csqnw2FSQ)
40- Join our [newsletter](https://roost.tools/#get-started) for more announcements and information
41- Follow us on [Bluesky](https://bsky.app/profile/roost.tools) or [LinkedIn](https://www.linkedin.com/company/roost-tools/)
42
43_[ROOST](https://roost.tools) (Robust Open Online Safety Tools) is a non-profit organization that brings together expertise, resources, and investments from major technology companies and philanthropies to build scalable, interoperable safety infrastructure for the AI era._
44
45### Feedback Wanted
46
47This is a working system, not a prototype. Try it locally, connect your data, write some rules, and tell us what's missing for your use case. We're particularly interested in:
48
49- Integration challenges with your existing platform infrastructure
50- Performance characteristics with your event volumes and rule complexity
51- Missing detection capabilities or response actions you need
52- API improvements that would make adoption easier for your team
53
54Your experimentation feedback will directly shape future priorities and help us build the most useful Trust & Safety tooling for the community.
55
56## Recognition
57
58Discord uses Osprey to quickly detect and remove new types of harm that put users at risk. Rather than leaving other platforms to build similar tools from scratch, ROOST and Discord have open-sourced this powerful rule engine in collaboration with [internet.dev](https://internet.dev/) to make it available for anyone who needs it.