tailnet-expose

tailnet-expose is a skill for Claude Code, Codex from masa-san-jp/Agent-Aiko. It costs 172 tokens per session (1,130 once invoked), scanned C, original, MIT.

A local sharing tool that gives files, folders, or running services a URL reachable only by devices on your Tailscale network.

In plain words
What is it for?
Use it to serve static files or folders, forward a local service port, check active exposures, and stop them afterward.
Why use it?
It avoids the limits of file URLs and localhost when you need to view something from another device without exposing it to the public internet.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to serve static files or folders, forward a local service port, check active exposures, and stop them afterward.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/masa-san-jp/agent-aiko/tailnet-expose
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add masa-san-jp/Agent-Aiko --skill tailnet-expose
Clone the repo
git clone --depth 1 https://github.com/masa-san-jp/Agent-Aiko

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for tailnet-expose

README.md
[![agentmods](https://agentmods.dev/badge/skills/masa-san-jp/agent-aiko/tailnet-expose/github.svg)](https://agentmods.dev/skills/masa-san-jp/agent-aiko/tailnet-expose)
Your own site
<a href="https://agentmods.dev/skills/masa-san-jp/agent-aiko/tailnet-expose"><img src="https://agentmods.dev/badge/skills/masa-san-jp/agent-aiko/tailnet-expose/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for tailnet-expose

Your own site · 80×15
<a href="https://agentmods.dev/skills/masa-san-jp/agent-aiko/tailnet-expose"><img src="https://agentmods.dev/badge/skills/masa-san-jp/agent-aiko/tailnet-expose.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 172 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,130 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00172 $0.01130
Opus 5 $0.00086 $0.00565
Sonnet 5 $0.00034 $0.00226
Haiku 4.5 $0.00017 $0.00113

Measured 10d ago against content hash 6f19885d566e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade C, and why

tailnet-expose scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

## 仕組み(sudo 不要)

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

ネットワーク配信を伴うため、本スクリプトをエージェントの権限 allowlist に入れる。設定ファイル(例: `{{ORG_REPO_PATH}}/.claude/settings.json` の `permissions.allow`)に、自分の配置に合わせた絶対パスで登録する:
reference/skills/tailnet-expose/SKILL.md · 64 lines

What it actually says

/tailnet-expose

ローカルのもの(静的成果物・稼働中サービスのポート)を、tailnet 内だけの URL で出す汎用スキル。

何のためか

ユーザーが別端末(スマホ等)から成果物を見たい場合、file://localhost は別端末からは届かない。Tailscale の tailnet に出せば、同じ tailnet に属する端末からだけ URL で見れて、外部には出ない。これを「静的成果物」でも「稼働中サービス」でも 1 コマンドで出せる共通の土台にする。

2 つのモード

同梱スクリプト {{ORG_REPO_PATH}}/Agent-team/tools/tailnet-expose/tailnet-expose.sh を呼ぶ。

SK={{ORG_REPO_PATH}}/Agent-team/tools/tailnet-expose/tailnet-expose.sh

# 1) 静的ファイル/ディレクトリを配信
bash "$SK" serve <path-to-file-or-dir> [--port N]
#   → http://<host>.<tailnet>.ts.net:<port>/[file]

# 2) 既にローカルで動いてるサービス(127.0.0.1:M)を tailnet に転送
bash "$SK" port <N> [--target M]      # 既定 M=N
#   → http://<host>.<tailnet>.ts.net:<N>/   (例: dev server localhost:3000 を port 3000 で出す)

bash "$SK" status                      # 出してるもの一覧
bash "$SK" stop [--port N|--all]       # 片付け(使い終わったら必ず)

返ってきた URL をそのままユーザーの端末へ(チャット等で)送る。

仕組み(sudo 不要)

  • serve: python3 -m http.servertailscale IP に bind して配信する。
  • port: 同梱の tcp_relay.py(依存なしの小さな TCP リレー)で tailscale IP:N → 127.0.0.1:M を中継する。
  • どちらも tailscale serve/証明書/operator 設定/sudo は不要。bind 先を tailscale IP に限定するので LAN・インターネットには出ない。

不可侵ルール

  1. tailnet 内のみ。tailscale funnel(インターネット公開)は絶対に使わない。 成果物には未公開情報が含まれうる。
  2. bind 先は tailscale IP に限定0.0.0.0/LAN IP に bind しない)。
  3. 使い終わったら stop 出しっぱなしにしない。
  4. 第三者の実名・機微は成果物自体に入れない。

有効化(allowlist のみ)

ネットワーク配信を伴うため、本スクリプトをエージェントの権限 allowlist に入れる。設定ファイル(例: {{ORG_REPO_PATH}}/.claude/settings.jsonpermissions.allow)に、自分の配置に合わせた絶対パスで登録する:

"Bash(bash {{ORG_REPO_PATH}}/Agent-team/tools/tailnet-expose/tailnet-expose.sh:*)"

検証状況

  • serve(静的配信)・port(既存サービス転送)とも tailscale IP 経由で HTTP 200 到達を実機検証済み。

関連

  • HTML 特化版:{{ORG_REPO_PATH}}/Agent-team/reference/skills/live-preview/SKILL.md/live-preview。内部で本スキルの serve を呼ぶ)
  • 実装本体:{{ORG_REPO_PATH}}/Agent-team/tools/tailnet-expose/tailnet-expose.sh
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 64 lines · 172 tokens per session scan C 6f19885d566e

Subscribe to this mod's changes

tailnet-expose is a skill published in the GitHub repository masa-san-jp/Agent-Aiko (3 stars, last pushed 1mo ago), licensed MIT. It adds 172 tokens to every session and 1,130 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it C with 2 findings (asks for root, reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

qwenpaw-usage

A QwenPaw command-line guide for setting up scheduled self-checks and packaging a QwenPaw workspace for another server.

alibaba/anolisa · 84 tokens

aliyun-ecs

A command-line tool for managing Alibaba Cloud Elastic Compute Service (ECS), which provides rented virtual servers. It handles servers and related resources such as disks, snapshots, images, security groups, keys, and network interfaces.

alibaba/anolisa · 69 tokens

storage-resize

A Linux procedure for expanding a cloud disk and then enlarging its partition and file system. It is designed for RPM-based systems such as Alibaba Cloud Linux and supports XFS, EXT4, and Btrfs.

alibaba/anolisa · 73 tokens

backup-restore

A backup and recovery guide for projects, personal files, operating systems, disks, and Alibaba Cloud snapshots on command-line Linux systems that use the yum package manager. It first identifies the environment and then selects the relevant backup level.

alibaba/anolisa · 155 tokens

floom

Create, run, and manage Floom AI workers — cloud automations that run on a schedule or a trigger and report back. Reach for this whenever the user wants something to happen repeatedly or in the background rather than a one-off script: a recurring task, "every day / every hour / every week", "schedule this", "run it on…

floomhq/floom · 194 tokens

install-qwenpaw

An installation guide for running the QwenPaw AI assistant on Alibaba Cloud Linux 4, including setup for DingTalk and Alibaba Cloud's model service.

alibaba/anolisa · 88 tokens