Building with Toqan

A hands-on workshop for AI Accelerators.

🚀 accelerator.jetskibay.com

Today’s workshop

Short demos, then time to build.

01

Context files

Write your persona and working rules.

20 min
02

Weekly planning

Plan focus time with Calendar and Jira.

20 min
03

Reusable skills

Turn a finished task into a skill others can use.

40 min
04

VM and external tools

Try file sync, subagents, and API connections.

25 min
05

Build and demo

Connect your own service to Toqan.

45 min

Toqan: a distribution platform

Bring your work to colleagues across Prosus. Skills are one example.

The Toqan Marketplace on the Skills tab, showing skills published across Prosus with install buttons, version numbers and Prosus Group attribution

Toqan › Marketplace › Skills · published across Prosus Group and business units

01
Part one

Set up your
context files

20 minutes

What your agent needs to know

Your role, priorities, working rules, and past decisions.

everything public papers, code, docs, every framework ever shipped your world this week, this team, this quarter's decisions no bridge persona.md design.md decisions.md

Ask AI to write your persona

One question at a time. Save the result as persona.md.

prompt · run this first
Interview me about my role, priorities, working style, how I write, permissions, and quality standards.

Ask one question at a time, then write persona.md in under 400 words. Tell me what is still missing.

Exercise: write and test your persona

10minutes
1 · write it
Ask me questions, one at a time.

Write persona.md in under 400 words. Flag what you still need to know.
2 · break it
Test the file as someone who has never met me.

Find unclear rules and missing context. Rewrite it with the fixes.

The context pack

Download the examples. Edit what you need.

context-pack.zip
all nine, ready to edit

Upload the whole folder into a Toqan chat once, and every session after it starts knowing where it is.

Decide how much you need to type

Start with what you already have. Fill in the gaps.

Extract Interview Type Use existingdocs and chats Let AI askquestions Add whatis missing
02
Part two

Plan your week
with AI

20 minutes

Schedule a weekly check-in

Friday, 16:00: review next week and approve a plan.

TODAY you agent it only helps on the days you remember to ask AFTER TODAY Friday 16:00 agent you "here is your week. say yes."

How focus-friday works

READS Jira what you owe, and when Calendar every hour already spent Slack + OKRs what people are waiting on your context pack the rules that win ties focus-friday 1 · doctor: are the connectors live? 2 · score: impact × urgency / effort 3 · blocked work scores zero 4 · find gaps ≥ 90 min 5 · protect Wednesday first plan_week.py does the arithmetic the proposal Wed 09:00–12:00 · TAL-14 Wed 13:00–15:30 · TAL-9 Tue 09:30–11:00 · PEO-3 did not fit: TAL-22 (blocked) worth challenging: Thu sync 6.0h of an 8h target you say yes nothing is written before this point your week held, with reasons WRITES calendar holds on your own calendar · a checklist in your Slack DM · nothing else, ever NEVER moves a meeting · declines an invite · touches anyone else's calendar · books outside your hours

Make room for focused work

Protect blocks of at least 90 minutes.

your week now after Friday 16:00 MTWTF MTWTF 14 gaps longest: 55 minutes enough time to start things never enough to finish one TAL-14 TAL-9 PEO-3 3 blocks 6 hours, unbroken

Edit the planning rules

Change your protected day and time limits in reference/rules.md.

focus-friday-skill.zip
SKILL.md, rules, scripts, doctor
reference/rules.md read on every run
## Blocks 90 minutes to 3 hours. 15-minute gaps either side. Keep lunch free. ## Timing Protected day first, then mornings. Before the deadline, not on it. No Monday before 10:30 or Friday after 16:00. ## Priorities Blocked or unclear tasks: score 0. At equal scores, finish work already started. Two blocks per task at most. ## Target 8 hours a week. Under 4 available: stop and ask.

Connect Calendar and Jira

Google Workspace is one OAuth click. Jira has no connector yet — bring it in as an MCP server. The own-calendar-only limit is a rule in the skill, not a setting. Run the doctor before planning.

first message
Run the focus-friday doctor. Show what passed, what failed, and how to fix it.
Toqan › Connections
Calendar *
Google Workspace › Connect
Grants
calendar, docs, sheets, mail — one OAuth approval
Jira *
no connector yet → Add MCP Server
Project keys
TAL, PEO
Schedule
Agents › Tasks › Manage automations › Schedule — every Friday 16:00 Europe/Amsterdam

Exercise: plan next week

Install focus-friday, check the setup, then review its proposal.

12minutes
prompt
Use my context files to plan next week.

Show proposed blocks, reasons, and work that did not fit. Wait for my approval before writing.

Save my corrections in reference/rules.md.
03
Part three

Build a
reusable skill

40 minutes

What goes in a skill folder

Skills are more than a description, a name, and an MD file.

focus-friday/ what actually ships
SKILL.md when to fire, what to do, what to never do README.md for the human deciding whether to install it ONBOARDING.md the first five minutes scripts/ plan_week.py gap-finding + scoring. arithmetic belongs in code, not in a prompt. doctor.py proves it can run before it promises anything reference/ rules.md the judgment, editable by a non-engineer examples.md real input, real output, including a failure faq.md the first 60 seconds of questions assets/ weekly-plan-template.md the output shape. ship it, do not describe it.

Scripts save tokens and make skills more reliable

Write the logic once. Run it whenever the skill needs it.

Agent calls the script Script runs the logic Result ready to use reuse on the next run Fewer tokens No repeated reasoning Repeatable results Same input, same output

Files to include with your skill

01

Templates

Output templates with placeholders.

02

Brand and media

Logos, colours, fonts, and an example export.

03

Worked examples

Real input and output, including a failure.

04

Onboarding

Setup steps and a first run with sample data.

Build a skill from a finished task

Use the conversation, including your corrections, as the starting point.

TUESDAY · BY HAND do the thing first attempt no, always start from the template second attempt drop anything blocked, it wastes a slot third attempt yes. that one. every correction here is a rule you now own "write that back as a skill" NEXT TUESDAY /focus-friday right, first time

Save this session as a skill

Run this after finishing a task in chat.

prompt · run at the end of a session
List my corrections, repeatable steps, and failed guesses.

Build SKILL.md, scripts, rules, examples, and templates from this session.

Tell me what would break for a colleague.

Help colleagues get started

01

A doctor

Check dependencies, connectors, and credentials. Show how to fix failures.

02

A quick start

A short setup guide. Start with sample data.

03

An FAQ

Add answers to questions colleagues ask.

04

Permissions and support

List permissions, limits, an owner, and a support channel.

Check the setup with a doctor

Check dependencies and connectors before the skill runs. Give a fix for each failure.

skill-product-template.zip
SKILL.md, ONBOARDING, FAQ, doctor.py, examples
$ python scripts/doctor.py before anything else runs
[ok ] python >= 3.9 [ok ] package: python-dateutil [FAIL] package: pyyaml fix: pip install pyyaml [FAIL] calendar connector fix: Toqan › Connections › Google Workspace › Connect, then approve calendar access [FAIL] jira connector fix: no Jira connector yet. Toqan › Connections › Add MCP Server › your Jira bridge [ok ] rules file [warn] slack (optional) fix: without it, the plan stays in chat [ok ] curl on PATH Blocked on 3 checks. Fix these first — a wrong answer costs more than a missing one. # exit 1, so the skill stops here instead of # confidently planning a week it cannot see.

Before you publish

A colleague ran it without help

The description uses familiar words

Errors explain what to fix

All required files and setup steps are included

Tested on two accounts

Owner and support channel listed

Exercise: turn your work into a skill

Choose a task from this week that took more than one attempt.

15minutes
1 · build
Use a task from this week.

Turn the steps and corrections into a skill folder with scripts, rules, and examples.
2 · share
Add a setup check, quick start, FAQ, permissions, owner, and support channel.

Test it as a new colleague.
04
Part four

Use the VM
and external tools

25 minutes

What runs in a Toqan session

A Linux machine with files, runtimes, processes, and network access.

your session · a disposable Linux box filesystem read, write, unzip, mount runtimes python, node, pip, npm processes servers, workers, chromium network egress curl, git, any API you can reach $ pip install pandas && python analyse.py $ curl -s https://your-service.internal/report

API credentials through a proxy

It’s like a secret manager: store the credential once, and the proxy adds it to matching requests. The agent does not need to read it.

the agent GET /v1/headcount no auth header the proxy + Authorization: Bearer + X-Prosus-Actor injected here, not upstream secret store your API authenticated never in the prompt  ·  never in a file the agent can read never in the transcript  ·  never in a log, an error or a screenshot

Exercise: API auth injection

It’s like a secret manager: save the key in the connection, and Toqan adds it when calling the API.

Try it with fake-api
  1. In Toqan › Connections, add an API connection named fake-api for https://fake-api.boxd.sh/.
  2. Configure auth injection for this host: header name X-API-Key, secret value dummy. Save the connection.
  3. Ask Toqan: “Use the fake-api connection to GET https://fake-api.boxd.sh/ and show the response.” Keep the key out of the prompt.
  4. Success: 200 OK and Hello World. A direct request with a missing or incorrect key returns 401 Unauthorized.
Compare in your terminal (demo key):
curl https://fake-api.boxd.sh/ -H 'X-API-Key: dummy'
The demo API is already deployed and configured to start automatically after reboots.

No mounting of
file storage?
Build one!

A skill tells the agent which CLI to use. The CLI fetches remote files via GET; the proxy injects the token.

remote-files/SKILL.md illustrative skill + CLI
## Read file Use the CLI to read the files in this skill ## Files folder / file1.txt file2.txt etc.
read-file-cli the skill names it GET file the proxy adds the token agent reads the new version, every time

Toqan is your playground

Context files
Skills
Scripts
Assets
MCP connectors
The VM
Apps with Databases
Header injection
Subagents
Virtual mounts
Your own MCP server
Tunnels
Scheduled triggers
The doctor pattern
Network egress
The marketplace

Use subagents to read and summarise

Each subagent reads a source and returns only what the main agent needs.

orchestrator holds the decision, stays clean ticket-reader reads 40 issues 40k tokens of noise returns 3 keys calendar-scanner reads a full week every recurring hold returns 6 windows critic no context on purpose sees only the plan returns 2 objections 3 keys + 6 windows + 2 objections
05
Part five

Build an
external connection

45 minutes

Rules for external services

Read-only first, always A write you cannot roll back is not a demo, it is an incident. Aggregates leave, individuals do not Nothing about a named colleague goes to a service you host yourself. Close what you opened Tunnels outlive your attention. Kill it when the session ends. Publish the boundaries with the trick People copy the pattern. They copy the caution only if you write it down.

Anything that is not yet there,
you can build

Run a server on your laptop and connect it through a tunnel.

Toqan connector: MCP https + X-Bridge-Token ngrok public tunnel your laptop server.py 3 tools 40 lines FastMCP the system with no connector the tunnel is public. the token header is the only door. read-only first. kill it when you are done.

Add your server to Toqan

Start the server, open the tunnel, and add the URL and token header. Ask Toqan to list the tools.

terminal
$pip install "mcp[cli]" uvicorn export BRIDGE_TOKEN=$(openssl rand -hex 16) python server.py & ngrok http 8000
toqan-bridge.zip
server.py, SETUP.md, the troubleshooting table
Toqan › Connections › Add MCP Server
Name *
toqan-bridge
URL *
https://<your-id>.ngrok-free.app/mcp
Protocol *
Streamable HTTP (Recommended)
Approval policy *
All tool calls — asks before every call
Headers *
Add header → X-Bridge-Token: <your token>
Include /mcp at the end of the URL. Save is blocked until you tick both trust confirmations.

Create a skill to use your external service

Tell Toqan when to call it, what to send, and how to use the result.

my-service/SKILL.mdyour connection, made reusable
## When to use When the user asks for a report from our service. ## Steps 1. Check that the connection is available. 2. Ask for any missing inputs. 3. Call the service through its connected tool. 4. Summarise the result and cite the source. ## If the call fails Show the error and explain what to check. ## Example “Fetch this month's report and summarise it.”

Exercise: connect a service to Toqan

Pick a task that cost you an hour this month.

Build, in 45 minutes
  1. 0–5Choose a task that cost you an hour this month.
  2. 5–20Build a service: an MCP server, scraper, or API. Test it with curl.
  3. 20–30Connect it to Toqan. Check the tool list and test with real data.
  4. 30–40Add a Toqan skill, a setup check, and a quick-start example.
  5. 40–45Let a colleague run it without help.

After the workshop

  • Save your context pack and load it into every session from now on
  • Let the planner run on a real Friday and correct it once, in writing
  • Publish one skill with a doctor with your name and a channel on it

Questions and demos

Building skills in Toqan
01 / 40
← → or space to navigate