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.
npx agentmods add instructions/koalaauto/here-macos/claude-mdgit clone --depth 1 https://github.com/koalaauto/here-macosWrote 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.
[](https://agentmods.dev/instructions/koalaauto/here-macos/claude-md)<a href="https://agentmods.dev/instructions/koalaauto/here-macos/claude-md"><img src="https://agentmods.dev/badge/instructions/koalaauto/here-macos/claude-md.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.03901 | $0.03901 |
| Opus 5 | $0.01951 | $0.01951 |
| Sonnet 5 | $0.00780 | $0.00780 |
| Haiku 4.5 | $0.00390 | $0.00390 |
Grade A, and why
here-macos CLAUDE.md scanned grade A with 0 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 4d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 151 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Here — AI Assistant Notes
Long-term menu bar macOS app showing your current egress country/region. Two-provider failover chain since v0.33.0: primary is ipwho.is, fallback is ip.guide (see Here/Networking/FallbackChainProvider.swift). Sequential, not racing — fallback only runs when the primary throws. The chain exists because a single hardcoded provider was a single point of failure when a user's VPN / proxy rules broke that one CDN (the v0.32.x → v0.33.0 motivation).
(Originally shipped as "IP Guide" through v0.23.x; renamed to Here at v0.24.0. Default provider switched to ipwho.is at v0.26.0 because ip.guide silently misreported VPN egresses. Failover chain added at v0.33.0; ip.guide came back as the fallback after field testing showed its accuracy on VPN egresses had improved.)
Architecture at a glance
- Entry:
Here/App/HereApp.swift(SwiftUIApp, settings-only scene) AppDelegatebuildsAppEnvironment+StatusBarControllerStatusBarControllerownsNSStatusItem+NSPopover(AppKit-managed)- Popover content rendered with SwiftUI via
NSHostingController - All IP-lookup networking flows through
IPService(actor) → anIPProvider. In production the provider is aFallbackChainProvider([IPWhoIsProvider(), IPGuideProvider()])wired up inAppEnvironment. EmitsIPStateviaAsyncStream. Each provider owns its own raw-response shape and amap(_:)adapter into the sharedIPDataModel— swapping providers is mechanical, not a UI / cache rewrite. The chain wrapper itself conforms toIPProvider, soIPServiceknows nothing about failover — it just sees "one provider". RefreshSchedulerruns the IP refresh loop on a hardcoded 5 s cadence (30 s while the display is asleep).NetworkMonitor(NWPathMonitor) fires extra immediate refreshes onbecameReachable/pathChanged; lid-wake does the same. The polling loop is the safety net for everything else — at 5 s, you don't need a customSCDynamicStoreobserver to catch WiFi hops or proxy toggles.UpdateChecker(actor) +UpdateInstaller(actor) +UpdateCoordinator(@MainActor) handle the auto-update pipeline.- Checker: fetches the GitHub releases atom feed (
releases.atomongithub.com, deliberately not the rate-limitedapi.github.com), parses it withXMLParser, and returnsUpdateInfo(version + release page URL + a DMG URL synthesized from theHere-X.Y.Z.dmgnaming convention — the atom feed doesn't enumerate release assets). SeeUpdateChecker.swift's header for why the atom feed replaced the JSON API at v0.33.0. - Coordinator: owns the daily wake-up timer, persists
lastUpdateCheckAt/skippedUpdateVersioninSettingsStore, presents the "Update available" alert and the install progress NSPanel. - Installer: URLSession-downloads the DMG (intentionally avoids
com.apple.quarantinexattr that browser downloads carry — that's how we skip the Gatekeeper "open anyway" prompt on every upgrade),hdiutil attachs it,ditto-copiesHere.appto a staging dir, then writes a tiny bash relauncher that polls our PID, swaps/Applications/Here.app, andopens the new bundle. WeNSApp.terminate(nil)ourselves; the script outlives us by being detached from our stdio.
- Checker: fetches the GitHub releases atom feed (
- Picker (Never / Once a day / Once a week) + Check now button live in General settings.
- The popover footer's settings gear opens Settings via SwiftUI's
\.openSettingsenv action; the right-click menu's Settings… item calls the same captured action throughAppEnvironment.openSettingsAction. Don't try to open Settings viaNSApp.sendAction(showSettingsWindow:)from AppKit code — for LSUIElement apps with no visible main menu it silently no-ops. - Settings use an
@ObservableSettingsStorewith UserDefaults-backed properties (manualdidSetpersistence) - Cache at
~/Library/Application Support/Here/last_ip.json(we ship without App Sandbox — seeHere/Here.entitlementsfor why; the in-app installer needs to spawnhdiutiland write outside the container).
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.
- 4d ago First seen · 151 lines · 3,901 tokens per session scan A 95a4998a4e1a
here-macos CLAUDE.md is an instructions file published in the GitHub repository koalaauto/here-macos (45 stars, last pushed 18d ago), licensed MIT. It adds 3,901 tokens to every session, about $0.0195 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
Applite CLAUDE.md
Instructions for milanvarady/Applite, covering claude.md, project overview, build & run, architecture and data flow.
skills-manager CLAUDE.md
Instructions for yibie/skills-manager, covering skills manager - development guide, tui engine: blessed, 核心原则, 参考文档 and 正确的 list 用法.
swift-tui AGENTS.md
AGENTS.md instructions for SwiftTUI/swift-tui, covering agents.md, build & test commands, architecture (one-page summary), development guidelines and code style.
skills-manager AGENTS.md
Instructions for yibie/skills-manager, covering repository agent instructions and ui and interaction work.
DeepSeekMeter AGENTS.md
Instructions for CWNU-Open-Source-Community/DeepSeekMeter, covering agents.md — deepseekmeter 仓库操作规范, 1. 项目是什么, 2. 常用命令(改动后必须本地验证), ios 版验证(核心包自测 + 工程结构静态校验必跑;有 xcode 时还会构建 app 冒烟) and android 核心单测(需 jdk 17 + android sdk;jvm 直跑无需设备).
pareto-mac CLAUDE.md
Claude Code instructions for ParetoSecurity/pareto-mac, covering claude.md, pareto security development guide, build & test commands, application architecture and core components.