dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기GitHub Action that scans agent-readable files (READMEs, docs, prompts, MCP configs, editor rules) for prompt injection and tool poisoning on every PR.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
😎 Sunglasses — Agent File Scan (GitHub Action)
Scan your repository's agent-readable files — READMEs, docs, prompts, MCP configs, .cursor / .windsurf / .claude rules — for prompt injection and tool poisoning on every pull request, before an AI agent (Claude Code, Cursor, Copilot, etc.) ever reads them.
Powered by Sunglasses, the open-source, 100% local trust boundary for AI agents.
Your agent trusts what it reads. A poisoned README or MCP description can quietly hand it instructions you never wrote. This Action catches that in CI.README 전문 보기 ↗Scan your repository's agent-readable files — READMEs, docs, prompts, MCP configs, .cursor / .windsurf / .claude rules — for prompt injection and tool poisoning on every pull request, before an AI agent (Claude Code, Cursor, Copilot, etc.) ever reads them.
Powered by Sunglasses, the open-source, 100% local trust boundary for AI agents.
Your agent trusts what it reads. A poisoned README or MCP description can quietly hand it instructions you never wrote. This Action catches that in CI.
Create .github/workflows/sunglasses.yml:
name: Sunglasses — agent file scan
on: [pull_request]
permissions:
contents: read
security-events: write # lets findings appear in the PR's "Code scanning" tab
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: sunglasses-dev/sunglasses-action@v1
That's it. On every PR, Sunglasses scans the sensible default set of agent-readable files and fails the check if it finds an injection — or if it could not actually read a file it was asked to scan.
README*, AGENTS.md, CLAUDE.md, GEMINI.md, every *.md, and docs/, prompts/, .cursor/, .windsurf/, .claude/, plus mcp.json / *.mcp.json. Override with the paths input.
| Input | Default | Description |
|---|---|---|
paths | (default set) | Space-separated files, directories or globs to scan instead of the defaults. Directories are walked. |
fail-on-threat | true | Fail the check when a finding is reported. Set false to report-only. |
fail-on-incomplete | true | Fail the check when a file could not be fully inspected (archive, oversized file, unsupported binary, missing path). Set false to report-only. Either way, a file that was not inspected is never counted as clean. |
upload-sarif | true | Upload merged SARIF to GitHub code scanning (needs security-events: write). |
python-version | 3.x | Python used to install the sunglasses package. |
version | (latest) | Pin a sunglasses version, e.g. ==0.5.6. Empty installs the latest published release, so a new release reaches your workflow the hour it lands. |
The Action reports four separate outcomes, and never folds them together:
| Outcome | Annotation | Fails the job? |
|---|---|---|
| Inspected, nothing found | none | no |
| Finding | ::error … detected an agent-targeted injection | yes, unless fail-on-threat: false |
| Not inspected (archive, file over the scanner's 1 MB limit, unsupported binary, path not found) | ::warning … not inspected: <reason> | yes, unless fail-on-incomplete: false |
| Scan failed (the scanner errored or crashed) | ::error … could not scan … It was NOT inspected | always |
A green check means "every file we were asked to read, we read, and nothing fired". It does not mean "this repository is safe" — no scanner can promise that, and this one does not.
The injection wording is reserved for actual findings. A file we could not open, or one the scanner failed on, is never described as an attack. Before v1.1 it was: the Action treated any non-zero exit as a threat, so a 1.2 MB CHANGELOG or a permissions error produced Sunglasses detected an agent-targeted injection in <file> on the pull request.
- uses: sunglasses-dev/sunglasses-action@v1
with:
fail-on-threat: false
fail-on-incomplete: false
paths: "README.md docs/ prompts/"
Directories in paths are walked recursively. (In v1 they were silently dropped — paths: "README.md docs/ prompts/" scanned only README.md and still reported a green result, which is the kind of quiet under-coverage v1.1 exists to remove.)
Direct & indirect prompt injection · README / repo poisoning · MCP tool-metadata poisoning · credential-exfiltration prompts · encoded / obfuscated / multilingual evasions.
paths, or run in fail-on-threat: false mode on docs-heavy repos.sunglasses package from PyPI. With version empty it installs the latest release at run time, so package changes reach your workflow without you upgrading anything — pin version if you need lockstep.tests/fixtures/ contains deliberate injection samples, so a scan of this repository will flag them. Scope paths to exclude tests/fixtures when running the Action against itself.@v1 is a moving tag that tracks the latest v1.x. Pin a commit SHA if you need immutability; a pinned SHA does not move when we publish v1.1.MIT — see LICENSE.