1. Home
  2. Guides
  3. Your own AI

Working with your own AI

Updated ยท Markdown

Claude, Codex, or any agent that can make web requests can work in Joocy for you:

  • make new decks, or add and rewrite slides and questions in yours;
  • restyle the whole look, or write the CSS for it;
  • write slides, phone screens or a whole deck in HTML, with three.js, GSAP and more;
  • design transitions of its own;
  • start a session and move the slides while you talk;
  • read what the room answered.

Every change it makes is saved as its own version in the deck's History, so any change to a deck can be undone in one click.

Connect it

In the app: Your AI. Make a key, then pick your agent. The page fills in your address and key for you. In short:

Claude Code

claude mcp add --scope user --transport http joocy https://YOUR-SITE/mcp --header "Authorization: Bearer YOUR-KEY"
mkdir -p ~/.claude/skills/joocy && curl -s https://YOUR-SITE/api/v1/skill -o ~/.claude/skills/joocy/SKILL.md

--scope user makes the tools work in every folder you open Claude Code in.

Claude app: Settings, Connectors, Add custom connector, address https://YOUR-SITE/mcp/t/YOUR-KEY (the key is inside the address, so keep it private).

Codex (the ChatGPT desktop app and the Codex editor extension share its setup). Codex reads the key from JOOCY_TOKEN each time it starts, so keep the export line in your shell profile too:

export JOOCY_TOKEN="YOUR-KEY"
codex mcp add joocy --url https://YOUR-SITE/mcp --bearer-token-env-var JOOCY_TOKEN
curl -s https://YOUR-SITE/api/v1/skill -o AGENTS.md   # optional: the guide in your project

Cursor, VS Code, Gemini CLI and most other agents add an MCP server by its address: https://YOUR-SITE/mcp, with the header Authorization: Bearer YOUR-KEY. Where a header cannot be added, use https://YOUR-SITE/mcp/t/YOUR-KEY (keep it private).

An agent that only makes web requests: pick Any other agent on the page. The note in step 3 then has your key written in, so it needs nothing else.

Asking it

Ask in your own words, the way you would ask an assistant. To tell it what Joocy is, paste the note from Your AI (step 3) into the same message, before your request or after it. It says what Joocy is, how to reach it and where the guide is, and leaves what to do to your own words. If the note comes alone, the agent asks you what you want.

The note does not assume you mean a deck you already have. Unless your request names one, the agent makes a new deck. A deck you name, it changes only in the ways you ask.

In the editor, Ask your AI to work on this gives the same note for that one deck, with its id and link in it.

What it reads

AddressWhat
/api/v1/guideThe full guide, written for an agent, with your address in it. ?section= reads one part.
/api/v1/catalogEvery layout, question type, field, transition and sticker, and the library kit, as JSON.
/api/v1/skillThe same guide as a Claude Code skill (also works as AGENTS.md).
/api/v1/promptThe note from Your AI, with a place for your key.

None of them need a key. They are generated from the code, so they never go out of date.

The MCP tools

get_guide, get_catalog, get_transitions, list_decks, organize_deck, get_deck, create_deck, duplicate_deck, patch_deck, replace_deck, validate_deck, add_slide, add_question, list_versions, restore_version, save_image_from_url, import_html_deck, upload_deck_file, list_deck_files, read_deck_file, start_session, control_session, get_results.

get_guide and get_catalog are long (about 50 and 70 KB). Some agents cut long results short, so each can be read a part at a time: section and part. Tools that only read are marked read-only, so agents that ask before every change can run them without asking.

create_deck takes a whole deck in one call, and returns the link that opens it. duplicate_deck copies a deck, with its files, to make something new from it without touching the original.

add_question can also split the results by an earlier answer (split_by) and ask only some people (only_for, everyone_else). get_results gives those splits group by group. Words on phones can carry a person's name ({name|friend}) or an earlier answer ({craft}).

import_html_deck, upload_deck_file, list_deck_files and read_deck_file let it bring in or write full HTML: a whole coded deck, a custom slide, or a sealed phone screen, each able to import the library kit (three.js, GSAP, more). control_session can broadcast a live cue to every phone mid talk. The Coded decks guide and the catalog's kit list have the detail.

The guide also tells it what a coded deck works with, so it does not need to read any code: the shape of each question's live answers, where the join badge and the reactions sit on the big screen, which keys a deck gets, that the mouse reaches a coded slide only when the deck turns it on (settings.mouse, or a slide's stage.mouse), the sticker pictures, and what a sealed phone screen cannot do. A phone screen can greet the person by name (Room.me.name), only ever their own, and only while the room shows it. An answer it sends with a bad word is filtered, and waits for the presenter, like any other.

Uploading a new version of a coded deck keeps each slide's phone view, notes and title. So when it changes those in the file, it also patches them into the deck.

It can design transitions of its own too: keyframes for how each slide leaves and arrives, pieces that come in one by one, magic move, how phones arrive. get_transitions gives it every built-in in full to start from and checks a design before it saves one; the deck format explains every field. For anything beyond that (a whole 3D world, a story the camera flies through), it writes a coded deck, where its own code moves everything.

The rules it follows

  1. It does what you ask, and leaves your other decks as they are.
  2. A new deck is built whole and saved in one go.
  3. A deck you name is read before it is changed, in small patches. They merge with whatever you are doing in the editor at the same moment.
  4. If a save is refused, it gets the exact path of each problem. It fixes those and tries again.
  5. Pictures are copied in with save_image_from_url, never linked from somebody else's site.
  6. It tells you what it made or changed, with the link to open it.

Keys

  • One key per agent. Name them, so you know which is which.
  • Your AI shows when each key was last used. Remove any you stop using.
  • A key works on your decks, files and live sessions, as you do. It can never make, list or remove keys, change your account or your password, delete for good (a deck, an upload, a session's answers), pair a phone as your clicker, link a computer for offline mode, or use the owner's powers. Those stay with you, signed in to the app.

All guidesJoocy home