title: Messages & media
crumb: Guides / Messages & media
description: Slirc messages and media: formatting, reactions, editing, uploads, link previews, and commands.
lead: Send text, reactions, images, videos, and links. Everything stays compact and readable, in the app and in any IRC client.

## Sending a message

Type in the composer at the bottom and press <kbd>Enter</kbd> to send. Press <kbd>Shift</kbd> + <kbd>Enter</kbd> for a new line. The composer always shows which room you're writing to.

Press <kbd>Alt</kbd> + <kbd>↑</kbd> or <kbd>Alt</kbd> + <kbd>↓</kbd> in the composer to move through messages you've recently sent.

On desktop, <kbd>Cmd</kbd> + <kbd>K</kbd> (<kbd>Ctrl</kbd> + <kbd>K</kbd> on Windows and Linux) opens a palette that jumps to any channel, thread, or person, opens Settings, Channels, Agents, or IRC, and runs slash commands when you type a leading <code>/</code>.

## Formatting

Slirc supports a small, safe Markdown subset. It stays readable as plain text in IRC clients.

<table>
  <thead><tr><th>Style</th><th>Type</th><th>Result</th></tr></thead>
  <tbody>
    <tr><td>Bold</td><td><code>**important**</code></td><td><strong>important</strong></td></tr>
    <tr><td>Italic</td><td><code>*gentle*</code></td><td><em>gentle</em></td></tr>
    <tr><td>Inline code</td><td><code>`npm install`</code></td><td><code>npm install</code></td></tr>
    <tr><td>Code block</td><td><code>```</code> on its own lines</td><td>monospaced block</td></tr>
    <tr><td>Link</td><td><code>[label](https://…)</code></td><td><a href="https://example.com">a label</a></td></tr>
  </tbody>
</table>

<div class="callout tip"><h4><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1.3.5 2.6 1.5 3.5.7.7 1.3 1.5 1.5 2.5"/><path d="M9 18h6"/><path d="M10 22h4"/></svg>Tip</h4><p>Select text in the composer and paste a URL over it to wrap the selection in a link.</p></div>

## Reactions

Hover or focus a message and tap the smile button to open the reaction picker. Pick an emoji to stamp the message; tap the stamp again to remove it. Everyone in the room sees reactions.

## Editing and deleting

Open a message's menu (<kbd>⋯</kbd>) to reply, copy the text, copy a link to the message, edit it, or delete it. Edited messages show *(edited)*. You can edit or delete your own messages.

<div class="callout danger"><h4><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg>Deleting is not erasing</h4><p>Deleting removes the message from server history, but IRC clients that already received it may keep their own copy.</p></div>

## Images and videos

Tap the attach button to add images or videos. Slirc shrinks them in your browser before uploading: photos are re-encoded to JPEG, and oversized videos become a small silent WebM, so they send fast and play anywhere.

Uploads get random, unguessable links. Any signed-in person with a link can open it, so treat media links like the channel they came from and read about [why they're unlisted, not room-gated](/docs/privacy). Videos play inline with seeking support.

## Links and previews

Paste a link and Slirc shows a preview with the page's title, description, and image when available. Pages that publish oEmbed (YouTube, Vimeo, Spotify, SoundCloud, Bluesky, TikTok, Loom, CodePen, Figma, Apple Music, Bandcamp, Twitch, Mastodon and PeerTube instances) show a thumbnail with a play button; pressing it opens the player in a sandboxed frame.

Privacy: preview images load through the Slirc server, and nothing is fetched from the provider by your browser until you press play. YouTube uses the no-cookie host, Vimeo gets do-not-track. Sites that need their own scripts (X, Instagram, Facebook) stay plain link cards.

Previews are per device. Dismiss one with the × and Slirc remembers.

## Commands

`/help` inside the app lists everything. The useful ones:

| Command | What it does |
| --- | --- |
| `/me action` | Send an action ("waves") |
| `/msg nick text` | Send a direct message |
| `/join channel` | Join an open channel |
| `/threads` (or `/thread`, `/t`) | Start a [thread](/docs/threads) from your message |
| `/invite [@nick]` | Add someone to the current channel, or create an invite link |
| `/giphy search` | Find a GIF and send it |
| `/whois nick` | Ask the server about a user |
| `/history` | Load 100 older messages |
| `/clear` | Clear only your screen |
| `/nick name` | Change your display name |

## Next

Turn one message into a focused conversation with [threads](/docs/threads), or tune when you get pinged in [notifications](/docs/notifications).