Weighs the soul of incoming HTTP requests to stop AI crawlers https://anubis.techaro.lol/
  • Go 85%
  • TypeScript 4.7%
  • Shell 4.1%
  • JavaScript 2.5%
  • Rust 2%
  • Other 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Xe Iaso 207f9eb871
feat(utils): add utils/cmd/botgenerate to regenerate IP feeds (#1940)
* feat(utils): add utils/cmd/botgenerate to regenerate IP feeds

Signed-off-by: Xe Iaso <me@xeiaso.net>

* chore(botgenerate): appease the linter

Signed-off-by: Xe Iaso <me@xeiaso.net>

---------

Signed-off-by: Xe Iaso <me@xeiaso.net>
2026-10-12 15:50:51 -04:00
.devcontainer chore: update playwright dependencies (#1279) 2026-07-05 01:53:06 +00:00
.github ci(yeet): do yeet builds on saga (#2031) 2026-10-12 15:30:39 -04:00
.husky chore: set up commitlint, husky, and prettier (#1451) 2026-02-15 08:19:12 -05:00
.vscode feat(utils): add utils/cmd/botgenerate to regenerate IP feeds (#1940) 2026-10-12 15:50:51 -04:00
cmd feat(lib): add DYNAMIC_COOKIE_SUFFIX setting for toggling the dynamically generated cookie suffix (#1992) 2026-10-07 00:03:36 +00:00
data feat(utils): add utils/cmd/botgenerate to regenerate IP feeds (#1940) 2026-10-12 15:50:51 -04:00
decaymap performance: remove significant overhead of decaymap (#1420) 2026-01-22 19:03:17 +00:00
docs feat(utils): add utils/cmd/botgenerate to regenerate IP feeds (#1940) 2026-10-12 15:50:51 -04:00
internal Merge commit from fork 2026-10-06 19:47:05 -04:00
lib fix(geoip): accept additional MaxMind database editions (#2019) 2026-10-12 15:45:10 -04:00
run fix(systemd): revert isolation setting 2026-10-08 22:32:02 -04:00
test ci(proxmox): use containers instead of VMs (#2030) 2026-10-12 15:28:02 -04:00
utils feat(utils): add utils/cmd/botgenerate to regenerate IP feeds (#1940) 2026-10-12 15:50:51 -04:00
var initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
wasm fix(wasm): allow concurrent validation instances (#2021) 2026-10-12 15:03:59 -04:00
web build(deps): bump the gomod group across 1 directory with 14 updates (#2000) 2026-10-05 00:52:52 -04:00
xess revert(lib): remove AI agent honeypot method (#1913) 2026-08-30 12:47:01 +00:00
.air.toml feat: add a strip-base-prefix option (#655) 2025-06-12 17:46:08 -04:00
.gitattributes fix(gitattributes): update pattern for generated files (#652) 2025-06-11 21:00:37 +00:00
.gitignore feat: add rust code for proof of work (#1901) 2026-08-29 18:55:47 -04:00
.golangci.yaml chore: set up golangci-lint (#1720) 2026-07-03 15:34:08 -04:00
.ko.yaml chore: use Go stdlib version stamping (#1665) 2026-06-04 16:05:37 -04:00
.prettierignore docs: rework developer docs tree (#1848) 2026-08-10 10:45:59 -04:00
AGENTS.md docs: rework developer docs tree (#1848) 2026-08-10 10:45:59 -04:00
anubis.go chore: use the simplified explanation by default (#1983) 2026-09-28 16:32:00 -04:00
Brewfile feat: add rust code for proof of work (#1901) 2026-08-29 18:55:47 -04:00
Cargo.lock feat: add rust code for proof of work (#1901) 2026-08-29 18:55:47 -04:00
Cargo.toml feat: add rust code for proof of work (#1901) 2026-08-29 18:55:47 -04:00
CLAUDE.md docs: rework developer docs tree (#1848) 2026-08-10 10:45:59 -04:00
CONTRIBUTING.md docs: rework developer docs tree (#1848) 2026-08-10 10:45:59 -04:00
go.mod chore: bump yeet for filtered builds (#2020) 2026-10-10 00:36:54 -04:00
go.sum chore: bump yeet for filtered builds (#2020) 2026-10-10 00:36:54 -04:00
LICENSE initial import from /x/ monorepo 2025-03-17 19:33:07 -04:00
Makefile fix(wasm): adopt resilience fixes, actually test this with CI (#1912) 2026-08-30 01:53:47 -04:00
package-lock.json chore: tag v1.28.1 2026-10-08 22:33:15 -04:00
package.json chore: tag v1.28.1 2026-10-08 22:33:15 -04:00
README.md docs: add synthient diamond sponsor banner (#1990) 2026-09-30 00:51:23 -04:00
SECURITY.md chore: copy SECURITY.md from TecharoHQ/.github 2025-08-20 12:42:02 -04:00
tsconfig.json docs: rework developer docs tree (#1848) 2026-08-10 10:45:59 -04:00
VERSION chore: tag v1.28.1 2026-10-08 22:33:15 -04:00
yeetfile.js fix(systemd): revert isolation setting 2026-10-08 22:32:02 -04:00

Anubis

A smiling chibi dark-skinned anthro jackal with brown hair and tall ears looking victorious with a thumbs-up

enbyware GitHub Issues or Pull Requests by label GitHub go.mod Go version language count repo size GitHub Sponsors

Sponsors

Anubis is brought to you by sponsors and donors like:

Diamond Tier

Raptor Computing Systems Databento Spur Intelligence

Synthient

Gold Tier

Unipromos Uvensys Gitea Prolocation Terminal Trove canine.tools Weblate Uberspace Wildbase Cat eyes over the word Emma in a serif font The word felsqualle in dripping pixel-art letters ANEXIA Cloud Solutions embeDD GmbH Qwertiko Wenet

Overview

Anubis is a Web AI Firewall Utility that weighs the soul of your connection using one or more challenges in order to protect upstream resources from scraper bots.

This program is designed to help protect the small internet from the endless storm of requests that flood in from AI companies. Anubis is as lightweight as possible to ensure that everyone can afford to protect the communities closest to them.

Anubis is a bit of a nuclear response. This will result in your website being blocked from smaller scrapers and may inhibit "good bots" like the Internet Archive. You can configure bot policy definitions to explicitly allowlist them and we are working on a curated set of "known good" bots to allow for a compromise between discoverability and uptime.

In most cases, you should not need this and can probably get by using Cloudflare to protect a given origin. However, for circumstances where you can't or won't use Cloudflare, Anubis is there for you.

If you want to try this out, visit the Anubis documentation site at anubis.techaro.lol.

Support

If you run into any issues running Anubis, please open an issue. Please include all the information I would need to diagnose your issue.

For live chat, please join the Patreon and ask in the Patron discord in the channel #anubis.

Star History

Star History Chart

Packaging Status

Packaging status

Contributors

Made with contrib.rocks.