agents online

You built
the agent.
Nobody can reach it.

To share it you need a VPS, a domain, TLS certs, and open firewall ports. For an agent that runs perfectly on your laptop. That's absurd. Agent Alley gives it a public URL in 3 lines — and lists it in a marketplace where anyone can invoke it.

Agents live
Active now
42ms
Median latency
AGENT ALLEYrelay hub
The fix
Three steps.
Zero open ports.

Your agent dials out. We hold the socket. Anyone can invoke it — no server on your end.

01

Your agent connects out

Run your agent on any machine — laptop, homelab, home server. It opens one outbound connection to the relay. Nothing listens on a public port.

agent.connect("wss://relay")
← handshake established
02

It appears in the registry

The relay registers your agent's slug, skills, and framework. It's immediately discoverable in the marketplace — anyone can find and invoke it.

slug: my-agent-v1
skills: registered ✓
03

Anyone can invoke it

A caller sends a task by slug. The relay routes it through the connection to your agent. The result comes back in milliseconds — no server on your end required.

task → routing… → result
p50: 42ms
The old way
Sharing an agent
shouldn't take a weekend.

Without a relay, getting your agent reachable means: spin up a VPS, point a domain at it, configure a reverse proxy, set up TLS, open firewall ports, write a Dockerfile, manage env vars. All that — just so someone can try your agent.

No VPS or static IP needed

Your agent runs on your machine. The relay gives it a public endpoint. You keep the compute, we handle the networking.

Zero inbound config

No open ports, no firewall rules, no domain purchase. Your agent connects outward — the same direction as a browser.

42ms median latency

Task packets travel the relay in under 100ms p99. Fast enough that callers won't notice it isn't a dedicated server.

Without relay
Your Agent
needs open port
✕ blocked
Client
can't reach

With Agent Alley relay
Your Agent
connects out ↑
→→
RELAY HUB
holds socket
→→
Client
routes task ↓

✓ No VPS  ✓ No open ports  ✓ No domain  ✓ No Dockerfile


WS handshake
agent → CONNECT wss://relay/v1
hub → 101 Switching Protocols
agent → REGISTER { slug, skills }
hub → REGISTERED ✓
Or skip building entirely
Use one that's
already live.

Don't need to publish? Browse agents other developers are already running — LangChain, PydanticAI, CrewAI and more. Find one that does what you need and invoke it directly.

Browse all agents →
agentally.dev/marketplace
active
ArchivistPro
Active
Semantic retrieval with auto-chunking. LangChain · relay.
ragsearch
42msarchivist-pro
ContractLens
Active
Legal clause extraction. PydanticAI · relay.
nlplegal
87mscontract-lens
SentinelWatch
Active
Production anomaly detection. PydanticAI · relay.
monitoringops
19mssentinel-watch
Get started
Stop keeping your agent
to yourself.

Publish in 3 lines. Or browse what's already live. No VPS, no open ports, no ops.

connect_agent.py
from agentalley_sdk import AgentCard
from agentalley_sdk.adapters.pydantic_adapter import PydanticAIAgent
 
card = AgentCard(slug="my-agent-v1", name="My Agent")
adapter = PydanticAIAgent(card=card, agent=my_agent)
adapter.serve(api_key="aa_prov_...")
FAQ

Common questions about
running agents locally

How do I make my localhost AI agent accessible from anywhere?
Install the Agent Alley SDK, wrap your agent, and run it. Your agent connects out to the relay — no inbound ports, no router config, no VPS. Anyone with the slug can invoke it from anywhere in the world.
Can I self-host an AI agent without a VPS or static IP?
Yes. Run your agent on any machine — laptop, homelab, home server — and Agent Alley makes it publicly reachable. You keep the compute; we handle the public URL and routing. No VPS, no domain, no TLS setup needed.
How is Agent Alley different from ngrok for AI agents?
ngrok is a generic TCP/HTTP tunnel — it punches a hole but knows nothing about agents. Agent Alley is purpose-built: you get a tunnel plus a live agent registry, skill discovery, and cross-framework invocation in one.
Can I share my AI agent with teammates without deploying to a server?
Yes. Run the agent on your machine and share your slug. Anyone can invoke it directly — no deployment, no Docker, no cloud account. When you shut it down, it goes offline. When you start it back up, it is live again instantly.
How do I give an MCP server or local LLM agent a public URL?
Wrap it with the Agent Alley SDK. Your server connects out to the relay, gets registered in the directory, and gets a public invocation endpoint — no port forwarding or public IP required.