display.dev for LangChain
LangChain runs the agent. display.dev is where its output lands – at a permanent URL, behind your company login when you want it. LangChain and LangGraph orchestrate agents across whatever model you point them at. What they don't ship is a hosted place to put the HTML and Markdown those agents produce, where the right people can open it without an account. display.dev is that place: one tool call, permanent URL, gated by company SSO.
LangChain orchestrates the run. It doesn't host the output.
You build with LangChain so the agent isn't tied to one vendor – you can swap the model, change the graph, and reuse chains across teams. The run finishes and the agent has produced something worth reading: a research brief, a dashboard, a generated report.
Then it's a string in a callback, a file on a worker, or text in a LangSmith trace. There's no built-in "publish this so my team can open it." The colleague who needs it has no account with whatever model ran underneath, because LangGraph is model-agnostic on purpose.
The usual workarounds each drop something:
- Email/Slack: no stable URL, no interactivity, re-sent every time
- GitHub Pages: needs a git push, excludes anyone without a GitHub account
- Confluence/Notion: can't render the HTML agents produce
- Vercel/Netlify: needs a deploy project, paid add-on for SSO
display.dev is the publish step – a tool your graph calls, not a workflow a human runs after.
From a LangGraph run to a company URL
As a tool inside your graph (REST):
import requests
def publish_output(html: str, name: str) -> str:
r = requests.post(
"https://api.display.dev/v1/publish",
headers={"Authorization": f"Bearer {DISPLAY_TOKEN}"},
json={"content": html, "name": name, "org": "yourco"},
)
return r.json()["url"] # https://acme.dsp.so/0kzNYG7O-...Via MCP (MCP-compatible agents):
{
"name": "publish",
"arguments": { "content": "<html>...", "name": "research-brief", "visibility": "company" }
}Via CLI at the end of a run:
python run_graph.py --out ./output.html
dsp publish ./output.html --name "run-$(date +%Y-%m-%d)"The returned URL is permanent and authenticated. Anyone with a company email opens it; everyone else is blocked.
Viewers sign in with their work email. Nothing else.
A model-agnostic framework has no single vendor behind it, so there's no shared place for output and no account your viewers already hold. The PM who needs to read the agent's report isn't going to have a login for whatever model ran underneath.
display.dev is vendor-independent. Viewers sign in with the Google or Microsoft email they already use for work. No display.dev account, no LangChain login, nothing to install. They click and read.
The best agent changes. The home doesn't.
You chose LangChain so you could keep changing what's underneath – models, graphs, even moving to a different framework later. display.dev sits one layer above all of it. Rebuild the agent however you like; everything you published keeps its URL, versions, and comment threads.
What LangChain agents publish
- Scheduled report graphs
- A LangGraph flow that runs nightly, fetches the current version, and republishes to a stable URL with
short_idandbase_version. Stakeholders bookmark the link once. - Research agents
- Deep-research and synthesis outputs published straight to a team-accessible URL, no human copy-paste.
- Tool-building agents
- Agents that scaffold an internal tool or dashboard, then publish the output so non-engineers get a usable link.
- Human-in-the-loop reviews
- Published artifacts collect inline comments; the graph reads them via MCP, republishes the updated version, and resolves the thread.
Pricing
Try it. No credit card.
- Included: 10 gated artifacts
- Included: Unlimited public artifacts*
- Included: 50MB storage
- Not included: Version history
- Not included: Google + Microsoft SSO
- Not included: Private artifacts
- Not included: Audit logs
display.dev branded
Individuals. Unlimited gated sharing.
- Included: Unlimited gated artifacts
- Included: Unlimited public artifacts
- Included: 1GB storage
- Included: 10 versions
- Not included: Google + Microsoft SSO
- Not included: Private artifacts
- Not included: Audit logs
For teams that need company auth.
- Included: Unlimited gated artifacts
- Included: Unlimited public artifacts
- Included: 25GB storage
- Included: 50 versions
- Included: Google + Microsoft SSO
- Included: Private artifacts
- Included: 90 days audit logs
For compliance-driven organizations.
From $499/mo
- Included: Unlimited gated artifacts
- Included: Unlimited public artifacts
- Included: Custom storage
- Included: Unlimited versions
- Included: Google + Microsoft SSO
- Included: Private artifacts
- Included: 365 days audit logs
No per-API-call charges. No per-publish charges. No per-viewer charges. Flat.
Features
Viewers click a link and sign in with their Google or Microsoft account, or a one-time password. No app to install. No account to create. No IT ticket.
Inline comments on every artifact. Your agent reads them via MCP, fetches the current version, republishes with short_id and base_version, and resolves the thread. The artifact stays a living document, not a one-shot screenshot.
One MCP tool call, one REST request, or dsp publish ./file.html. No git repo, no deploy pipeline, no project to configure.
Every artifact gets a URL that keeps working. Share in Slack, link in Notion, paste in email. It still works six months later.
No per-seat pricing at any tier. Share with your PM, exec, legal team, or designer for the same flat price.
LangChain, LangGraph, and anything else that can make an HTTP request or call an MCP tool.
Common questions.
Does this work with LangChain and LangGraph?
Yes. Add a publish step as a tool in your chain or graph using display.dev's REST API or MCP. display.dev only sees the HTML or Markdown you publish, not the framework.
Do viewers need a LangChain or model-vendor account?
No. Viewers sign in with their company Google or Microsoft email. No display.dev account, no LangChain login, no model-vendor account.
Can the agent publish its own output without a human?
Yes. The publish call is just another tool. The agent invokes it at the end of a run and gets back a URL to include in its response or post to Slack.
Can a scheduled graph update the same URL each run?
Yes. Publish with the artifact's short_id and current base_version. The URL stays the same; bookmarked links show the latest version.
What if we move off LangChain later?
Nothing moves. display.dev is independent of the framework, so everything you published keeps its URL, versions, and comment threads.
Publish your first artifact in 15 seconds.
Free tier. No credit card. One-time password auth on free, Google + Microsoft SSO on Teams ($49/month flat).