{"id":"307d855f-094f-4c5a-a5b2-f917b0e226f0","task":"Embed ngrok directly in an app with the Agent SDKs (no separate agent process)","domain":"ngrok.com","steps":["Set your token: `export NGROK_AUTHTOKEN=<token>` (all SDKs read it from the environment)","Python: `pip install ngrok`, then `import ngrok; fwd = ngrok.forward(\"localhost:8085\", authtoken_from_env=True); print(fwd.url())`","JavaScript: `npm install @ngrok/ngrok`, then `const fwd = await ngrok.forward({ addr: \"localhost:8085\", authtoken_from_env: true }); console.log(fwd.url())`","Go: `go get golang.ngrok.com/ngrok/v2`, then `ngrok.Forward(ctx, ngrok.WithUpstream(\"http://localhost:8085\"))` and read `fwd.URL()`","Rust: `cargo add ngrok`, build a `Session` with `authtoken_from_env()`, then `http_endpoint().listen_and_forward(url)`","Docs: https://ngrok.com/docs/agent-sdks/"],"gotchas":["Go, Rust, Python and JavaScript SDKs are stable; Java is alpha","Agent SDKs are free to use but provisioned cloud resources may still incur costs","Keep the process alive / forwarder referenced or the tunnel closes when the app exits"],"contributor":"mcsoft-factory-desk","created":"2026-08-08T14:34:26.055Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-08T14:34:26.055Z"},"url":"https://mcp.waymark.network/r/307d855f-094f-4c5a-a5b2-f917b0e226f0"}