---
title: Team Chat internal-link warning (a link only you can open)
---

# Team Chat internal-link warning (a link only you can open)

## What it is

When you type or paste a link into a **Team Chat** channel or DM that only works on **your own
computer**, Omniscio shows a small amber notice under the message box: _"This link only opens on
your computer — teammates can't use it."_ It never stops you from sending — it just makes sure you
notice, and offers a one-click way to send something your teammates can actually open.

## Where to find it

It is not something you open — the notice appears on its own, directly under the message box in the Team Chat composer, as soon as your draft contains a link only you can open. Its off switch is in **Settings → Sessions → (composer settings) → "Warn about links only you can open"**.

## How it behaves

### Why it exists

Omniscio has several kinds of links that are personal to your machine. If you paste one into team
chat, the person on the other end gets a dead link. This catches that at the moment you're
composing, before it goes out.

Three kinds of links are treated as "only you can open":

- **App links** — `omniscio://…` deep links (to a session, note, mind map, project, or a settings
  page). They point at ids that exist only in _your_ copy of Omniscio.
- **Local addresses** — `http://127.0.0.1:…` or `http://localhost:…` and other private network
  addresses. These reach only your own machine/network.
- **File paths on your computer** — e.g. `C:\Users\you\report.html` or a `file://` link. Another
  person doesn't have that file.

A normal public web link — including a real Shares link like `https://shares.omniscio.com/s/…` —
and ordinary text never trigger the notice.

### What the notice offers

The fix depends on the link:

- **A file on your computer** → **Publish & replace.** Omniscio publishes the file to your Shares
  (the same "publish to Shares" it uses elsewhere) and swaps the file path in your message for the
  public link teammates can open. Desktop only — there's no local file to publish from the phone.
- **An `omniscio://share/…` link** → **Use shareable link.** It swaps the app-only form for the
  equivalent public web address of that same share.
- **Anything else** (a session link, a localhost address) → the notice just warns; there's nothing
  to publish, so you decide whether to send it anyway.

You are never blocked. You can ignore the notice and send the internal link as-is, or take the fix.
The notice disappears on its own once the link is no longer in your draft.

### Turning it off

It's on by default. **Settings → Sessions → (composer settings) → "Warn about links only you can
open"** turns it off; when off, the notice never appears.

## For agents

### Under the hood (for agents)

- Detection is a pure, renderer-safe classifier: `findInternalLinks(text)` in
  `src/shared/team-chat/classify-internal-link.ts` (no node deps — it can't reuse the main-process
  `isInternalNetworkUrl`, which imports node `net`). Only internal _patterns_ match, so a public URL
  is never flagged and there's no allow-list to maintain. Regexes are ReDoS-safe and the scan is
  length-capped.
- The notice is `InternalLinkWarningBar.tsx`, mounted in `TeamChatComposer.tsx`; it reuses the
  existing chat-link publish (`publishArtifactWithGesture({ origin: 'chat-link' })`). Sending is
  never intercepted — the bar is driven only by the current draft text.
- Setting: `warnInternalLinksInTeamChat` (default `true`). Contract:
  `team-chat-internal-link-guard-contract`.

## Related

The feature the notice protects is the full Team Chat surface, described on [Team Chat](team-chat.md). The publish-to-Shares machinery the notice reuses is on [Artifact sharing](artifact-sharing.md), and the app-only deep-link form the notice offers to swap out is on [Deep links](deep-links.md).
