---
title: Link cards
type: reference
section: spaces
summary: A link pasted into a message expands into a card; GitHub, scholarly, media, and Evolve links get purpose-built cards.
applies_to:
  clients: [web]
sources:
  - evolve-front-end/components/team-chat/cards/card-registry.ts
  - evolve-front-end/components/team-chat/cards/team-chat-generic-link-card.tsx
  - evolve-front-end/components/team-chat/cards/providers/github-card.tsx
  - evolve-front-end/lib/team-chat/link-preview-providers/github/parse.ts
  - evolve-front-end/components/team-chat/composer/composer-link-preview-setting.tsx
  - evolve-front-end/app/i18n/locales/en/team-chat.json
verified:
  at: 2026-09-04
  env: code
  by: content-lane-spaces
ttl_days: 45
related: [spaces/share-a-file, spaces/channels-and-sub-channels]
aliases: [team-chat/link-previews, spaces/unfurls]
---

A link you paste into a message expands into a card below it. Most links get a card built from the page's own metadata: host, title, description, and image. Some kinds of link get a card built for them.

## GitHub

A GitHub link is recognised as one of seven kinds, and each shows different facts:

| Kind | Card | What it shows |
| --- | --- | --- |
| Repository | **GitHub repository** | Language, description, stars, forks, last update |
| Issue | **GitHub issue** | Number, **Open** or **Closed**, author, comment count |
| Pull request | **GitHub pull request** | Number, **Open**, **Closed**, **Merged**, or **Draft**, branches, commits, files changed, lines added and removed |
| Workflow run | **GitHub workflow run** | Workflow name, run number, result, branch, who started it |
| Commit | **GitHub commit** | Short hash and commit date |
| File | **GitHub file** | Language, path, branch or ref |
| Release | **GitHub release** | Tag, name, **Pre-release** or **Published**, publication date |

Public repositories work with no setup. A link to a private repository needs two things: private previews turned on for Spaces by an administrator, and a GitHub connected account of your own. Without them the card offers **Connect GitHub to preview this** with **Connect account**, or one of **GitHub App installation needed**, **Access restricted** with **Request access**, or **External previews are off for this room**. A private-repository card is resolved for you alone and is never shared with anybody else in the channel; it answers at repository level, so a link to a file or a run inside a private repository shows the repository.

## Other cards built for the source

- Research and reference: **Scholarly article**, **arXiv preprint**, **PubMed article**, **Book**, **Wikipedia article**, **Clinical trial**, research organizations, EUR-Lex acts, and security advisories.
- Media: **YouTube**, **TikTok**, Vimeo, Loom, and Spotify.
- Recognition only, with no content read from the site: X, Reddit, LinkedIn, Instagram, Microsoft 365, and Google Workspace. These cards name the kind of thing and offer **Open on {{platform}}** or **Open in {{provider}}**.
- Meeting invitations, shown as **Meeting link** with **Open meeting link** and no meeting detail.
- Evolve's own records: a decision you can acknowledge from the card, a ticket, a Drive file, and a link to another channel or thread.

## Turning previews off

- For one message: a checkbox appears under the composer when your draft holds a link. Clear **Show link previews** before sending. It returns to on for your next message.
- For every message you see: open **Spaces settings** and clear **Show previews for links shared in messages.** under **Link previews**.
- For a message already sent: its actions offer **Hide preview**, **Remove previews for everyone**, and **Restore previews**.

## When a card does not appear

- **Preview blocked** with **This link is not eligible for a preview.**
- **No preview available** with **No Open Graph or Twitter Card metadata was available.**
- **This link is private, needs sign-in, or does not exist.**
- **Preview expired** and **Card type not supported** ask you to reopen or update.
- **Not shared with this conversation** appears for an Evolve record the channel cannot read. The card offers a way to copy an access request for its owner.

## Related

- [Share a file in a channel](/help/spaces/share-a-file)
- [Channels and sub-channels](/help/spaces/channels-and-sub-channels)
