Skip to main content
skill CX Codex

axiom-networking — Claude Code skill for Apple networking code

A skill with routing tables, reference docs and diagnostics for networking in Apple apps. Covers URLSession, Network.framework, connection failures and API migration.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add CharlesWiltgen/Axiom --skill axiom-networking -a claude-code
Open on GitHub

What axiom-networking does

This skill handles implementation and debugging of network connections in Apple apps: HTTP requests, WebSockets, TCP, timeouts and TLS failures. It routes the agent to one of five reference files depending on the symptom — networking-discipline.md for URLSession with structured concurrency, network-framework-ref.md for NetworkConnection (iOS 26+) and NWConnection (iOS 12–18) API, networking-diag.md for systematic failure diagnosis, networking-legacy.md for older NWConnection patterns, and networking-migration.md for moving off BSD sockets.

The skill instructs the agent to read the relevant file before proposing a fix. A timeout leads to networking-diag.md, which walks through 8 failure causes: DNS, TLS certificate validation, message framing, TCP congestion, IPv6-only cellular, VPN interference and ATS. It also covers a production crisis scenario with communication templates.

There is pressure resistance built in: if the user has sunk time into a custom implementation, the agent should diagnose the actual failure and say honestly when a standard API like URLSession would solve the problem. For automated checks, a axiom-audit-networking agent scans for deprecated APIs, anti-patterns and gaps in transition handling, TLS coverage and connection cleanup. Certificate pinning and request signing redirect to axiom-security via /skill axiom-security.

What it helps with

  • Diagnose an API request timeout
  • Set up URLSession with async/await and cancellation
  • Migrate from NWConnection to NetworkConnection
  • Pass App Store review without ATS/HTTP rejections
  • Pick a TCP/UDP/TLS connection pattern

Example prompts for the agent

  • My API request is failing with a timeout — diagnose it with axiom-networking
  • How do I use URLSession with async/await in Swift?
  • I need to implement a TCP connection, show the axiom-networking pattern

How to install axiom-networking

1Skills CLI (Vercel)

npx skills add CharlesWiltgen/Axiom --skill axiom-networking -a claude-code

2Manually: put the files in place

~/.claude/skills/axiom-networking/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/axiom-networking/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about axiom-networking

How do I install axiom-networking in Claude Code?

Run npx skills add CharlesWiltgen/Axiom --skill axiom-networking -a claude-code. The skill ends up at ~/.claude/skills/axiom-networking/SKILL.md.

What does axiom-networking do?

It gives the agent reference docs and rules for networking in Apple apps: URLSession with structured concurrency, Network.framework, failure diagnostics, deprecated API migration and patterns for iOS 12–18 and iOS 26+.

How is it different from a generic URLSession answer?

The skill forces the agent through a decision tree to a specific reference file instead of a generic reply. Connection failures get a systematic walkthrough of 8 causes; migrations from BSD sockets and StreamTask have dedicated guides.

Source text

SKILL.md · MIT
---
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 — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->
> **Auditors are skills here.** Where this router says "Launch `some-auditor` agent", invoke the
> matching Codex skill instead — same procedure, no Claude Code agent required.
>
> Available: `axiom-audit-networking`.
>
> The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
<!-- AXIOM_AUDITOR_INLINE_END -->

## 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

```dot
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"];
}
```

1. URLSession with structured concurrency? → `skills/networking-discipline.md`
2. Network.framework / NetworkConnection (iOS 26+)? → `skills/network-framework-ref.md`
3. NWConnection (iOS 12-18)? → `skills/networking-legacy.md`
4. Migrating from sockets/URLSession? → `skills/networking-migration.md`
5. Connection issues / debugging? → `skills/networking-diag.md`
6. Typed RPC / streaming against a service you control? → gRPC Swift (`skills/networking-discipline.md`)
7. ATS / HTTP / App Store rejection for networking? → `skills/networking-diag.md` + networking-auditor
8. Certificate pinning, signing API requests, encrypting payloads? → `/skill axiom-security`
9. UIWebView or deprecated API rejection? → networking-auditor (Agent)
10. 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:

1. **Diagnose first** — Understand what's actually failing before recommending changes
2. **Recommend correctly** — If standard APIs (URLSession, Network.framework) would solve the problem, say so professionally
3. **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** → `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

© CharlesWiltgen · MIT · CharlesWiltgen/Axiom

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set27

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor