惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
博客园 - 司徒正美
博客园 - 【当耐特】
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
宝玉的分享
宝玉的分享
V
V2EX
S
SegmentFault 最新的问题
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
L
LangChain Blog
D
Docker
腾讯CDC

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
GitHub - progapandist/stripeek: A local TUI proxy for rea...
progapandist · 2026-05-28 · via Show HN

Debugging a Stripe integration locally usually means guessing what the SDK actually sends, sprinkling log statements, or opening the Stripe Dashboard after the fact. stripeek shows you the full request/response pair as it happens — headers, body, status, and latency — without touching your application code. Stripe responses are deeply nested JSON, and stripeek lets you navigate and filter that structure interactively, which is far faster than squinting at raw logs.

stripeek runs as a reverse proxy between your application and api.stripe.com. Point your Stripe SDK at http://localhost:4242 and every request/response pair appears in a browsable TUI — with full JSON inspection, request grouping, persistent history, and clickable Stripe Dashboard links.

For local development only.
Redirecting your SDK's base URL to stripeek means your app routes all Stripe traffic through the proxy. If stripeek isn't running, every Stripe API call will fail. Never commit these changes or deploy them to staging or production — keep them in local dev overrides (environment-specific initializers, .env.development, or a dev-only boot file).

image

With request groups and filtering: image

Installation

go install github.com/progapandist/stripeek/cmd/stripeek@latest

Requires Go 1.24 or later. The binary lands in $(go env GOPATH)/bin — make sure that's on your $PATH. You can also download the binaries for different platforms from the release page. Easier distributions like a Homebrew formula will be added at the later stage when the feature set somewhat stabilizes.

Active development. The tool is under the active development and new features/improvements land often on main before being included in a tagged release, prefer go install github.com/progapandist/stripeek/cmd/stripeek@main to install directly from the main branch.

Quick start

stripeek          # listens on http://localhost:4242

Then redirect your Stripe SDK to the proxy — in your local dev environment only. Stripe calls will fail if stripeek isn't running after this change, so guard it behind an environment check:

Ruby

# config/initializers/stripe.rb (or equivalent dev-only file)
if Rails.env.development?
  Stripe.api_base = "http://localhost:4242"
end

Python

import os
if os.getenv("APP_ENV") == "development":
    stripe.api_base = "http://localhost:4242"

Node.js

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, {
  ...(process.env.NODE_ENV === "development" && {
    host: "localhost",
    port: 4242,
    protocol: "http",
  }),
});

Go

if os.Getenv("APP_ENV") == "development" {
    stripe.SetAPIBase("http://localhost:4242")
}

stripeek proxies every request to the real Stripe API and captures the full request/response pair, including headers, body, status code, latency, and Stripe request ID. Your keys are redacted from captured headers automatically.

App setup example (Rails, but the similar approach will apply for other frameworks)

config/initializers/stripe.rb:

Stripe.api_key = ENV.fetch("STRIPE_SECRET_KEY")

# Route traffic through stripeek when developing locally.
# Requires `stripeek` to be running — Stripe calls will fail without it.
if Rails.env.development? && ENV.key?("STRIPE_PROXY_URL")
  Stripe.api_base = ENV.fetch("STRIPE_PROXY_URL")
end

Start your server with the variable set to enable proxying:

STRIPE_PROXY_URL=http://localhost:4242 bin/rails server

Omit the variable (or start the server normally) to talk to Stripe directly. Production and staging are never affected — the block only runs in the development environment.

Keyboard shortcuts

Key Action
tab / shift+tab Switch panes
? Open / close shortcuts overlay
ctrl+x Clear all history (memory + disk)
q / ctrl+c Quit

Calls pane

Key Action
↑↓ / j k Move one request
pgup / pgdn, ctrl+b/f Move one page
ctrl+u/d Move half page
home / end, t / b Jump to top / bottom
enter Inspect selected request
/ / esc Filter / clear filter
g / ctrl+g Open groups / start new group

Inspector pane

Key Action
↑↓ / j k Move one row
←→ Fold / expand node
space / enter Toggle container
+ / - Expand / collapse all
h Toggle request / response headers
/ / esc Filter keys / back to list
t / b Jump to top / bottom

Groups

Groups allow you to visually cluster the requests which can be useful when you want to quickly grock all the traffic related to testing a certain feature (e.g., all the requests you make to Stripe when your app's admin interface loads the subscription view). To group the upcoming requests automatically hit ctrl+g and the new group will be created and assigned a random name based on color of the markers that will visually separate the requests in the TUI.

image
Key Action
g Open / close groups panel
ctrl+g Start a new group
enter Show calls for selected group
esc Show all requests

The inspector header shows a TEST / LIVE badge for each call, inferred from the API key prefix (the key itself is never stored).

Stripe object IDs in the inspector are rendered as clickable hyperlinks to the Stripe Dashboard (requires a terminal with OSC 8 support — iTerm2, WezTerm, Kitty). Links follow the call's mode, so a live request opens the live dashboard instead of the test one.

Configuration

Variable Default Description
STRIPEEK_ADDR 127.0.0.1:4242 Address the proxy listens on
STRIPEEK_HISTORY_LIMIT 1000 Maximum number of calls kept in memory and on disk
STRIPEEK_HISTORY_PATH os.TempDir()/stripeek-calls.json Where call history is persisted between sessions ($TMPDIR on macOS, /tmp on Linux)

Contributing

git clone https://github.com/progapandist/stripeek
cd stripeek
make build     # compile
make check     # fmt + vet + lint + build
go test ./...  # run tests

Release process

Releases are automated via goreleaser and GitHub Actions. Pushing a semver tag to main triggers a build for all platforms and a GitHub release with attached archives and checksums.

Versioning: this project uses Semantic Versioning. While the major version is 0, minor bumps (v0.2.0, v0.3.0) signal new features and patch bumps (v0.1.1) signal bug fixes. There are no compatibility guarantees before v1.0.0.

To cut a release:

# make sure you're on main and the working tree is clean
git checkout main
git pull

# create and push the tag — this is the only step required
git tag v0.2.0
git push origin v0.2.0

GitHub Actions runs goreleaser, which:

  1. Compiles binaries for Linux (amd64, arm64), macOS (amd64, arm64), and Windows (amd64)
  2. Creates a GitHub release with tar.gz/zip archives and checksums.txt

You can validate the goreleaser config locally without building:

make release-check

You can do a full local snapshot build (all platforms, no publishing) with:

make snapshot   # outputs to ./dist/