Tool tree
Build real electronics with an agent beside you. Follow a real project, recover from wiring mistakes, and understand why every connection matters.
Implementation
gradeNot graded
gradeNot graded
page: Projects
find_projectsAnswer
Find builds by difficulty, length, component or learning goal.
View tool JSON
{
"name": "find_projects",
"kind": "answer",
"impl": "imperative",
"description": "Find builds by difficulty, length, component or learning goal.",
"inputSchema": {
"type": "object",
"description": "Filters the catalogue and redraws the grid the reader is looking at. Every call replaces the whole filter rather than adding to it, so an omitted argument clears that filter — and a call with no arguments is the way back to all six builds.",
"properties": {
"search": {
"type": "string",
"description": "Free text over names and goals."
},
"difficulty": {
"type": "array",
"items": {
"type": "string",
"enum": [
"beginner",
"intermediate"
]
},
"description": "Levels a build may be at; several are OR-ed, and an empty array is every level."
},
"max_minutes": {
"type": "number",
"description": "Upper bound on duration."
},
"components": {
"type": "array",
"items": {
"type": "string",
"enum": [
"board",
"breadboard",
"sensor",
"servo",
"led",
"resistor"
]
},
"description": "Component ids the build must use at least one of."
},
"concepts": {
"type": "array",
"items": {
"type": "string",
"enum": [
"digitalPins",
"analogReading",
"triggerEcho",
"pwmServo",
"ledPolarity",
"distanceMeasurement",
"conditionalLogic",
"mechanicalCalibration",
"testing",
"thresholds",
"serialOutput",
"timing"
]
},
"description": "Learning-goal ids the build must teach at least one of."
},
"ready_only": {
"type": "boolean",
"description": "Only builds that have a guided workbench."
}
},
"additionalProperties": false
},
"page": "/projects"
}open_projectAction
Open a project's detail screen.
View tool JSON
{
"name": "open_project",
"kind": "act",
"impl": "imperative",
"description": "Open a project's detail screen.",
"inputSchema": {
"type": "object",
"description": "Opens a project's detail screen — its parts, its length and what it teaches. It navigates; it does not start the build.",
"properties": {
"project": {
"type": "string",
"enum": [
"breathingLamp",
"trafficLight",
"motionNightLight",
"plantGuardian",
"touchlessSoapDispenser",
"smartParkingBarrier"
],
"description": "A project id — a slug is also accepted."
}
},
"required": [
"project"
],
"additionalProperties": false
},
"page": "/projects"
}get_project_requirementsAnswer
Read a project's parts, length, level and learning goals.
View tool JSON
{
"name": "get_project_requirements",
"kind": "answer",
"impl": "imperative",
"description": "Read a project's parts, length, level and learning goals.",
"inputSchema": {
"type": "object",
"description": "Answers what a project needs — parts, length, level, learning goals — without opening it or starting it. Nothing on screen moves.",
"properties": {
"project": {
"type": "string",
"enum": [
"breathingLamp",
"trafficLight",
"motionNightLight",
"plantGuardian",
"touchlessSoapDispenser",
"smartParkingBarrier"
],
"description": "A project id — a slug is also accepted."
}
},
"required": [
"project"
],
"additionalProperties": false
},
"page": "/projects"
}page: Workspace
start_projectAction
Start a build and open its workbench.
View tool JSON
{
"name": "start_project",
"kind": "act",
"impl": "imperative",
"description": "Start a build and open its workbench.",
"inputSchema": {
"type": "object",
"description": "Starts a build and opens its workbench, where the eight bench tools are the ones registered. Both modes run on the simulated board, so nothing here depends on the reader owning the parts.",
"properties": {
"project": {
"type": "string",
"enum": [
"breathingLamp",
"trafficLight",
"motionNightLight",
"plantGuardian",
"touchlessSoapDispenser",
"smartParkingBarrier"
],
"description": "A project id — a slug is also accepted."
},
"mode": {
"type": "string",
"enum": [
"guided",
"demo"
],
"description": "Both run on the simulated board; the kit checklist is advisory either way."
}
},
"required": [
"project"
],
"additionalProperties": false
},
"page": "/workspace"
}page: Home
inspect_buildAction
Compare the build against the sketch and report findings.
View tool JSON
{
"name": "inspect_build",
"kind": "act",
"impl": "imperative",
"description": "Compare the build against the sketch and report findings.",
"inputSchema": {
"type": "object",
"description": "Compares what is on the bench against the sketch and returns findings, each with an id. Those ids are what show_correction takes; nothing here moves a lead.",
"properties": {
"scope": {
"type": "string",
"enum": [
"current_step",
"wiring",
"mechanical",
"all"
],
"description": "How much of the build to compare. Defaults to the step."
}
},
"additionalProperties": false
},
"page": "/"
}show_correctionAction
Points at a finding on the workbench. focused lists the pins to look at — where it belongs before where it is now.
View tool JSON
{
"name": "show_correction",
"kind": "act",
"impl": "imperative",
"description": "Points at a finding on the workbench. focused lists the pins to look at — where it belongs before where it is now.",
"inputSchema": {
"type": "object",
"description": "Points the workbench at one finding and says what is wrong with it, at the depth detail_level asks for. It explains and highlights; the only tool that repairs anything is attach_lead.",
"properties": {
"finding_id": {
"type": "string",
"description": "An id returned by inspect_build."
},
"detail_level": {
"type": "string",
"enum": [
"hint",
"explain",
"exact"
],
"description": "How much of the answer to give away — a ladder, least to most: hint, explain, exact. Omitted, it follows the level the reader's panel is already on."
}
},
"required": [
"finding_id"
],
"additionalProperties": false
},
"page": "/"
}