axiom-networking
charleswiltgen/axiom
Implement and debug URLSession, Network.framework, and socket connections in Apple apps.
What is axiom-networking?
Comprehensive networking skill for iOS/macOS development covering URLSession with structured concurrency, Network.framework (NetworkConnection and NWConnection), connection diagnostics, and migration patterns. Use this for any HTTP requests, WebSockets, TCP/UDP connections, or network debugging in Apple apps.
- URLSession with structured concurrency and async/await patterns
- Network.framework API reference for NetworkConnection (iOS 26+) and NWConnection (iOS 12-18)
- Systematic diagnosis of connection failures (DNS, TLS, timeouts, cellular edge cases)
- TLV framing, Coder protocol, and low-level socket patterns
- Migration guidance from BSD sockets and deprecated APIs to modern frameworks
- Anti-pattern detection and pressure-scenario handling for custom networking implementations
How to install axiom-networking
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-networkingHow to use axiom-networking
- 1.Identify your networking task: HTTP requests, TCP/UDP sockets, debugging, or migration
- 2.Consult the decision tree: URLSession patterns → networking-discipline.md, API reference → network-framework-ref.md, debugging → networking-diag.md, legacy code → networking-legacy.md or networking-migration.md
- 3.Read the relevant reference document for your iOS version and use case
- 4.Apply the patterns, anti-patterns, and examples to your implementation
- 5.Run the networking-auditor agent to scan for deprecated APIs and anti-patterns before shipping
Use cases
- Implementing HTTP/REST API calls with proper error handling and cancellation
- Debugging connection timeouts, TLS certificate failures, and data arrival issues
- Migrating from custom networking layers or deprecated APIs to URLSession/Network.framework
- Building TCP/UDP connections with TLS encryption and certificate pinning
- Resolving App Store rejections for ATS violations or deprecated API usage
- iOS/macOS app developers implementing network features
- Backend engineers debugging production networking issues
- Teams migrating from custom networking implementations to standard APIs
- Developers preparing apps for App Store review with networking components
axiom-networking FAQ
URLSession for HTTP/HTTPS requests with automatic handling of proxies and cellular. Network.framework (NetworkConnection/NWConnection) for custom TCP/UDP protocols, low-level control, or when you need TLV framing and streaming. See network-framework-ref.md for decision tree.
NetworkConnection is the iOS 26+ modern API with cleaner async/await support. NWConnection is the iOS 12-18 predecessor with completion handlers. Use NetworkConnection for new code; see networking-migration.md for upgrading existing NWConnection code.
Connection timeouts have 8 possible causes: DNS resolution, TLS handshake, proxy interference, firewall blocking, IPv6-only cellular, VPN, ATS policy, or message framing. See networking-diag.md for the systematic diagnosis decision tree.
SCNetworkReachability, blocking sockets, hardcoded IPs, custom retry logic, ignoring cancellation tokens, missing TLS validation, and not handling cellular/proxy edge cases. See networking-discipline.md for details and correct patterns.
This is an App Transport Security (ATS) violation. See networking-diag.md for ATS compliance rules and exceptions. Most apps must use HTTPS; HTTP is only allowed for localhost or with explicit NSExceptionDomains in Info.plist.
Full instructions (SKILL.md)
Source of truth, from charleswiltgen/axiom.
name: axiom-networking description: Use when implementing or debugging ANY network connection, API call, or socket in an Apple app. Covers URLSession, Network.framework, NetworkConnection, connection diagnostics. license: MIT
Networking
You MUST use this skill for ANY networking work including HTTP requests, WebSockets, TCP connections, or network debugging.
<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit --><!-- AXIOM_AUDITOR_INLINE_END -->Not on Claude Code? Where this router says "Launch
some-auditoragent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.Available here:
skills/networking-auditor.md.Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.
Quick Reference
| Symptom / Task | Reference |
|---|---|
| URLSession with structured concurrency | See skills/networking-discipline.md |
| Network.framework anti-patterns | See skills/networking-discipline.md |
| Deprecated API migration | See skills/networking-discipline.md |
gRPC Swift — typed RPC, streaming, .proto codegen (WWDC 2026) | See skills/networking-discipline.md |
| Pressure scenarios (reachability, sockets) | See skills/networking-discipline.md |
| NetworkConnection (iOS 26+) API reference | See skills/network-framework-ref.md |
| NWConnection (iOS 12-18) API reference | See skills/network-framework-ref.md |
| TLV framing, Coder protocol | See skills/network-framework-ref.md |
| NetworkListener, NetworkBrowser, Wi-Fi Aware | See skills/network-framework-ref.md |
| Connection timeouts, TLS failures | See skills/networking-diag.md |
| Data not arriving, connection drops | See skills/networking-diag.md |
| ATS / HTTP / App Store rejection | See skills/networking-diag.md |
| Production crisis diagnosis | See skills/networking-diag.md |
| NWConnection patterns (iOS 12-18) | See skills/networking-legacy.md |
| UDP batch, NWListener, NWBrowser | See skills/networking-legacy.md |
| BSD sockets → NWConnection migration | See skills/networking-migration.md |
| Push/calls on networks without internet (Local Push Connectivity, NEAppPushProvider) | Use axiom-integration (skills/local-push-connectivity.md) |
| NWConnection → NetworkConnection migration | See skills/networking-migration.md |
| URLSession StreamTask → NetworkConnection | See skills/networking-migration.md |
Decision Tree
digraph networking {
start [label="Networking task" shape=ellipse];
what [label="What do you need?" shape=diamond];
start -> what;
what -> "skills/networking-discipline.md" [label="implement patterns,\nanti-patterns,\npressure scenarios"];
what -> "skills/network-framework-ref.md" [label="API reference\n(iOS 26+ or 12-18)"];
what -> "skills/networking-diag.md" [label="debug connection\nfailures"];
what -> "skills/networking-legacy.md" [label="iOS 12-18\nNWConnection patterns"];
what -> "skills/networking-migration.md" [label="migrate from\nsockets/URLSession"];
}
- URLSession with structured concurrency? →
skills/networking-discipline.md - Network.framework / NetworkConnection (iOS 26+)? →
skills/network-framework-ref.md - NWConnection (iOS 12-18)? →
skills/networking-legacy.md - Migrating from sockets/URLSession? →
skills/networking-migration.md - Connection issues / debugging? →
skills/networking-diag.md - Typed RPC / streaming against a service you control? → gRPC Swift (
skills/networking-discipline.md) - ATS / HTTP / App Store rejection for networking? →
skills/networking-diag.md+ networking-auditor - Certificate pinning, signing API requests, encrypting payloads? →
/skill axiom-security - UIWebView or deprecated API rejection? → networking-auditor (Agent)
- Want deprecated API / anti-pattern scan? → networking-auditor (Agent)
Platform-specific networking
- watchOS low-level-networking limits (TN3135) → See axiom-watchos (skills/background-and-networking.md)
Pressure Resistance
When user has invested significant time in custom implementation:
Do NOT capitulate to sunk cost pressure. The correct approach is:
- Diagnose first — Understand what's actually failing before recommending changes
- Recommend correctly — If standard APIs (URLSession, Network.framework) would solve the problem, say so professionally
- Respect but don't enable — Acknowledge their work while providing honest technical guidance
Critical Patterns
Networking (skills/networking-discipline.md):
- URLSession with structured concurrency
- 8 red-flag anti-patterns (SCNetworkReachability, blocking sockets, hardcoded IPs)
- Decision tree for choosing TCP/UDP/TLS patterns
- NetworkConnection patterns (iOS 26+): TLS, UDP, TLV framing, Coder protocol
- 3 pressure scenarios with professional push-back templates
- Pre-shipping checklist
Network Framework Reference (skills/network-framework-ref.md):
- NetworkConnection (iOS 26+): all 12 WWDC 2025 examples
- NWConnection (iOS 12-18): complete API with examples
- TLV framing, Coder protocol, NetworkListener, NetworkBrowser
- Mobility: viability, better path, Multipath TCP, NWPathMonitor
- Security: TLS, certificate pinning, cipher suites
- Performance: user-space networking, ECN, service class, TCP Fast Open
Diagnostics (skills/networking-diag.md):
- Systematic decision tree for all connection failure types
- DNS failures, TLS certificate validation, message framing
- TCP congestion, IPv6-only cellular, VPN interference, ATS
- Production crisis scenario with professional communication templates
Legacy (skills/networking-legacy.md):
- NWConnection with TLS (completion handlers)
- UDP batch (30% CPU reduction)
- NWListener, NWBrowser (Bonjour discovery)
Automated Scanning
Networking audit → Launch networking-auditor agent or /axiom:audit networking (deprecated APIs, anti-patterns, and completeness gaps — transition handling, TLS coverage, connection cleanup, framework selection)
Anti-Rationalization
| Thought | Reality |
|---|---|
| "URLSession is simple, I don't need a skill" | URLSession with structured concurrency has async/cancellation patterns. skills/networking-discipline.md covers them. |
| "I'll debug the connection timeout myself" | Connection failures have 8 causes (DNS, TLS, proxy, cellular). skills/networking-diag.md diagnoses systematically. |
| "I just need a basic HTTP request" | Even basic requests need error handling, retry, and cancellation patterns. |
| "My custom networking layer works fine" | Custom layers miss cellular/proxy edge cases. Standard APIs handle them automatically. |
Example Invocations
User: "My API request is failing with a timeout"
→ Read: skills/networking-diag.md
User: "How do I use URLSession with async/await?"
→ Read: skills/networking-discipline.md
User: "I need to implement a TCP connection"
→ Read: skills/network-framework-ref.md
User: "Should I use NWConnection or NetworkConnection?"
→ Read: skills/network-framework-ref.md
User: "My app was rejected for using HTTP connections"
→ Read: skills/networking-diag.md (ATS compliance)
User: "App Store says I'm using UIWebView"
→ Invoke: networking-auditor agent (deprecated API scan)
User: "Check my networking code for deprecated APIs"
→ Invoke: networking-auditor agent
Related skills
More from charleswiltgen/axiom and the wider catalog.

axiom-shipping
Prepare apps for App Store submission, handle rejections, manage App Store Connect, and triage crashes.

axiom-swiftui
SwiftUI views, navigation, layout, animations, gestures, debugging, and iOS 26 features.

axiom-vision
Computer vision for image analysis, pose detection, segmentation, OCR, and barcode scanning.

axiom-xcode-mcp
Set up and use Xcode's MCP server for IDE-driven builds, tests, and previews via external AI clients.

graphic-designer
Create LinkedIn post graphics with HTML/CSS layouts or AI-generated infographics.

reels-scripting
Turn Instagram Reels into scripts for your newsletter topics in your voice.