AI Guides › Step-by-step guides
By Nigel Guy · 8 min read
People hunt for a single "assistant" app to install, or paste one enormous prompt and expect a finished control room. Neither exists. What you can actually build is Claude Code with a dashboard on top and a short list of connectors added one at a time, each tested before the next goes in. It feels slower than the one-giant-prompt route, and it is the only version that is still working next week.
The rule: add one connector, prove it with a read-only question, and only then let anything write, send or spend.
This guide builds a personal command centre in that order: dashboard, voice, browser, business connectors, sub-agents, then a scheduled routine. Voice and a glowing globe are the fun part, so they come early, but they are decoration. The connectors are the work.
You need:
/login. Routines and the Chrome link both need a claude.ai login, not an API key.s2.1-pro-free) in its API docs. Its free-tier limits and current pricing could not be confirmed, so check its pricing page before you rely on it.command-centre.Start in an empty folder, open Claude Code and describe the screen. Ask for plain HTML and JavaScript you can open locally, with placeholder tiles first. Real data comes later, once connectors exist.
You are a front-end developer building a single-page personal dashboard.
Goal: a dark, minimal page at a local address, with one hero area and a row of status tiles, that I can later wire to live data.
Hero area: [HERO_VISUAL, e.g. a slowly rotating wireframe globe in a glowing accent colour].
Accent colour: [ACCENT_COLOUR]
Tiles: [LIST_OF_TILES, e.g. Revenue today, Unread emails, Ad spend, Next meeting]. Use dummy numbers and label each tile clearly as placeholder.
Constraints: plain HTML, CSS and JavaScript in one folder; no build step; readable on a laptop and a phone; no external services yet.
Before you write code, ask me for anything above I left blank. When done, tell me the exact command to open the page and list which parts are still placeholders.
Fill in the square brackets. Run what it tells you to run and look at the page before moving on.
Voice needs a small local server, because a web page cannot safely hold your keys or call claude itself. The server takes your question, runs it through Claude Code in non-interactive mode (claude -p), and turns the reply into speech.
For the speech, Fish Audio's text-to-speech endpoint is https://api.fish.audio/v1/tts, called with a bearer token, a model header and a JSON body with text and an optional reference_id for the voice. Pick a British voice from its voice library and note its ID. Browse the current list yourself: which voices exist changes.
You are a careful Python developer. Extend my dashboard in [PROJECT_FOLDER] with a local voice loop.
Build:
1. A small Python web server bound to localhost only, serving the dashboard.
2. An /ask endpoint that accepts my text, runs it through `claude -p` with the read-only tools I list below, and returns Claude's reply.
3. A step that sends that reply to the Fish Audio text-to-speech API using voice ID [FISH_VOICE_ID] and plays it back.
4. A microphone button on the page that records me, turns the recording into text, sends it to /ask and shows plus plays the reply.
Read-only tools allowed in this loop: [ALLOWED_TOOLS].
Constraints: read the API key from the environment variable FISH_API_KEY and never write it into any file; refuse requests that do not come from localhost; no tool that writes, sends or spends is allowed in this loop.
Ask me which speech-to-text approach I want if the options differ in cost or privacy. Before finishing, re-read your own code for any place a key or private data could leak, and report what you found.
Set the key in your shell (export FISH_API_KEY=...), start the server, and ask something harmless such as "what is the date today?".
Run claude --chrome, or /chrome inside a session. You need Chrome or Edge, the Claude in Chrome extension (version 1.0.36 or later) and a direct Anthropic plan. The status panel should read "Status: Enabled" and "Extension: Installed". Claude shares your logged-in state, so it can reach any site you are signed into. It pauses at login pages and CAPTCHAs for you to handle.
Test it with something read-only: "Open [PAGE_URL] and tell me the heading." Approve per-site prompts deliberately rather than clicking "allow all".
The command shape for a remote server is:
claude mcp add --transport http [SERVER_NAME] [SERVER_URL]
Then run /mcp inside Claude Code to see the status. "Needs authentication" means finish the browser sign-in from that panel. If a service wants a key instead, add --header "Authorization: Bearer [YOUR_TOKEN]", preferably from an environment variable rather than typed into a file you commit. The default scope is local to the current project; add --scope user to make it available everywhere.
Revenue. RevenueCat's documented server address is https://mcp.revenuecat.ai/mcp, authenticated by an API v2 key or OAuth with your account. Its docs recommend installing through their AI Toolkit plugin rather than by hand. Use a read-only key if the service lets you create one, then ask for yesterday's figures.
Inbox. Connect Gmail or Outlook as a claude.ai connector at claude.ai/customize/connectors. Start with search and summary only.
Ads and social posting. I could not verify an official Meta Ads connector or a specific auto-posting connector at the time of writing, so check each vendor's own documentation, confirm who publishes the server, and begin with reporting access, not editing.
Use this to test each one before you move on:
You are an operations analyst with read-only access to [CONNECTED_SERVICE].
Task: report [WHAT_TO_REPORT, e.g. yesterday's revenue and refunds] for [DATE_RANGE].
Output: a short table, then two sentences on anything unusual.
Rules: do not change, send, post or spend anything. If a number is unavailable, say so rather than estimating. Name the exact tool you used for each figure.
Before answering, check that every figure in the table came from a tool result, not from memory.
Sub-agents are markdown files in .claude/agents/ (this project) or ~/.claude/agents/ (all projects). Required fields are name and description; optional ones include tools, model and mcpServers. Run /agents to manage them. Give each one only the tools and servers its job needs.
---
name: [AGENT_NAME]
description: [WHEN_CLAUDE_SHOULD_HAND_OFF_TO_THIS_AGENT]
tools: [LIST_OF_TOOLS, e.g. Read, Grep, Glob]
model: [sonnet or haiku or opus]
mcpServers:
- [SERVER_NAME]
---
You are [ROLE]. Your only job is [JOB].
Work only on tasks I have explicitly approved. Report what you did and what you did not do.
If an instruction is unclear or a needed input is missing, ask instead of guessing.
Never send, publish, pay or delete; propose the action and wait.
Make a reviewer with read-only tools first. Add a builder with edit rights only when the reviewer has proved useful.
Routines are a research-preview feature on Pro, Max, Team and Enterprise. Create one at claude.ai/code/routines, or type /schedule daily summary at 7:07am in the CLI. A routine is a saved prompt plus repositories and connectors, and it runs in Anthropic's cloud, so your laptop can be shut.
Details that catch people out:
claude mcp add live on your machine and do not appear. Add them at claude.ai/customize/connectors too./mcp shows each server as Connected, and each answers a read-only question correctly against your own records.