dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
Claude·OpenAI 코딩 에이전트용 로컬 보안 게이트웨이, 하나의 Rust 바이너리로 키·시드 마스킹·위험 호출 차단
A local-first security gateway for Claude Code and OpenAI-compatible coding agents. One Rust binary on 127.0.0.1: private keys and seed phrases redacted outbound, dangerous tool calls blocked inbound.
보안Rust · MarkdownGitHub @SieveAI-dev온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A fully local LLM-traffic security proxy for crypto-native developers — redacts secrets outbound, blocks dangerous tool calls inbound (fail-closed).
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A fully local LLM-traffic security proxy — the last gate before irreversible actions.
Sieve is a fully local LLM-traffic security proxy (a single Rust binary) that sits between your AI coding agent (Claude Code / OpenClaw / Hermes / Codex CLI) and the upstream model API (Anthropic / OpenAI / relays). It inspects traffic in both directions — redacting secrets on the way out, and blocking dangerous tool calls on the way in (fail-closed) — to force a moment of cognitive friction before irreversible actions (signing, transfers, deploys). Built for crypto-native developers.README 전문 보기 ↗English | 中文
A fully local LLM-traffic security proxy — the last gate before irreversible actions.
Sieve is a fully local LLM-traffic security proxy (a single Rust binary) that sits between your AI coding agent (Claude Code / OpenClaw / Hermes / Codex CLI) and the upstream model API (Anthropic / OpenAI / relays). It inspects traffic in both directions — redacting secrets on the way out, and blocking dangerous tool calls on the way in (fail-closed) — to force a moment of cognitive friction before irreversible actions (signing, transfers, deploys). Built for crypto-native developers.
All detection reasoning runs 100% on your machine. Sieve never uploads your prompts, responses, or API keys.
Your agent points its base URL at a loopback listener (127.0.0.1). Sieve forwards traffic to the real upstream over end-to-end TLS — it does not install a local CA or MITM your connection. On the way out it matches outbound rules and redacts secrets in place; on the way in it intercepts Critical tool calls and holds them for human confirmation (HIPS — Host Intrusion Prevention System).
flowchart LR
A["AI agent<br/>Claude Code / OpenClaw / Hermes / Codex CLI"]
S["Sieve<br/>(local · 127.0.0.1)"]
U["Upstream<br/>Anthropic / OpenAI / relay"]
A -- "request" --> S
S -- "outbound: redact secrets<br/>(auto, no popup)" --> U
U -- "response" --> S
S -- "inbound: block Critical tool calls<br/>fail-closed + HIPS confirmation" --> A
S -.-> D["100% local detection<br/>no cloud verifier"]
The only outbound traffic Sieve itself makes is to fetch signed rule updates — see Privacy.
tool_call; the official API will not reimburse you when a leaked key drains a wallet.Sieve connects to the update server 4 times a day to fetch the latest rules. Each request carries only 5 fields: version / OS / CPU architecture / a locally generated random install-id (not tied to any account or device) / channel. It never uploads prompts, responses, API keys, or any usage record.
SIEVE_NO_TELEMETRY=1 — disable install-count telemetry (rule updates are unaffected).SIEVE_NO_UPDATE=1 — disable update checks entirely.See SPEC-006.
[[upstream.routes]] config line, zero code changes.⚠️ Sieve is currently an early preview (0.1.0-alpha) (see Project status). Today the supported path is building from source / invited alpha preview; the commands below describe the released form, with package installers coming soon.
Most curl … | sh installers ask you to blindly trust a script piping straight into your shell. Sieve's does the opposite: before it lands anything on disk, the installer verifies its own release artifacts with cosign / sigstore (keyless signatures + Rekor transparency log). If a binary has been tampered with or doesn't come from Sieve's release workflow, it fails closed and refuses to install. One command, still verifiable. Verification is the homework the installer does for you — not a hurdle it hands you. A security tool's installer should look exactly like this.
Pick the path that fits you, from frictionless to hardcore:
1. Homebrew (recommended on macOS) — brew verifies sha256 natively.
# CLI / daemon
brew tap SieveAI-dev/sieve && brew install sieve
# GUI .app
brew install --cask sieve
2. Self-verifying one-line installer — installs the sieve CLI / daemon binary. Downloads the bare binary plus its .sigstore.json bundle, verifies before install (cosign if present, else falls back to checking sha256 against SHA256SUMS with an explicit warning), and fails closed on any mismatch.
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/SieveAI-dev/sieve/main/scripts/install.sh | bash
A branded short link
sieveai.dev/install.shwill front this script — coming soon.
3. cargo install — build from source.
cargo install --git https://github.com/SieveAI-dev/sieve sieve-cli # available now
cargo install sieve # from crates.io, from Phase 2
4. Manual (for the paranoid) — download the signed .dmg (GUI) or bare binary from GitHub Releases and verify the cosign signature by hand. See Verify it yourself below and deployment.md.
After install, GUI users mount the .dmg, drag SieveGUI.app into /Applications, and on first launch run sieve setup. Linux and Windows are deferred to Phase 2.
# One-shot configuration for Claude Code
# (sets ANTHROPIC_BASE_URL + registers the PreToolUse hook + installs the launchd plist)
sieve setup
# Health check
sieve doctor
What sieve setup does internally:
ANTHROPIC_BASE_URL=http://127.0.0.1:11453 into ~/.claude/settings.json;Full install and operations guide: docs/guides/deployment.md. Development and build: docs/guides/development.md.
Verification already happened automatically during install — the installer (and Homebrew) refuse to land anything that doesn't pass. Run sieve doctor to see the verification status. The steps below are optional, for those who want to re-verify by hand.
Manual cosign verification (optional):
cosign verify-blob \
--certificate-identity-regexp '^https://github.com/SieveAI-dev/sieve/\.github/workflows/release\.yml@refs/tags/v[0-9.]+$' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle SieveGUI-<version>.dmg.sigstore \
SieveGUI-<version>.dmg
# expected output: Verified OK
Every signature is also written to the public Rekor transparency log, and every release can be independently reproduced bit-for-bit from source — see deployment.md §3. Any re-signing leaves a trace in Rekor and cannot be done silently.
# Have Claude Code emit a fake mnemonic (test sample).
# Sieve should intercept it and raise a HIPS prompt (GUI) or write an IPC pending file (CLI).
sieve decisions watch # take over decisions from the CLI when the GUI is unavailable
When the GUI is unavailable, the daemon is fully controllable from the terminal. The CLI and the GUI speak the same IPC methods — there is no privileged endpoint.
# Decisions (headless review of pending prompts)
sieve decisions list # enumerate pending decisions (snapshot)
sieve decisions show <request-id> # full context for one pending decision
sieve decisions watch --provider-id <id> # stream pending decisions, filter by upstream
sieve decisions resolve <id> --block # deny; --approve / --warn for allow paths
# Headless approval is limited to High severity and below. Critical (signing /
# transfers / sensitive paths) is always denied from the CLI and requires the GUI —
# irreversible actions demand a human in the loop.
# Control plane
sieve pause --minutes 15 # pause non-Critical prompts (Critical is never paused)
sieve resume # clear the pause
sieve preset get # show current detection preset
sieve preset set standard # switch preset (strict / standard / relaxed / custom)
sieve graylist list # list learned allowlist entries
sieve graylist remove <fingerprint>
sieve audit purge --yes # wipe audit history (irreversible)
sieve reload # reload user rules and config
# Lifecycle
sieve status # daemon version, listeners, preset, rules, pause state
sieve stop # stop the launchd-managed daemon
sieve restart
sieve completions zsh > ~/.zsh/completions/_sieve # bash / zsh / fish
Run sieve <command> --help for the full flag reference of any command.
sieve uninstall # reverses every step of setup
Sieve reads ~/.sieve/config.toml and can bind multiple upstream listeners at once:
[[listener]]
name = "anthropic-official"
port = 11453
protocol = "anthropic"
upstream = "https://api.anthropic.com"
api_key = "${ANTHROPIC_API_KEY}"
[[listener]]
name = "openai-via-relay"
port = 11454
protocol = "openai"
upstream = "https://your-relay.example.com/v1"
api_key = "${RELAY_API_KEY}"
# Optional: onboard a protocol-compatible relay that uses a non-standard path
# with a single route line — no code changes.
[[upstream.routes]]
path = "/custom/chat"
provider = "openai"
[detection]
sequence_detection = false # behavioral-sequence detection, off by default
[telemetry]
# Install-count telemetry is on by default; SIEVE_NO_TELEMETRY=1 disables it globally.
enabled = true
Full schema: api-reference §3.
The repository is public, at an early-preview stage (0.1.0-alpha). The source is public to make good on the trust narrative — verifiable, not merely trusted. Today the supported path is building from source / invited alpha preview, with one-line installers and automatic rule updates being polished.
What already works: bidirectional detection (outbound secret redaction + inbound fail-closed interception of Critical tool calls), four-route content-type parity (Anthropic/OpenAI × SSE/JSON), Critical interception that cannot be disabled in any mode, fully local detection with zero cloud verification, signed rule packages, and four supported agents (Claude Code / OpenClaw / Hermes / Codex CLI). The detection engine ships with an extensive test suite that includes real attack-reproduction samples.
Sieve holds itself to the same standard it applies to the upstream:
Daemon: Rust + hyper (HTTP / reverse proxy) + tokio (async) + rustls (TLS) + vectorscan-rs (SIMD multi-pattern regex) + serde_json.
GUI: SwiftUI + Combine (macOS 13+, Apple Silicon + Intel) — maintained in the separate SieveAI-dev/sieve-gui-macos repository.
| Entry | Purpose |
|---|---|
| docs/glossary.md | Glossary — unified definitions of domain terms |
| docs/design/architecture.md | Architecture design |
| docs/design/data-model.md | Data model |
| docs/api/api-reference.md | API reference (incl. config schema) |
| docs/specs/INDEX.md | Technical specifications, index |
| docs/guides/development.md | Development & build guide |
| docs/guides/deployment.md | Deployment & operations guide |
| docs/changelog/CHANGELOG.md | Changelog |
| CLAUDE.md | Project guide for contributors using Claude Code |
Project site: sieveai.dev
graph TD
README["README.md<br/>project entry"]
ARCH["docs/design/architecture.md<br/>architecture"]
DATA["docs/design/data-model.md<br/>data model"]
API["docs/api/api-reference.md<br/>API reference"]
SPECS["docs/specs/INDEX.md<br/>specifications"]
GUIDES["docs/guides/<br/>development + deployment"]
CL["docs/changelog/CHANGELOG.md<br/>changelog"]
README --> ARCH
README --> GUIDES
ARCH --> DATA
ARCH --> API
ARCH --> SPECS
API --> CL
ARCH --> CL
Derivation rule: when an upstream document changes, all downstream documents must be checked and updated.
Contributions are welcome. Please read CONTRIBUTING.md and our Code of Conduct before opening a pull request. Public sample submissions and bug reports go through GitHub Issues.
Please do not report security vulnerabilities through public GitHub issues. Report privately via GitHub Security Advisories — see SECURITY.md for the full disclosure process.
docs/, plus README / CLAUDE.md and other non-source Markdown / configuration) — CC BY-NC-SA 4.0