KS
Killer-Skills

taiga-api — how to use taiga-api how to use taiga-api, taiga-api python setup, taiga-api alternative, taiga-api vs other APIs, taiga-api install guide, taiga-api setup tutorial, what is taiga-api, taiga-api documentation, taiga-api query examples

v1.0.0
GitHub

About this Skill

Perfect for Python-based AI Agents needing seamless integration with the Taiga evaluation platform API for job results and transcripts analysis. Taiga-api is a Python-based interface for querying the Taiga evaluation platform API, enabling developers to retrieve job results, transcripts, and problem runs.

Features

Queries the hosted Taiga evaluation platform API using Python
Loads cookies from a .env file using a Python helper function
Retrieves job results, transcripts, and problem runs from the Taiga API
Avoids shell env var and pipe bugs that strip cookie values
Utilizes a Python-based approach for reliable API requests

# Core Topics

atondwal atondwal
[0]
[0]
Updated: 3/6/2026

Quality Score

Top 5%
57
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add atondwal/config/taiga-api

Agent Capability Analysis

The taiga-api MCP Server by atondwal is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to use taiga-api, taiga-api python setup, taiga-api alternative.

Ideal Agent Persona

Perfect for Python-based AI Agents needing seamless integration with the Taiga evaluation platform API for job results and transcripts analysis.

Core Value

Empowers agents to query the Taiga API using Python, providing a helper function to load cookies and ensuring secure API requests, while leveraging the Taiga-API for job results, transcripts, and problem runs retrieval.

Capabilities Granted for taiga-api MCP Server

Querying job results from the Taiga evaluation platform
Retrieving transcripts and problem runs using the Taiga API
Automating Taiga API requests with Python

! Prerequisites & Limits

  • Requires Python environment
  • Must use Python for API requests due to shell limitations with env vars and pipes
Project
SKILL.md
6.2 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

Taiga API

Query the hosted Taiga evaluation platform API for job results, transcripts, and problem runs.

IMPORTANT: Use Python, Not Shell

Always use Python for Taiga API requests. Shell has env var + pipe bugs that strip cookie values.

Python helper to load cookie:

python
1def get_cookie(): 2 with open('/home/atondwal/dmodel/ant/taiga-worktree/.env') as f: 3 for line in f: 4 if line.startswith('TAIGA_IAP_COOKIE='): 5 return line.split('=', 1)[1].strip().strip('"')

IMPORTANT: Always Use Opus 4.5

When submitting jobs, ALWAYS use claude-opus-4-5-20251101 as the model. Never use Sonnet or other models unless explicitly requested.

Authentication

Cookie stored in ~/dmodel/ant/taiga-worktree/.env. Uses __Host- prefix (session-only). If auth fails, ask user to refresh from browser DevTools → Network → copy Cookie header.

Making Requests

python
1import urllib.request, json 2 3def taiga_get(endpoint): 4 cookie = get_cookie() # see helper above 5 req = urllib.request.Request(f"https://taiga.ant.dev/api{endpoint}") 6 req.add_header('Cookie', cookie) 7 return json.loads(urllib.request.urlopen(req).read()) 8 9# Example: get job problems 10data = taiga_get(f"/jobs/{job_id}/problems")

API Reference

Full docs at: https://taiga.ant.dev/api/docs

Jobs (Most Common)

EndpointMethodPurpose
/jobsGETList all jobs
/jobs?environment_id={id}GETList jobs for environment
/jobs/{job_id}GETGet job details
/jobs/{job_id}/problemsGETGet problem results (passrates, scores)
/jobs/{job_id}/problems/streamGETStream problem results
/jobs/{job_id}/error-summaryGETGet error summary
/jobsPOSTCreate job with problems
/cancel-job/{job_id}POSTCancel running job
/resubmit-problem/{job_id}/{problem_id}POSTResubmit specific problem

Transcripts

EndpointMethodPurpose
/transcript/{problem_run_id}GETGet full transcript
/transcript/stream/{problem_run_id}GETStream transcript

Problem Runs

EndpointMethodPurpose
/problem_runs/{problem_id}GETList runs for problem
/problem-runs/{id}/container-logsGETGet container logs
/problem-runs/{id}/mcp-server-logsGETGet MCP server logs
/problem-runs/{id}/download-outputGETDownload output directory

Environments

EndpointMethodPurpose
/environmentsGETList environments
/environments/{id}GETGet environment details
/environments?skip=0&limit=100GETPaginated list

Problems

EndpointMethodPurpose
/problems/{problem_id}/attemptsGETGet problem attempts
/problems/versions/{version_id}GETGet problem version
/problems/versions/{version_id}/runPOSTRun problem version
/problem-crudGETList all problems
/problem-crud/stats/pass-ratesPOSTGet pass rate stats

Docker Images

EndpointMethodPurpose
/docker-imagesGETList docker images
/docker-images/{id}/downloadGETDownload image source

Common Workflows

Get Passrates for a Job

python
1job_id = "3c300cca-707a-4e92-ac71-5688165f9ae1" # from URL ?id= param 2data = taiga_get(f"/jobs/{job_id}/problems") 3for r in data: 4 print(f"{r['problem_id']}: {r['final_score']}")

Aggregate Passrates

python
1from collections import defaultdict 2 3job_id = "YOUR_JOB_ID" 4data = taiga_get(f"/jobs/{job_id}/problems") 5 6problems = defaultdict(list) 7for r in data: 8 problems[r['problem_id']].append(r['final_score']) 9 10total_pass = total_runs = 0 11for pid, scores in sorted(problems.items()): 12 passed = sum(1 for s in scores if s == 1.0) 13 total = len(scores) 14 total_pass += passed 15 total_runs += total 16 print(f"{pid}: {passed}/{total} ({100*passed/total:.0f}%)") 17 18print(f"\nOverall: {total_pass}/{total_runs} ({100*total_pass/total_runs:.1f}%)")

Get Transcript

python
1problem_run_id = "118ed21a-9864-4c8c-b34b-d92428f1c22a" 2transcript = taiga_get(f"/transcript/{problem_run_id}")

List Jobs for Environment

python
1env_id = "8e646c11-1461-44a4-9e8d-e3800a02ba07" 2jobs = taiga_get(f"/jobs?environment_id={env_id}") 3for j in jobs: 4 print(f"{j['id']}: {j['status']}")

Check Job Status

python
1job = taiga_get(f"/jobs/{job_id}") 2print(f"Status: {job['status']}, Completed: {job.get('completed_count')}")

Create a Job

python
1import urllib.request, json 2 3with open('problems-metadata.json') as f: 4 problems = json.load(f) 5 6payload = { 7 "name": "my-job-name", 8 "problems_metadata": problems, 9 "n_attempts_per_problem": 10, 10 "api_model_name": "claude-opus-4-5-20251101" # ALWAYS use Opus 4.5 11} 12 13cookie = get_cookie() 14req = urllib.request.Request( 15 "https://taiga.ant.dev/api/jobs", 16 data=json.dumps(payload).encode(), 17 headers={"Cookie": cookie, "Content-Type": "application/json"} 18) 19resp = json.loads(urllib.request.urlopen(req).read()) 20print(f"Job ID: {resp.get('job_id')}")

Response Schemas

Problem Run

json
1{ 2 "id": "118ed21a-...", 3 "problem_id": "sort-unique", 4 "attempt_number": 1, 5 "final_score": 1.0, 6 "status": "completed", 7 "subscores": {"matched_solution": 1.0}, 8 "weights": {"matched_solution": 1.0}, 9 "execution_time_ms": 467000, 10 "total_tokens": 34205 11}

Job

json
1{ 2 "id": "3c300cca-...", 3 "status": "completed", 4 "environment_id": "8e646c11-...", 5 "api_model_name": "claude-opus-4-5-20251101", 6 "created_at": "2025-11-24T17:46:30Z" 7}

URL Patterns

From Taiga web UI URLs:

  • Job page: https://taiga.ant.dev/job?id={job_id}&environmentId={env_id}
  • Transcripts: https://taiga.ant.dev/transcripts?id={job_id}&problemId={problem_id}&...

The id parameter in URLs is the job_id.

Tips

  1. Use Python with urllib.request - avoid shell due to env var bugs
  2. Cookie expires periodically - refresh from browser if auth fails
  3. /jobs/{id}/problems is the main endpoint for checking pass rates
  4. For streaming large responses, use the /stream variants

Related Skills

Looking for an alternative to taiga-api or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication