Agent skill

Boost Asio Pro

by sickn33 in sickn33/agentic-awesome-skills

A skill your agent uses when writing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops.

MITAuto-check passedDevelopment

Install Boost Asio Pro

skills CLI
$ npx skills add sickn33/agentic-awesome-skills --skill boost-asio-pro -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sickn33/agentic-awesome-skills boost-asio-pro --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/boost-asio-pro .claude/skills/boost-asio-pro && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
boost-asio-pro
GitHub stars
47k
Used in
1 other repo
Token cost
~3k tokens
SKILL.md length
1,325 words
Files
6 (incl. references)
Skills in repo
1,354
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops.

  • Works in 3 steps: pick the style (do this before writing… → version floors (verified by compiling,… → the rules that are actually easy to get…
  • Writing asynchronous C++ networking code with Boost.Asio
  • SKILL.md covers Overview, When to Use This Skill, Step 1: pick the style (do… and Step 2: version floors…, plus 9 more sections
  • Calls brew

What it does

Boost Asio Pro is an agent skill from sickn33/agentic-awesome-skills. Use when writing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops. Covers iocontext, cospawn, awaitable, asyncread/asyncwrite, asio::spawn, yieldcontext, and pre-C++20 callback styles.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/build.md`, `references/classic-boost.md` and `references/coroutines.md`).

It sits in Development, covering Async programming. It works with C++. The repository describes itself as: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is MIT.

When your agent uses it

  • Writing asynchronous C++ networking code with Boost.Asio
  • Standalone Asio — TCP/UDP servers and clients
  • Composed async ops

Example prompts

  • “/boost-asio-pro”

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. pick the style (do this before writing code)
  2. version floors (verified by compiling, not from docs)
  3. the rules that are actually easy to get wrong

What it can do on your machine

Read from SKILL.md and the folder at commit ec02547. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • brew

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • boost.org
    • think-async.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Boost Asio Pro loads about 3k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 75 tokens; SKILL.md has 1,325 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sickn33/agentic-awesome-skills at commit ec02547, republished under its MIT licence (© sickn33). 1,325 words, ~3,005 tokens.

Download SKILL.mdSave it as .claude/skills/boost-asio-pro/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
boost-asio-pro
description
Use when writing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops. Covers io_context, co_spawn, awaitable, async_read/async_write, asio::spawn, yield_context, and pre-C++20 callback styles.
category
development
risk
safe
source
community
source_repo
alexprivalov/boost-asio-skill
source_type
community
date_added
2026-08-18
author
alexprivalov
tags
cpp, boost, asio, async, networking, coroutines
tools
claude, cursor, gemini
license
MIT

Boost.Asio / standalone Asio

Overview

Write async C++ networking code that compiles on the user's Boost, not the newest one. Asio's API changed shape three times (classic io_service → io_context → C++20 coroutines) and most Asio code on the internet is from the first era, so pick the style from the toolchain first, then follow that style's reference file.

References: Boost.Asio · standalone Asio

Asio's API changed shape three times, so the same task has three correct answers depending on the Boost version in front of you. This skill makes the agent establish that version first, then apply the rules that are genuinely easy to get wrong — strand versus write serialization, buffer and connection lifetime, composed reads for framing — and finally check its own output against a list before calling it done.

When to Use This Skill

  • Use when writing or reviewing async C++ networking code with Boost.Asio or standalone Asio: TCP/UDP servers and clients, SSL/TLS streams, timers, resolvers.
  • Use when the code involves io_context, io_service, co_spawn, awaitable, async_read, async_write, strand, asio::spawn, yield_context, or completion-handler callbacks.
  • Use when the target toolchain is old: an older Boost or a pre-C++20 standard, where coroutine examples will not compile.
  • Use when async code compiles but misbehaves: interleaved writes, dangling buffers, sockets closing early, operation_aborted treated as an error.

Step 1: pick the style (do this before writing code)

Determine the Boost (or Asio) version and the C++ standard actually in use — find_package(Boost) output, dpkg -l libboost-dev, brew info boost, CMAKE_CXX_STANDARD, or ask. Do not assume the newest.

BoostC++ stdStyleRead
≥ 1.77C++20Coroutines (co_await + awaitable<T>) — preferredreferences/coroutines.md
≥ 1.74C++11–17Completion handlers (callbacks) — the portable baselinereferences/pre-cpp20.md
≥ 1.80C++11–17Stackful asio::spawn + yield_context (links Boost.Coroutine — not header-only)references/pre-cpp20.md
1.62–1.65C++11Classic io_service / strand.wrap / expires_from_nowreferences/classic-boost.md

SSL/TLS in any style: references/ssl.md. CMake for any style: references/build.md.

io_context, make_strand, bind_executor, steady_timer, signal_set, async_read/async_write/async_read_until, buffers and resolver are library features — identical in the coroutine and callback styles. Only the suspension mechanism differs.

Step 2: version floors (verified by compiling, not from docs)

Reach for one of these and the build breaks on older distros:

FeatureFloor
experimental/awaitable_operators.hpp (the || / && operators)Boost ≥ 1.77 / Asio ≥ 1.20
as_tuple completion tokenBoost ≥ 1.79 / Asio ≥ 1.21
co_composed (custom composed ops)Boost ≥ 1.85 / Asio ≥ 1.30
3-arg asio::spawn(ex, fn, token)Boost ≥ 1.80 (older Boost has only spawn(ex, fn))
any_io_executor (strand<any_io_executor>, tcp::socket's default executor)Boost ≥ 1.74 — the floor for the callback style; below it, use legacy io_context::strand
io_context, make_strand, expires_afterBoost ≥ 1.66 — below it, classic io_service

Distro floors that bite: Debian bookworm ships Boost 1.74 (no awaitable_operators.hpp — #include fails outright), Ubuntu 20.04 ships 1.71 (no any_io_executor), Debian 9 ships 1.62.

Language, not library: the chrono literals 250ms / 30s are C++14. For a true C++11 build write std::chrono::milliseconds(250).

Step 3: the rules that are actually easy to get wrong

A strand does not serialize writes. A strand serializes handler execution, not whole composed operations. Two async_writes in flight on the same strand still interleave bytes on the wire. Full-duplex (a read loop plus concurrent pushes/replies) needs a per-connection strand and an outbound queue with an in-flight flag, so at most one async_write exists at a time. This is the single most common wrong answer about Asio.

Buffers do not own memory. asio::buffer() is a view. Storage must outlive the operation: coroutine locals are fine across co_await in the same frame; in callback style the same data must become a member, not a local.

Connections must outlive their handlers. enable_shared_from_this, and capture self in every co_spawn / handler — read loop, write loop, and each timer.

Frame with composed reads. async_read (fills the buffer exactly) for a length prefix and then the body; never async_read_some, which returns short.

Wrap as_tuple. Always as_tuple(use_awaitable). Bare as_tuple resolves against the operation's default token and compiles in some contexts, fails in others.

async_accept(make_strand(...)) changes two things: it forces an explicit completion token back on the call, and the accepted socket is basic_stream_socket<tcp, strand<...>>, not tcp::socket. Take it by value or with auto — binding it to tcp::socket& will not compile.

Re-arming a timer resolves the pending wait with operation_aborted. In an idle-timeout loop that is the signal to keep waiting, not an error.

GCC needs -fcoroutines for the C++20 style, and header-only Boost needs BOOST_ERROR_CODE_HEADER_ONLY defined in exactly one place (CMake).

Common mistakes

MistakeFix
Buffer dangling (local goes out of scope during async op)Ensure buffer lifetime ≥ operation lifetime; coroutine locals or members, not callback locals
Forgetting io.run()No handlers dispatch without run() / run_one()
Concurrent socket access without strandWrap in strand<> or serialize via one coroutine chain
Assuming a strand prevents interleaved writesAdd a write queue — see Step 3
Using use_awaitable where deferred sufficesOmit the token (default is deferred) unless using || / &&
Ignoring short reads/writesUse composed async_read / async_write / async_read_until, not async_read_some
Not setting reuse_address on the acceptorSet before bind/listen or restarts hit "address in use"
SSL operations without a strandAll ssl::stream ops need strand synchronization
Blocking inside a handlerNever block in a completion handler
Accepting a socket with the wrong executor typeSee async_accept(make_strand(...)) in Step 3
Requiring the Boost::system componentHeader-only since 1.74: Boost::headers + BOOST_ERROR_CODE_HEADER_ONLY. Only classic (pre-1.66) needs the link
Missing -fcoroutines on GCCBuild fails — add $<$<CXX_COMPILER_ID:GNU>:-fcoroutines>
Writing coroutine code for a Boost that predates itDo Step 1 first
Show full SKILL.md (453 more words)Show less

Boost.Asio vs standalone Asio

Same author, same API — namespace and includes differ.

AspectBoost.AsioStandalone Asio
Namespace / includeboost::asio / <boost/asio.hpp>asio / <asio.hpp>
Error codeboost::system::error_codeasio::error_code (or std::error_code)
Install (brew)brew install boostbrew install asio
CMakeBoost::headersmanual include path
Version (2025)1.87–1.90 (with Boost)1.30–1.36 (independent)
Macro prefixBOOST_ASIO_ASIO_

Support both with a shim, then use net:: throughout:

cpp
#ifdef USE_STANDALONE_ASIO
  #include <asio.hpp>
  namespace net = asio;
  using error_code = asio::error_code;
#else
  #include <boost/asio.hpp>
  namespace net = boost::asio;
  using error_code = boost::system::error_code;
#endif
namespace ssl = net::ssl;
using tcp = net::ip::tcp;

Before you call it done

Check the code you just wrote against this list:

  • Style matches the target Boost version and C++ standard (Step 1), and every API used clears its floor (Step 2).
  • Every buffer passed to an async op outlives that op — no callback locals, no dangling string_view.
  • At most one async_write per socket in flight, enforced by a queue + flag, if anything writes concurrently with reading.
  • Every async chain on a shared object runs on the same strand; self captured in every handler and co_spawn.
  • Framing / delimited reads use composed async_read / async_read_until.
  • Errors are handled, not swallowed: as_tuple(use_awaitable) destructured, or the callback's ec checked, on every op.
  • operation_aborted distinguished from real errors wherever a timer is re-armed or an op is cancelled.
  • Acceptor sets reuse_address; shutdown path closes the acceptor and drains sessions.
  • CMake has the standard, -fcoroutines for GCC (C++20 only), BOOST_ERROR_CODE_HEADER_ONLY in one place, and Boost::coroutine only if using stackful spawn.
  • It compiles. Build it — most of the mistakes above are compile-time, and the version floors are only real once tested.

Worked examples

Three CI-verified implementations of the same full-duplex framed-protocol server, one per style — copy from the one matching Step 1. Paths are relative to this skill directory; if only the skill was installed, they are at https://github.com/alexprivalov/boost-asio-skill/tree/main/examples.

  • ../../examples/market-data-feed/ — C++20 coroutines (Boost 1.77+; verified 1.83–1.90)
  • ../../examples/market-data-feed-precpp20/ — callbacks, C++11-clean (verified Boost 1.74+, incl. Windows/MSVC)
  • ../../examples/market-data-feed-classic/ — classic io_service (verified back to Boost 1.62 / Debian 9)

Official documentation

Limitations

  • This skill does not replace compiling and testing against the target toolchain. The version floors it documents are only real once built — build the code.
  • It does not cover Boost.Beast (HTTP/WebSocket), io_uring backends, or UDP multicast specifics.
  • Stop and ask when the Boost version and C++ standard cannot be determined; the style choice depends on them.

Security & Safety Notes

  • Read-only guidance: this skill contains no shell commands, network fetches, credentials, or mutation instructions. The commands it names (dpkg -l libboost-dev, brew info boost) are local version queries.
  • Networking code it produces accepts untrusted input. Validate length prefixes before allocating (std::string body(n, 0) with an attacker-controlled n is a memory-exhaustion vector — cap it), and verify peer certificates when using TLS rather than disabling verification to make a handshake pass.
  • @cpp-pro — general modern C++ idioms; this skill assumes them and adds the Asio-specific rules.

© sickn33, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in skills/boost-asio-pro of sickn33/agentic-awesome-skills.

  • SKILL.md
  • references/build.md
  • references/classic-boost.md
  • references/coroutines.md
  • references/pre-cpp20.md
  • references/ssl.md

Open the folder on GitHubat commit ec02547

Used in 1 other repository

We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Boost Asio Pro next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Boost Asio Pro compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Boost Asio Pro this skillsickn33/agentic-awesome-skills47k1 repos~3kAutomated safety check: PassMIT
YugabyteDB ASH Instrumentationyugabyte/yugabyte-db11k—~4.5kAutomated safety check: PassCustom licence
Boost Asio Proalirezarezvani/claude-skills28k—~2.6kAutomated safety check: PassMIT
Replay Oriented InstrumentationArabelaTso/Skills-4-SE253—~2.5kAutomated safety check: PassApache-2.0
Python Script Integrationczyt1988/data-workbench102—~5.5kAutomated safety check: PassLGPL-3.0
Code Audit3stoneBrother/code-audit8931 repos~2.7kAutomated safety check: PassNone

Similar skills

  • YugabyteDB ASH Instrumentation

    yugabyte/yugabyte-db

    Procedure for adding or changing YugabyteDB Active Session History wait states in TServer and DocDB C++ code, including the macro to use for sync and async paths.

    11k GitHub stars~4.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Boost Asio Pro

    alirezarezvani/claude-skills

    A skill your agent uses when writing or reviewing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, iocontext, cospawn…

    28k GitHub stars~2.6k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Replay Oriented Instrumentation

    ArabelaTso/Skills-4-SE

    Instruments programs to record execution information for deterministic replay debugging.

    253 GitHub stars~2.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Python Script Integration

    czyt1988/data-workbench

    A skill your agent uses when integrating Python scripts with C++ in a DAWorkbench plugin — calling Python from C++, Python multithreading without UI conflicts, Python-to-C++ data exchange, Python UI…

    102 GitHub stars~5.5k tokensUpdated 26 days ago
    Data & AnalyticsAuto-check passed
  • Code Audit

    3stoneBrother/code-audit

    Professional code security audit skill covering 55+ vulnerability types.

    893 GitHub starsUsed in 1 repo~2.7k tokens
    SecurityAuto-check passed
  • Unreal Engine Async and Threading

    quodsoler/unreal-engine-skills

    Picks and applies the right Unreal Engine C++ concurrency API, from UE::Tasks and FPipe to ParallelFor, FRunnable, locks and timers, with game-thread safety rules.

    359 GitHub stars~8k tokensUpdated 10 days ago
    Game DevelopmentAuto-check passed

More from sickn33/agentic-awesome-skills

All 1,354 skills in this repo
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • User Thoughts Memory

    sickn33/agentic-awesome-skills

    Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Using LWC Memory and Graphs

    sickn33/agentic-awesome-skills

    Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.

    47k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Find Complementary Founders

    sickn33/agentic-awesome-skills

    Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.

    47k GitHub starsUsed in 1 repo~4.8k tokens
    Auto-check passed
  • Cline Pilot

    sickn33/agentic-awesome-skills

    Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.

    47k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed
  • Content Creator

    sickn33/agentic-awesome-skills

    Drafts and reviews audience-specific content from supplied brand examples, with local scripts for brand voice and SEO diagnostics, channel templates and a content calendar.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed

Works with

Categories

Questions about Boost Asio Pro

What does Boost Asio Pro do?

A skill your agent uses when writing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops. Boost Asio Pro is an agent skill from sickn33/agentic-awesome-skills.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops.

When should I use Boost Asio Pro?

Boost Asio Pro fits situations like: writing asynchronous C++ networking code with Boost.Asio; standalone Asio — TCP/UDP servers and clients; composed async ops.

How do I install Boost Asio Pro in Claude Code?

Run `npx skills add sickn33/agentic-awesome-skills --skill boost-asio-pro -a claude-code`. Or copy the skill folder (skills/boost-asio-pro in sickn33/agentic-awesome-skills) into .claude/skills/boost-asio-pro in your project. Claude Code loads it when a task matches its description.

How do I install Boost Asio Pro in Codex?

Run `npx skills add sickn33/agentic-awesome-skills --skill boost-asio-pro -a codex`. Or copy the skill folder (skills/boost-asio-pro in sickn33/agentic-awesome-skills) into .agents/skills/boost-asio-pro in your project. Codex loads it when a task matches its description.

Can I use Boost Asio Pro in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sickn33/agentic-awesome-skills --skill boost-asio-pro -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/boost-asio-pro, .gemini/skills/boost-asio-pro, .github/skills/boost-asio-pro and .opencode/skills/boost-asio-pro in your project.

What does Boost Asio Pro need to run?

Going by SKILL.md and its folder, Boost Asio Pro needs the command-line tools its instructions call (brew).

Does Boost Asio Pro access the network?

SKILL.md names 3 domains. As links in the text: boost.org, think-async.com and github.com. This is read from the text; nothing was executed.

Is Boost Asio Pro safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Boost Asio Pro use?

Boost Asio Pro is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Boost Asio Pro use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.9k tokens, read only when the agent opens those files.

What are the alternatives to Boost Asio Pro?

Skills that share tags, products or a category with Boost Asio Pro: YugabyteDB ASH Instrumentation (yugabyte/yugabyte-db, 11k stars), Boost Asio Pro (alirezarezvani/claude-skills, 28k stars), Replay Oriented Instrumentation (ArabelaTso/Skills-4-SE, 253 stars) and Python Script Integration (czyt1988/data-workbench, 102 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Boost Asio Pro?

sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,343 GitHub stars. The repository holds 1,354 skills in this directory. The repository was last updated on October 7, 2026.

Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.