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

推荐订阅源

小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
S
Securelist
Attack and Defense Labs
Attack and Defense Labs
T
Threat Research - Cisco Blogs
L
LINUX DO - 最新话题
The GitHub Blog
The GitHub Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Security Affairs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
美团技术团队
量子位
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
GbyAI
GbyAI
O
OpenAI News
IT之家
IT之家
F
Full Disclosure
W
WeLiveSecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Palo Alto Networks Blog
P
Privacy International News Feed
Webroot Blog
Webroot Blog
C
CERT Recently Published Vulnerability Notes
Latest news
Latest news
月光博客
月光博客
博客园 - 【当耐特】
N
News | PayPal Newsroom
Cloudbric
Cloudbric
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
K
Kaspersky official blog
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
博客园 - 叶小钗
TaoSecurity Blog
TaoSecurity Blog
Martin Fowler
Martin Fowler
Simon Willison's Weblog
Simon Willison's Weblog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
D
Docker
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
PCI Perspectives
PCI Perspectives
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网

Blog on Tailscale

Access Home Assistant Remotely with Tailscale | Guide Audit AI agent requests, logs, and access with Aperture A no-nonsense explainer to Agentic AI Database, Kubernetes, and SSH access without passwords | Border0 + Tailscale Tailscale adds log streaming for Azure Blob Storage Build a flexible AI stack with Aperture More Tailscale tricks for your jailbroken Kindle Redundancy only matters if you can reach it Fixing my ridiculous fridge with a tiny Funnel site Canada’s Bill C-22 and the security cost of collecting more data Introducing: Aperture CLI Five TailscaleUp sessions I’d attend if I didn’t work here Bambuddy: self-hosted 3D printing beyond the vendor cloud Fixing Headlamp OIDC login with Tailscale and tsidp How Cleric uses tsnet to securely automate software operations Tailscale + Paperless-ngx: scan everything, expose nothing Aperture, now in beta, adds the controls teams need for AI agents This month at Tailscale for April 2026 Meet tailscale-rs, our new Rust library preview Pricing v4: more value, more simply Being the adult in the room The hidden costs of “good enough” network access This month at Tailscale for March 2026 Escaping the notch: Tailscale's new macOS home
What a $20 Claude Code or Codex subscription actually buys, per Aperture
Kevin Purdy · 2026-07-18 · via Blog on Tailscale

31 cents seems like a lot to pay just to send “Good evening” to Claude Code, even if there are reasons for it. But $3.29 for a personalized B-minus copy of Rampart, running in a browser? I can see that.

Those are the current token costs you might pay Anthropic for its coding assistance. If you pay $20 per month for a Claude Pro or ChatGPT subscription—or your company pays even more per-seat for team subscriptions—you don’t see the costs, unless you go looking for them. I know these numbers because I started using Claude Code through Aperture, Tailscale’s gateway for managing LLM use—which now works with subscription logins, not just API keys.

Why track your coding costs through Aperture? Right now, a flat monthly fee buys a mostly unknown amount of computing, subsidized by lighter users and a great deal of venture capital. You’re never quite sure how good a deal you’re getting. Anthropic provides a usage-limit progress bar and per-session tools, while OpenAI offers next to nothing.

The economics of this arrangement seem increasingly temporary. When the inevitable repricing happens—like it already has for organizations above Anthropic's 150-seat Team limit—people who know their token math can make an informed decision, based on their real usage and needs. Everyone else does a gym-membership-style guessing game, whether for themselves or dozens of employees.

Tracking your own coding receipts takes less than 15 minutes. Once you’re set up, you’ll almost certainly find other tools in Aperture useful, too, whether for subscriptions or other AI usage.

Connect your subscription to Aperture

Let’s set up Aperture to handle access to an Anthropic Pro subscription to use Claude Code. If you use ChatGPT/Codex, the process is much the same. We have documentation on setting up both Anthropic/Claude and ChatGPT/Codex.

First, add Aperture on your tailnet. Provide your email address on Aperture’s signup form (company name is optional), then follow the prompts. You’ll end up with a web address you can reach on your tailnet URL, with ai as the default. So if your tailnet was assigned silly-pangolin.ts.net, your Aperture instance would live at https://ai.silly-pangolin.ts.net (presuming you have HTTPS enabled for your tailnet; otherwise it starts with http). Open your Aperture URL in a browser while signed into Tailscale.

If you're setting up a new Aperture instance, Anthropic and OpenAI subscriptions are automatically configured for you. If you created your Aperture instance earlier this year and have not set up subscription providers yet, go to the Administration section of your My Aperture configuration section, head into Providers, and choose OpenAI (Subscription) or Anthropic (Subscription), and the fields are filled out for you.

Aperture should provide the most commonly used models in the Models section, using exact names like claude-sonnet-4-6; add anything else you want specifically in there. Select Save and you’re most of the way there.

Agent Config page showing configuration instructions for Claude Code, Codex, OpenCode, and GitHub Copilot. Two JSON code blocks display configuration settings for Aperture API endpoint and MCP servers with URLs and model parameters.

Connecting a coding agent

We’re now going to set up Claude Code to send its requests and authorization through Aperture, rather than its default flow that goes straight to Anthropic.

First, log in. If you haven’t set up Claude Code before, install it, launch a terminal window, start Claude Code with claude, answer the prompts about directories and safety, and you’ll land at a Claude Code prompt. Enter /login, and log into your Anthropic account through the browser tab that pops up (or copy and paste the URL and resulting code).

Once you’ve logged in, you need to edit one file, to add your Aperture hostname. Using silly-pangolin.ts.net as an example, we’ll edit ~/.claude/settings.json to provide our Aperture gateway (~/.codex/config.toml for ChatGPT). Note that base URL is specifically http, to avoid unexpected TLS issues; the traffic remains encrypted.

You can do this a few ways:

  • With your file browser, by revealing the hidden `.claude` folder in your user folder and opening it with Notepad, TextEdit, or another text editor
  • With a code editor like Visual Studio Code
  • Inside the terminal itself: nano ~/.claude/settings.json, edit the file, then Control+O to “WriteOut” (save), and Control+X to exit.

If you have other variables set in your settings.json, you can leave them be. If there is an API key, remove that line, making sure there is a comma after every line, except the last.

Now test your connection. Run claude from a directory you want to work in (or just your home directory). Give it a test prompt. If it responds, it’s likely working, but let’s double-check. Head into your Aperture dashboard, down to Logs, and look for your test prompt. In my case, using Claude Code and sending a single-line chat, it’s broken down into a session with three parts:

  • An authentication bit sent to Anthropic via Aperture
  • My message (“Good evening?”) and some of Claude Code’s session-opening framing (“Generate a concise, sentence-case title … describe what the user is asking about … ”) sent along with it
  • The response: A humongous wall of text sent to Anthropic that essentially tells it how Claude Code works, and then the response: “Good evening! What are you working on?”

This little cordiality to Claude would have cost 31 cents, according to Aperture. But Aperture also showed me why. The first request of every session pays full price to write Claude Code’s enormous system prompt into the cache, setting it down for every following request. Token math is tricky, so I’m glad to have something else doing a lot of it for me.

With those introductory sunk costs in place, the next logical step was, obviously, asking Claude Code to build me a browser-based version of the arcade classic Rampart. How much would it cost to whip up a simulacrum of that progenitor of the tower defense genre, the one with a bit of Tetris mixed in?

Rampart game over screen showing pixelated castle structure in brown and blue blocks on dark blue background. Yellow Pac-Man character in bottom left, red enemy ghost in bottom right, gold gem in top right. Text reads 'Castle lost! Game over. Press Start to play again.' Score: 400. Start Game button at bottom.
The author eventually forced the "ships" to start firing more randomly, rather than drill in on his single cannon.

What you can do: see what models actually do (and cost)

I went a few rounds with Claude Code, refining the gameplay until it almost matched my memories of long summer afternoons with the NES version of Rampart. The agent told me my initial scope, with a full two-player mode that used tsnet for authentication, would have been a “weekend-to-week project.” So I stuck with a single-player game, with just-above-Atari-level graphics and gameplay that I kept revising until it felt like a reasonable approximation.

How much did this cost? On a Claude Pro subscription, there is only one answer, for now: $20, every month, unless you go over your limits and spend optional “Usage credits” you keep topped up. Was I close to that line? I can type /usage into Claude Code and see the actual costs and token use, but just for this one session.

Aperture dashboard showing usage metrics for the last 30 days: 55 total requests, 3,214,770 total tokens, $3.29 estimated cost. Breakdown shows 326,359 input tokens, 32,211 output tokens, 2,856,200 cached tokens, and 0 reasoning tokens. Metrics by Model table displays claude-sonnet-4-6 with 52 requests, 326,359 input, 32,211 output, and 2,856,200 cached tokens.

You could install any number of third-party trackers, like ccusage, that can track your token-per-turn data. But those are per-device tools you have to set up. Aperture, once authorized, can track all your sessions, models, devices, agents, and whatever else you connect, and make it all make sense at a glance.

My Rampart project, on Claude’s Sonnet 4.6, was 47 requests, 326,359 input tokens, 32,211 output tokens, with 2.85M tokens cached. It would have cost me $3.29 if I was using prepaid or usage credit tokens.

That same week, I went deep on a complex home automation project—cable-running, hardware buying, container setup, a whole deal. I stuck with Claude’s Opus model for most of it, never compacted or created new sessions, filled the context window beyond 150K, used a lot of MCP tools, and burned a hypothetical $32.76. This revealed some … skill issues, let's say, along with more context for future subscription renewals.

Now imagine that $3-or-maybe-$32 spread across every seat on a Team plan.

Aperture Chat Alpha interface showing a conversation about summing the first 100 digits of pi. The chat displays the result of 472, an explanation using the mpmath library, and a downloadable Python file named sum_pi_digits.py. Left sidebar shows navigation options and recent chats.
Aperture's chat interface, letting you keep all your chats with your (token-based) LLMs in one place.

What Aperture adds to coding agent subscriptions

If you’ve set up Aperture on your tailnet, and set up a passthrough provider for Anthropic or OpenAI, you can make use of a number of Aperture features, beyond the token and cost tracking:

  • Set up guardrails to prevent personal information, keys, or anything you want from going to LLM providers
  • Pick which models you do and do not want your coding agents to use
  • Set up connectors and MCP tools for all your coding agents to use
  • Add your local AI models, and API-based cloud models, to Aperture, making them easy to switch between on any connected system

Aperture has a lot more to offer if you get into API-based usage: setting up and controlling agents, a multi-provider chat interface, setting up cost and model-use quotas, and more. It's particularly useful for teams looking at token-based pricing (whether on their own or due to seat limits), providing quotas, per-team budgets, and detailed audit logs. Seeing how much you save, or not, from a subscription model might just compel you to explore your options.

What you can’t do: sneak around usage rules

You and I, reader? We’re honest types. But there are some people who might see “A single endpoint for access to your Anthropic subscription” and think, “Ah, I know some off-the-books ways that could be useful.” Straight talk: those ways will not work.

During our setup, we set our mode to passthrough and logged into an Anthropic account using the /login command. That login credential is the thing getting passed through. Anyone else who tried to use Claude Code or Codex with your Aperture endpoint would, for starters, have to be on your tailnet. Even if they were, they would then have to sign into the associated Anthropic or OpenAI account. Their logs would get mixed with yours, and Aperture doesn't add anything.

What about using Aperture to load your subscription into third-party tools and harnesses? Aperture isn’t designed for that, and it is, generally, a violation of both Anthropic and OpenAI’s terms of service for their subscriptions. Anthropic has gone back and forth on third-party usage a few times, but ultimately prioritizes use of its own tools. OpenAI, for its part, has generally allowed third-party agents and tools to access inference through ChatGPT subscriptions.

Aperture provides easier access, and better visibility, to LLM tools. It’s a gateway, not a back door.

How has Aperture proved useful for your own AI-assisted coding? Let us know on Reddit, Discord, Bluesky, X, Mastodon, or LinkedIn.