Your first 15 minutes at camp

A guided first session in Fishcamp, from sign-in to transcription, with webhooks, an API key and Claude Code connected along the way.

Updated

This walk-through takes you from an empty browser tab to a working camp: a workspace with your team, a channel, an audio room, alerts coming in, Claude Code connected and transcription turned on. Creating webhooks and API keys (steps 8 and 9) needs an admin; if you created the workspace, you're its owner, so you can do everything here.

Just looking?

The demo is a sample workspace you can click around without signing in.

Sign in

  1. Go to fishcamp.space.
  2. Choose Continue with Google, or type your work email and choose Email me a sign-in code.
  3. Type the 6-digit code from the email and choose Sign in. The code works for 10 minutes. Resend code sends a new one, and the old one stops working.

If you ask for three codes within 10 minutes, wait 10 minutes before asking again.

Create a workspace

  1. Under Start a workspace, type a name, for example Northstar Studio.
  2. Choose Create workspace.

You're the owner of the new workspace. Fishcamp creates a #general channel and opens it. If someone already invited you to their workspace, the invite is listed under Invites for you: choose Accept to join.

Invite your team

  1. In the sidebar, choose + → Invite people.
  2. Copy the invite link and send it to your team in a chat or an email. Anyone who opens it signs in and joins as a Member. The link works for 30 days; Edit invite link changes that and can limit how many people use it.
  3. To invite one person by email instead, type their address under Or invite by email and choose Send. That invite only works for that address and lasts 7 days.

To invite someone as an Admin, choose People in the sidebar and use Invite someone. Pending email invites are listed under Pending invites, where you can Revoke them, and active invite links under Invite links. More in People and roles.

Create a channel

  1. Choose + next to Channels.
  2. Type a name, for example design-crit, and a description if you like.
  3. Under Who can see it, choose Public (anyone in the workspace can find and join it) or Private (only people you add can see it).
  4. Choose Create channel.

To add people to a private channel, open it, choose the gear icon (Channel settings), pick someone under People and choose Add.

Send messages and mention people

  1. Type in the message box at the bottom of the channel. Enter sends; Shift + Enter starts a new line.

  2. To call someone out, write @ and their name:

    @Maya can you check the copy on the pricing page before 3 PM?
  3. Hover over one of your messages and choose Edit message (pencil) or Delete message (trash can).

While someone is writing, the channel shows "Maya is typing…". Channels with messages you haven't read show in bold with a dot in the sidebar.

Open a direct message

  1. Under Direct messages in the sidebar, choose a person.
  2. Or press Ctrl + K (⌘ + K on a Mac), type their name and press Enter.

A direct message is only visible to the two of you, and it has its own audio room too.

Join audio, turn on your camera, share your screen

  1. In a channel, choose Join audio at the top right. Allow the microphone when the browser asks. You join with the microphone on and the camera off.
  2. Use the controls under the room: Mute (Ctrl + D), Start video (Ctrl + E) and Share screen. On a Mac, use ⌘ instead of Ctrl.
  3. To share sound with your screen, use Chrome or Edge and turn on audio sharing in the browser's screen picker. Firefox and Safari share the picture only.
  4. Choose Leave when you're done.

The timeline shows who opened, joined and left the room and who started sharing a screen. When the last person leaves, the room closes and the timeline shows how long it lasted.

Connect alerts with an incoming webhook

  1. Create a channel for alerts, for example #alerts.

  2. Open Channel settings (gear icon) → Incoming webhooks, type a name such as Uptime Kuma and choose Create.

  3. Copy the URL right away: Fishcamp shows it only once.

  4. Send a test message from a terminal:

    curl -X POST "https://api.fishcamp.space/api/v1/webhooks/inbound/whk_YOUR_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"content": "Hello from my first webhook"}'

The message appears in #alerts under the webhook's name. Uptime Kuma, Dokploy and anything else that can send Discord webhooks can post to the same URL: see Incoming webhooks.

Create an API key

  1. Go to Settings → API keys.
  2. Name the key after who or what will use it, for example Claude Code (Maya).
  3. Choose the scopes: read to look around, plus write to post messages and create channels.
  4. Create the key and copy it. It starts with cwk_ and is shown only once.

See API keys for what each scope allows.

Connect Claude Code

  1. In a terminal, add Fishcamp as an MCP server, with your key in place of cwk_YOUR_KEY:

    claude mcp add --transport http fishcamp https://api.fishcamp.space/api/mcp --header "Authorization: Bearer cwk_YOUR_KEY"
  2. Start Claude Code and run /mcp: fishcamp should be listed as connected.

  3. Ask for something real:

    Read the last 20 messages in #design-crit and list the open questions.

Messages that Claude Code posts appear under the key's name with an AI label. More clients and every tool are in MCP server.

Turn on transcription and see what the AI does with it

  1. Open Channel settings and turn on Transcription.
  2. Choose Join audio and talk for a minute. While the room is open, everyone in it sees Transcribing.
  3. Leave the room. When it closes, the transcript goes to an AI decision that picks one action: discard it (small talk), save it to OpenSync (decisions, specs, procedures, meeting notes) or send it to the channel's AI agents (infra work, incidents, deploys).
  4. Choose View transcript on the timeline to see the decision. If the AI got it wrong, choose Change destination, then Save to OpenSync, Send to agents or Mark as discarded.

Each person's microphone is transcribed separately, so every line says who spoke. The audio itself is never stored. Saving to OpenSync needs an admin to connect a space first in Settings → Integrations, and sending to agents needs an AI agent in the channel. Details in Transcription and AI routing.

What's next

On this page