Agent skill

Tendem Tasks

by Toloka in Toloka/tendem-mcp

A skill your agent uses when a task is non-trivial and could benefit from human involvement — delegating work to a human expert (research, review, labeling, content, design, data work) and driving…

MITAuto-check passed

Install Tendem Tasks

skills CLI
$ npx skills add Toloka/tendem-mcp --skill tendem-tasks -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Toloka/tendem-mcp tendem-tasks --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Toloka/tendem-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/codex/tendem/skills/tendem-tasks .claude/skills/tendem-tasks && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tendem-tasks
GitHub stars
102
Token cost
~2.3k tokens
SKILL.md length
1,169 words
Files
4 (incl. scripts, references)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a task is non-trivial and could benefit from human involvement — delegating work to a human expert (research, review, labeling, content, design, data work) and driving…

  • Works in 6 steps: create_task(name, description,… → (only if the task depends on local… → Scoping loop. get_task(task_id,… → …
  • A task is non-trivial and could benefit from human involvement — delegating work to a human expert (research
  • SKILL.md covers The path, tool call by tool call, Polling: trust the envelope,…, Rules of the road and Recovery & cross-session, plus 1 more section
  • Runs Shell scripts from its folder

What it does

Tendem Tasks is an agent skill from Toloka/tendem-mcp. Use when a task is non-trivial and could benefit from human involvement — delegating work to a human expert (research, review, labeling, content, design, data work) and driving it end to end. Also use whenever Tendem is mentioned or its tools are in play.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/files.md`, `scripts/tendem-download.sh` and `scripts/tendem-upload.sh`).

It works with Model Context Protocol and OpenAI. The repository describes itself as: Home for Human In The Loop Tendem plugin for your agent. The licence is MIT.

When your agent uses it

  • A task is non-trivial and could benefit from human involvement — delegating work to a human expert (research
  • Data work) and driving it end to end
  • Tendem is mentioned
  • Its tools are in play

Example prompts

  • “/tendem-tasks”

Requirements

  • A Bash shell

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. create_task(name, description, conversation_id) — description is the
  2. (only if the task depends on local files) **⚠️ You cannot upload the
  3. Scoping loop. get_task(task_id, wait_for_change_seconds=30) — silent
  4. Approval gate. The quote is ready. Call get_contract(task_id) to pull
  5. Execution loop. After approval, Tendem searches for a matching expert,
  6. get_task_result(task_id) — present the content markdown; save

What it can do on your machine

Read from SKILL.md and the folder at commit 683885a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tendem Tasks loads about 2.3k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 67 tokens; SKILL.md has 1,169 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Toloka/tendem-mcp at commit 683885a, republished under its MIT licence (© Toloka). 1,169 words, ~2,321 tokens.

Download SKILL.mdSave it as .claude/skills/tendem-tasks/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
tendem-tasks
description
Use when a task is non-trivial and could benefit from human involvement — delegating work to a human expert (research, review, labeling, content, design, data work) and driving it end to end. Also use whenever Tendem is mentioned or its tools are in play.

Working with Tendem tasks

Tendem is a task service backed by human experts. You (the agent) submit a task on the user's behalf; Tendem scopes it in a chat, returns a price quote, and once the user approves, a human expert executes it. Results come back as markdown plus downloadable files.

Offer, don't hijack. If the user explicitly asked for Tendem or a human expert, proceed. If this skill loaded because the task merely could benefit from human involvement, surface Tendem as an option — "this could go to a human expert via Tendem; want a quote?" — and only create a task after the user says yes.

The tools are named mcp__tendem__* (the exact namespace may vary with how the plugin's MCP server is mounted). If absent, the connector isn't connected — tell the user to enable the tendem plugin's MCP server and complete its OAuth login.

The path, tool call by tool call

The process is two loops with an approval gate between them:

create_task ──► SCOPING LOOP ──► quote ──► user approves ──► approve_task
 (+ uploads)    poll ⇄ answer      ▲            │
                    ▲              │       too expensive /
                    └──────────────┴─◄─ ask for a scope cut
                                        (old quote is void; wait for a new one)

approve_task ──► EXECUTION LOOP (long: expert search → work → QA)
                 poll a few ⇄ end turn ⇄ answer if asked
                      │
                      ▼ next_action=fetch_result
                 get_task_result ──► present + save files
  1. create_task(name, description, conversation_id) — description is the user's own formulation, passed as faithfully as possible (see rules below). Reuse one stable conversation_id per conversation. Returns the task_id everything else needs.
  2. (only if the task depends on local files) ⚠️ You cannot upload the files yourself — an OpenAI platform restriction, not a Tendem one. OpenAI's security policies prevent the sandboxed environment from PUTting files to external storage, so scripts/tendem-upload.sh or raw curl from your side will fail or be blocked. Tendem's upload mechanism itself works fine — it just has to run outside the sandbox. Instead: call get_file_upload_url(task_id), then give the user ready-to-run commands for their host machine's terminal — one curl per file with the URL fully substituted (dfs→blob host swap and filename already applied; see references/files.md). When handing the commands over, tell the user plainly that this manual step exists because of OpenAI's sandbox policy, not a Tendem shortcoming. Wait for the user to confirm the uploads succeeded, then send_message naming each uploaded file. The naming message is required — Tendem doesn't auto-detect uploads.
  3. Scoping loop. get_task(task_id, wait_for_change_seconds=30) — silent poll until Tendem speaks (next_action=await_input); then read_chat(task_id, from_offset=<last_seen_offset>) and send_message(task_id, text, last_seen_offset) — answer from conversation context yourself; escalate to the user only when (a) the answer isn't in context, (b) scope/deliverables/deadline change, or (c) approval or payment is needed. Repeat per question round until next_action=await_user_approval.
  4. Approval gate. The quote is ready. Call get_contract(task_id) to pull the full scope — title, task_description, acceptance/quality criteria, and price — so you can surface price + scope to the user and get an explicit decision; this is a spend. (get_task deliberately omits these details; get_contract is the read-only companion that carries them.) Two exits:
    • Go-ahead → approve_task(task_id, name, price) → step 5.
    • Too expensive / wrong scope → send_message proposing a concrete scope cut. The old quote is void from that moment; you're back in the scoping loop (step 3) until a fresh quote arrives. This cycle can repeat.
  5. Execution loop. After approval, Tendem searches for a matching expert, the expert performs the work, and QA reviews the output before release — hours, up to a day. Poll get_task(task_id, wait_for_change_seconds=30) a few times, then end the turn, telling the user the work is in progress and they can ask for a progress check anytime (or invoke $tendem-status). The plugin's notification hook pings them the moment the task needs them. If Tendem asks something mid-execution (await_input), answer as in the scoping loop. Repeat — across turns and sessions if needed — until next_action=fetch_result.
  6. get_task_result(task_id) — present the content markdown; save files[] with scripts/tendem-download.sh into ./tendem/<task_id>/.

Polling: trust the envelope, never busy-loop

Every tool returns next_action, poll_after_seconds, poll_timeout_seconds and guidance — act on those, not on the raw status. The one idiom that matters:

get_task(task_id, wait_for_change_seconds=30)

The server holds the call open until something changes or ~30s passes. Poll silently — no narration per poll — and never re-call in a tight loop with wait_for_change_seconds=0. But don't poll forever either: after a handful of unchanged rounds (and always for the long post-approval stretch), end the turn and tell the user the work is in progress — they can ask "how's the Tendem task doing?" anytime, or invoke $tendem-status. The task lives on Tendem's side; nothing is lost between sessions, and the plugin's desktop notification hook fires when the task starts needing them.

next_actionYour move
awaiting_tendem_workA few silent 30s long-polls, then end the turn
await_inputread_chat from your offset, answer via send_message (or escalate)
await_user_approvalget_contract for the full scope + price; surface it; approve_task only with user's go-ahead
await_user_topupGive the user the topup_url
resolve_raceYour message crossed new content — read it, re-send with the new last_seen_offset
fetch_resultget_task_result
doneStop

For the long-form lifecycle, invoke the server's tendem-quickstart prompt.

Show full SKILL.md (397 more words)Show less

Rules of the road

  1. Transmit the brief faithfully; let Tendem drive scoping. Pass the user's formulation into create_task nearly verbatim, plus only context the user actually stated (file names, a given deadline). Don't expand it into a synthesized "complete" brief, and don't pre-interrogate the user — Tendem asks better scoping questions than you can anticipate. Your value is answering them from context.
  2. A scope-change request voids the quote. You can ask Tendem to cut scope, but the old price is immediately stale and the new quote is not instant. Keep polling until a fresh one arrives; never show a stale price.
  3. One unit of work per task. Once approved, a task is locked to the agreed job. If the work pivots, create a new task (same conversation_id).
  4. Honor relay requests. When Tendem says "please relay this to the user", that's protocol — the user must actually see it.
  5. Don't haggle. Tendem can't promise a lower number; only a concrete scope cut triggers re-estimation.
  6. Data scraping is refused by policy — automated data extraction tasks won't be accepted, and rephrasing doesn't change that. Don't submit them.
  7. Insufficient balance is not an error to retry. approve_task with reason: "insufficient_balance" returns a task-bound topup_url — paying it auto-approves this task. Give the user that URL (or propose a scope cut). Never loop on approve_task.

Recovery & cross-session

A Tendem task outlives your session. To recover after a context reset or in a new session: list_tasks to find the task_id, read_chat(task_id, from_offset=0) for full history, then get_task and follow next_action. cancel_task only mints a UI cancel URL for the user — it does not cancel server-side.

Worked examples

Answer scoping from context. User: "Have Tendem write a competitive teardown of Acme's pricing page." You create_task with that sentence, then poll. Tendem asks "any specific competitors?" — the user mentioned Beta and Gamma earlier, so you answer via send_message yourself. It asks about a budget you don't know → escalate. Quote at $90 → show the user, they approve, you approve_task.

Waiting well. Task is awaiting_tendem_work after approval. Wrong: re-calling get_task back-to-back for an hour, or narrating every poll. Right: a handful of silent 30s long-polls; if nothing moves, end the turn and tell the user the work is in progress — the notification hook pings them when the task needs them, and they can re-ask later or invoke $tendem-status whenever they want an update.

© Toloka, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in codex/tendem/skills/tendem-tasks of Toloka/tendem-mcp.

  • SKILL.md
  • references/files.md
  • scripts/tendem-download.sh
  • scripts/tendem-upload.sh

Open the folder on GitHubat commit 683885a

Compare with similar skills

Tendem Tasks next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tendem Tasks compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tendem Tasks this skillToloka/tendem-mcp102—~2.3kAutomated safety check: PassMIT
Codebase Managementgiancarloerra/SocratiCode3.3k1 repos~1.8kAutomated safety check: PassAGPL-3.0
Codex with ChatGPT Planning LoopXiaoDuoYa/codex-with-chatgpt7.2k—~11kAutomated safety check: NotesMIT
Agent Squad Python Guide2FastLabs/agent-squad7.8k—~4.7kAutomated safety check: PassApache-2.0
Codebase Explorationgiancarloerra/SocratiCode3.3k1 repos~1.5kAutomated safety check: PassAGPL-3.0
Annotate Paper54yyyu/zotero-mcp5.3k—~1.5kAutomated safety check: PassMIT

Similar skills

  • Codebase Management

    giancarloerra/SocratiCode

    Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.

    3.3k GitHub starsUsed in 1 repo~1.8k tokens
    AI & LLM EngineeringAuto-check passed
  • Codex with ChatGPT Planning Loop

    XiaoDuoYa/codex-with-chatgpt

    Uses ChatGPT in the browser as the planning and review brain for a Codex session, with Codex keeping all execution and ChatGPT reading the workspace through a bridge.

    7.2k GitHub stars~11k tokensUpdated 9 days ago
    Agent WorkflowsAuto-check: notes
  • Agent Squad Python Guide

    2FastLabs/agent-squad

    Map of the agent-squad Python framework for async multi-agent orchestration: which agent, classifier, storage and tool provider to pick, and the pitfalls to avoid.

    7.8k GitHub stars~4.7k tokensUpdated 2 days ago
    AI & LLM EngineeringAuto-check passed
  • Codebase Exploration

    giancarloerra/SocratiCode

    Explore and understand codebases using SocratiCode semantic search, dependency graphs, and context artifacts.

    3.3k GitHub starsUsed in 1 repo~1.5k tokens
    DatabasesAuto-check passed
  • Annotate Paper

    54yyyu/zotero-mcp

    Read the open paper and write study annotations into its PDF with zotero-cli - a context box on the title, a four-part summary on the abstract, role-coded abstract highlights, one box per figure…

    5.3k GitHub stars~1.5k tokensUpdated 2 days ago
    Research & ScienceAuto-check passed
  • Agents Best Practices

    DenisSergeevitch/agents-best-practices

    A skill your agent uses when designing, generating an MVP blueprint for, auditing, troubleshooting, refactoring, or explaining an agentic harness for any domain.

    2.4k GitHub stars~7.4k tokensUpdated 5 days ago
    AI & LLM EngineeringAuto-check passed

More from Toloka/tendem-mcp

  • Tendem Task

    Toloka/tendem-mcp

    Explicitly submit a new task to Tendem (hybrid AI + human experts) and drive it through scoping.

    102 GitHub stars~475 tokensUpdated 1 mo ago
    Auto-check passed
  • Tendem Result

    Toloka/tendem-mcp

    Explicitly fetch and present a completed Tendem task's result (markdown + files).

    102 GitHub stars~260 tokensUpdated 1 mo ago
    Auto-check passed
  • Tendem Status

    Toloka/tendem-mcp

    Explicitly check on a Tendem task and advance it (poll cleanly, don't busy-loop).

    102 GitHub stars~349 tokensUpdated 1 mo ago
    Auto-check passed

Questions about Tendem Tasks

What does Tendem Tasks do?

A skill your agent uses when a task is non-trivial and could benefit from human involvement — delegating work to a human expert (research, review, labeling, content, design, data work) and driving…. Tendem Tasks is an agent skill from Toloka/tendem-mcp. Use when a task is non-trivial and could benefit from human involvement — delegating work to a human expert (research, review, labeling, content, design, data work) and driving it end to end.

When should I use Tendem Tasks?

Tendem Tasks fits situations like: A task is non-trivial and could benefit from human involvement — delegating work to a human expert (research; data work) and driving it end to end; tendem is mentioned; its tools are in play.

How do I install Tendem Tasks in Claude Code?

Run `npx skills add Toloka/tendem-mcp --skill tendem-tasks -a claude-code`. Or copy the skill folder (codex/tendem/skills/tendem-tasks in Toloka/tendem-mcp) into .claude/skills/tendem-tasks in your project. Claude Code loads it when a task matches its description.

How do I install Tendem Tasks in Codex?

Run `npx skills add Toloka/tendem-mcp --skill tendem-tasks -a codex`. Or copy the skill folder (codex/tendem/skills/tendem-tasks in Toloka/tendem-mcp) into .agents/skills/tendem-tasks in your project. Codex loads it when a task matches its description.

Can I use Tendem Tasks in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Toloka/tendem-mcp --skill tendem-tasks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tendem-tasks, .gemini/skills/tendem-tasks, .github/skills/tendem-tasks and .opencode/skills/tendem-tasks in your project.

What does Tendem Tasks need to run?

Going by SKILL.md and its folder, Tendem Tasks needs a shell for the scripts in its folder. Our summary lists: A Bash shell.

Does Tendem Tasks access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Tendem Tasks safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Tendem Tasks use?

Tendem Tasks is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tendem Tasks use?

About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 976 tokens, read only when the agent opens those files.

What are the alternatives to Tendem Tasks?

Skills that share tags, products or a category with Tendem Tasks: Codebase Management (giancarloerra/SocratiCode, 3.3k stars), Codex with ChatGPT Planning Loop (XiaoDuoYa/codex-with-chatgpt, 7.2k stars), Agent Squad Python Guide (2FastLabs/agent-squad, 7.8k stars) and Codebase Exploration (giancarloerra/SocratiCode, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tendem Tasks?

Toloka (a GitHub organization) maintains it in Toloka/tendem-mcp, which has 102 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 8, 2026.

Source: Toloka/tendem-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.