Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
도메인부터 오퍼까지, Cloudflare 기반 워크스페이스 하나로 관리. 도메인 대시보드·엣지 리다이렉트·TDS 라우팅·포스트백 제공
From domain to offer — one Cloudflare-native workspace. Domain portfolio dashboard, edge redirects, TDS routing, and postback attribution for SEO webmasters and affiliate teams.
플러그인TypeScript · CSSGitHub @investblog온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Real-time redirect console — trace server & client redirects, run local chain analysis, filter tracking noise. Chrome, Firefox, Edge.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Real-time redirect console for developers — trace server & client redirects, run local chain analysis, filter tracking noise, copy clean reports. Zero telemetry.README 전문 보기 ↗Real-time redirect console for developers — trace server & client redirects, run local chain analysis, filter tracking noise, copy clean reports. Zero telemetry.
http:// → https://, /page → /page/) instead of a duplicated hostname#/route added by a single-page app, history.replaceState/pushState), a dashed #/SPA row under the hops shows where the browser really ended up; it is not counted as a hop, and tokens or keys in that address are masked before storagecurl command that reproduces the chain server-side/, ?, Esc, Ctrl+click to open a URL), and a built-in help drawernotifications permission is requested only when you enable it| Browser | Link |
|---|---|
| Chrome | Chrome Web Store |
| Firefox | Firefox Add-ons |
| Edge | Edge Add-ons |
Browse normally — Redirect Inspector captures every redirect chain in the background via the webRequest API. Click the toolbar icon to open the side panel with grouped chains, status codes, hop counts, and timing. Hit the magnifier on any chain to run local analysis: nine heuristics check for loops, ping-pong patterns, mixed redirect types, and more. Copy the full report, download JSON, or grab a cURL one-liner.
To check a URL without visiting it yourself, pull the handle at the bottom of the panel and paste it — the chain appears labeled "Checked by you". A first-run example chain (www.301.st → 301.st) is seeded on install so the panel is never empty; it is synthetic, no request is made.
Everything happens locally in the side panel (or the Firefox popup). No data is stored externally, transmitted, or logged.
git clone https://github.com/investblog/redirect-inspector.git
cd redirect-inspector
npm install
npm run dev # Chrome MV3 dev server with HMR
npm run dev:firefox # Firefox MV2 dev server
npm run build # Chrome production build
npm run build:firefox # Firefox production build
npm run build:edge # Edge production build
npm run zip:all # Build all platforms
npm run check # Typecheck + lint + test
Redirect Inspector makes zero network requests by default. No analytics, no telemetry, no remote code. Redirect data is stored in browser.storage.local and never leaves the browser. The persisted preferences are theme, noise-filter, and news toggles.
The only optional network activity is the 301.sh news feed: if (and only if) you enable news notifications, the extension fetches https://301.sh/posts.json a few times a day to show a browser notification about new articles. Nothing is ever sent — the request carries no identifiers or browsing data, and disabling the toggle stops it entirely.
The manual "check a URL" feature does not make requests either: it opens the URL as a regular browser navigation in an inactive tab (your cookies apply, the visit lands in history) and closes the tab once the chain is recorded — after up to 2 s more for a client-side address change (longer, capped at 10 s, only while the page keeps changing it).
Built by investblog at 301.st with Claude
Version lives in wxt.config.ts (manifest.version) and must match package.json
(the cut-release workflow enforces this).
Tagging contract: v* tags are cut only by CI, never locally. To release:
bump the version, push to main, then run the Cut release workflow
(Actions → Cut release, or gh workflow run cut-release.yml). It re-runs the
full quality gate and the build on a Linux runner — so no Windows working-copy
artifact (CRLF, path separators, locale-dependent tooling) can reach a release —
then creates the tag and dispatches the workflows below. The submit input
controls store submission; the default chrome-edge auto-submits both Chromium
stores (Firefox stays manual by policy). Pick none for a tag-only release,
e.g. when store listing texts must be updated by hand first.
A v* tag drives two workflows (dispatched by cut-release, since
GITHUB_TOKEN-pushed tags don't fire push triggers):
release.yml — typecheck/lint/test + a GitHub release with the built ZIPs.submit.yml — a thin caller of the shared reusable workflow
investblog/geo-tier-builder/.github/workflows/store-submit.yml@main.Chrome + Edge auto-submit on the tag; Firefox is manual (Actions → Submit to
stores → stores=firefox; AMO burns version numbers forever, so it never
auto-runs). The manual dispatch has a dry_run toggle that validates
credentials without publishing.
Store credentials are this repo's GitHub Actions secrets (CHROME_*,
FIREFOX_*, EDGE_*). API creds are account-level and shared across all
investblog extensions; only the per-extension IDs (CHROME_EXTENSION_ID,
FIREFOX_EXTENSION_ID, EDGE_PRODUCT_ID) differ.
Before changing the release/CI flow: confirm the reusable-workflow ref still
resolves and the secrets exist (gh secret list). Store publishing here depends
on the external investblog/geo-tier-builder workflow — it is a cross-repo
contract, not visible from this repo's code alone.