For

display.dev for CrewAI

Your crew does the work. display.dev is where its output lands – at a permanent URL, behind your company login when you want it. CrewAI coordinates role-playing agents across whatever model you choose. What it doesn't ship is a hosted place to put the HTML and Markdown a crew produces, where the right people can open it without an account. display.dev is that place: one tool call, permanent URL, gated by company SSO.

Works with your agents
terminal
$ display publish ./report.html
 
Uploading    47kb
Auth       Google Workspace ✓
 
✓ Published
 
→ https://view.display.dev/p/f474hfd/8f3kx9
 
Viewers    anyone at acme.com
Expires    never
Version    1
 
$ 

A crew can research, write, and format. Then what?

CrewAI is built around autonomous crews: one agent researches, another writes, another fact-checks, another formats and "publishes" the result. The pattern works right up to the last word – publishing usually means writing a Markdown file or dropping it in an S3 bucket nobody can read without credentials.

The colleague who needs the report has no account anywhere, because CrewAI runs across whatever model you pointed it at. So the crew's polished output ends up as an email attachment or a file in a bucket, not a stable URL the team can open.

display.dev makes "publish" a real, last step the crew can take – a URL your team can actually click.


From a crew run to a company URL

As a custom tool in your crew (REST):

from crewai.tools import tool
import requests
 
@tool("Publish report")
def publish(html: str, name: str) -> str:
    """Publish HTML to a company-gated URL and return the link."""
    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"]

Via MCP (MCP-compatible setups):

{
  "name": "publish",
  "arguments": { "content": "<html>...", "name": "crew-report", "visibility": "company" }
}

Via CLI after the crew finishes:

python run_crew.py --out ./report.html
dsp publish ./report.html --name "crew-$(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 crew runs across whichever model you configured, so there's no single vendor behind it and no account your viewers already hold. The exec who needs the crew's report isn't going to have a login for the underlying model.

display.dev is vendor-independent. Viewers sign in with the Google or Microsoft email they already use for work. No display.dev account, no CrewAI login, nothing to install. They click and read.


The best crew changes. The home doesn't.

You'll re-tune crews, swap models, and rewrite agents as the field moves. display.dev sits above all of it. Change the crew however you like; everything you published keeps its URL, versions, and comment threads.


Pricing

2 months free
Free

Try it. No credit card.

€0
  • 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

Get started
Solo

Individuals. Unlimited gated sharing.

€15/mo
  • 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
Get started
Enterprise

For compliance-driven organizations.

Contact us

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
Talk to us

No per-API-call charges. No per-publish charges. No per-viewer charges. Flat.

Features

Authentication

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.

Comments

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.

Publish in 15 seconds

One MCP tool call, one REST request, or dsp publish ./file.html. No git repo, no deploy pipeline, no project to configure.

Permanent URLs

Every artifact gets a URL that keeps working. Share in Slack, link in Notion, paste in email. It still works six months later.

Unlimited viewers

No per-seat pricing at any tier. Share with your PM, exec, legal team, or designer for the same flat price.

Any framework

CrewAI and anything else that can make an HTTP request or call an MCP tool.

Common questions.

How do I add display.dev to a crew?+

Wrap the publish call as a custom CrewAI tool with display.dev's REST API, or use MCP. The formatting/publishing agent calls it as its final step and returns the URL.

Do viewers need a CrewAI or model-vendor account?+

No. Viewers sign in with their company Google or Microsoft email. No display.dev account, no CrewAI login, no model-vendor account.

Can the crew publish without a human in the loop?+

Yes. Publishing is just a tool call. The crew runs it autonomously and the URL appears in its output.

Can a scheduled crew 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 I rebuild the crew or switch models?+

Nothing moves. display.dev is independent of the framework and model, 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 Pro (€49/month flat).