dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
Screen names against signed sanctions data in your browser. No account or backend required.
SecurityTypeScript · PythonGitHub @gainratioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Checks your customers' names against government sanctions lists inside your browser, for small compliance teams.
Taken from the repository README
Loading the full README.
Read the full README ↗Free sanctions screening for small businesses: check a customer's name against government lists, in your browser.
Open the app at aml-filter.com. No sign-up, nothing to install.
If your business has to "know your customer", you have to check that the people you deal with are not on a sanctions list. Big companies pay a screening vendor for this. Small ones often search each government website by hand and keep notes in a spreadsheet. The vendor costs money and gets a copy of your customer list. The manual way is slow, and a name spelled a little differently is easy to miss.
AML-Filter is a free web page that does the checking for you. It searches the US, EU, UN and UK sanctions lists, looks for names that are spelled or sound similar, and shows why each result came up. It runs entirely in your browser. The names you type and your customer list stay on your computer.
Technical docs: Getting started for developers · Architecture · How matching works · Watchlist format · Deploy
Vladimir Putin and press Enter.The top result scores 0.952. Scores run from 0 to 1, and higher means a closer match. The breakdown shows what drove it: the names are close in meaning and in spelling, and "PUTIN, Vladimir" is one of the listed aliases. The results below it are weaker matches that share a first name. The tool never decides for you. A person looks at each result.
On a computer the search page checks all four lists, and each result names its list. On a phone it starts with the US list (OFAC) to save memory; tap Search all 4 lists to add the rest. To screen your own customers and keep a record of your decisions:
CUST-001 and name Vladimir Putin, then click
Onboard. It is screened right away. You can also import customers from a CSV or
Excel file.Every day a small program downloads the official lists from the US Treasury, the EU, the UN and the UK government, puts them in one format, and signs them. When you open the app, your browser downloads the signed lists from aml-filter.com and checks the signature before using them. If the check fails, the app shows an error instead of quietly showing no matches. Names are then matched inside the browser tab by meaning (using a small language model that runs on your machine), by spelling, and by sound. Your customers and decisions are saved in your browser's own storage, not on a server.
While the app is open, it checks for a newer list every 30 minutes (or right away when
you click Check for updates on the Customers page). Because the lists are
split into content-addressed chunks, a daily update downloads only the chunks that
changed and reuses the rest from your browser's cache; a status pill on the Screen page
shows whether the list was freshly synced (Signed watchlist synced · N chunks verified),
reused from cache (Cached watchlist verified · N chunks reused (0 B fetched)), or
incrementally updated (Watchlist patch applied · X chunks updated, Y cached chunks reused).
When a list changes, it screens your saved customers again and only flags a match you
already reviewed if something about it changed.
| List | Published by | Entries (25 Sep 2026) |
|---|---|---|
| OFAC SDN list | US Treasury | 19,391 |
| Consolidated list | European Union | 6,241 |
| Consolidated list | UN Security Council | 1,011 |
| UK Sanctions List (asset freezes only) | UK government (FCDO) | 5,682 |
The lists are rebuilt daily. The app shows when each list was last updated. If a source could not be downloaded, the app says "Not updated for" and how long, rather than pretending the list is current. You can switch lists on or off, and set how strict the matching is, in Settings.
Vladimir Poutine still finds Putin, but as
the second result. Read the whole list, not just the top line.| If you need | Use |
|---|---|
| Certified coverage, PEP and news data, and someone accountable | A commercial screening vendor |
| A few one-off checks | The official search pages, such as OFAC's Sanctions List Search |
| One shared review queue for a whole team | A screening server you host |
| Private checks across four lists with the reasons shown, and nothing to run | AML-Filter |
You need Node 22.13 and pnpm (which corepack provides).
git clone https://github.com/gainratio/aml-filter
cd aml-filter/frontend
corepack enable
pnpm install
pnpm --filter aml-filter-app dev
Open http://localhost:5173/screen. Use localhost, not a network address, because the
browser only allows the signature check there. The first run takes a few minutes while
it downloads the name-matching model.
Your local copy searches a small made-up list of 8 people that ships with the code, so
it works on a fresh clone. Type fakovic and it finds "Ivan Fakovich". For the real
lists, use aml-filter.com. To host your own copy with real
lists, see Deploy.
New to the code? Start with Getting started for developers. It takes you from a fresh clone to a passing local build and your first change.
cd frontend && pnpm gate
This runs the same checks as CI: lint, type checks, unit tests, builds, match-quality
checks, and real-browser tests. It needs the exact Node version in
frontend/.nvmrc.
MIT. See LICENSE. Data attribution for the sanctions lists is in NOTICE.