Local Build and Run

SkillDev tools

Lets your agent build, run, and configure the rtp2httpd daemon locally, including editing its config files.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Local Build and Run skill

About this capability

Build, run, and configure rtp2httpd locally. Use this skill whenever the user wants to compile the project, start the daemon, pass command-line arguments, edit configuration, or troubleshoot build/runtime issues. Also activate when the user mentions cmake, build directory, rtp2httpd.conf, web-ui bui

What this skill tells your AI

The instructions your AI receives, as published by stackia/rtp2httpd in .agents/skills/build-run/SKILL.md and read by ahel’s review.

Run commands from the repository root. Use the toolchain conventions in AGENTS.md.

Cursor Cloud's startup setup installs locked pnpm dependencies and runs uv sync --group dev. Reuse that environment; repeat setup only when dependencies are missing or changed.

Build the needed components

For embedded UI changes, rebuild the frontend before the C binary. C-only changes can use the committed header without Node.js. Follow package.json for build scripts and CMakeLists.txt for current options.

# When Web UI sources or build inputs changed:
pnpm run web-ui:build

cmake -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_AGGRESSIVE_OPT=ON
cmake --build build -j$(getconf _NPROCESSORS_ONLN)

Release is the default for normal builds. Use Debug/RelWithDebInfo or pnpm run web-ui:build:debug when diagnosis needs symbols or source maps. ENABLE_AGGRESSIVE_OPT enables LTO and fast-math and defaults to OFF in CMake; disable it when investigating optimization-sensitive behavior.

The binary is build/rtp2httpd. The generated header follows the commit boundary in AGENTS.md.

Run and configure

Use an unused port, bind a local preview to loopback, and avoid loading a deployed configuration accidentally:

./build/rtp2httpd -C -v -v -v -v -l 127.0.0.1:8080

-C skips the default config; -c <file> selects a config; -l [addr:]port sets the listener. For a config-based reproduction, inspect that file's listeners and upstreams first. Use ./build/rtp2httpd --help for current flags.

  • For INI settings and [global], [bind], [services] examples, read rtp2httpd.conf and the relevant section of Configuration Reference. CLI settings take precedence.
  • For stream paths and query parameters, read URL Formats. The /rtp/, /rtsp/, and /http/ prefixes choose different protocol handlers.
  • For player scenarios using mock upstreams, use devlab.
  • For automated daemon behavior checks, use e2e.

Verify the requested behavior

curl --fail http://127.0.0.1:8080/status checks basic readiness. Playback, seek, or rendering work also needs the affected stream/player scenario; a status response alone does not verify it. Reuse the chosen listener port in checks, and stop the task's daemon when finished. If a port is occupied, choose another port rather than terminating an unrelated process.

Signals

GitHub stars
2k
Forks
312
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
build-run
Source
github.com/stackia/rtp2httpd