Tool tree
gradeNot graded
page: Every page
get_profileAnswer
Matthew Polak's profile from his portfolio: name, headline, contact links, experience, selected work, education, skills and achievements. Pass `section` to get only one part.
View tool JSON
{
"name": "get_profile",
"kind": "answer",
"impl": "imperative",
"description": "Matthew Polak's profile from his portfolio: name, headline, contact links, experience, selected work, education, skills and achievements. Pass `section` to get only one part.",
"inputSchema": {
"type": "object",
"properties": {
"section": {
"type": "string",
"description": "Return only this part of the profile.",
"enum": [
"contact",
"experience",
"projects",
"education",
"skills",
"achievements"
]
}
},
"additionalProperties": false
},
"page": "/"
}list_projectsAnswer
Lists the projects on the site, newest first, with slug, date, tags and links. Optionally keep only projects with one tag (for example "rust").
View tool JSON
{
"name": "list_projects",
"kind": "answer",
"impl": "imperative",
"description": "Lists the projects on the site, newest first, with slug, date, tags and links. Optionally keep only projects with one tag (for example \"rust\").",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Only projects with this tag (case-insensitive).",
"maxLength": 60
}
},
"additionalProperties": false
},
"page": "/"
}get_projectAnswer
Returns one project by slug (from list_projects): description in markdown, tags, links and how AI was used to build it, if at all.
View tool JSON
{
"name": "get_project",
"kind": "answer",
"impl": "imperative",
"description": "Returns one project by slug (from list_projects): description in markdown, tags, links and how AI was used to build it, if at all.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The project slug, for example \"quasi\".",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"slug"
],
"additionalProperties": false
},
"page": "/"
}search_blogAnswer
Finds blog posts whose title, description or tags contain every word of the query. An empty result means no match.
View tool JSON
{
"name": "search_blog",
"kind": "answer",
"impl": "imperative",
"description": "Finds blog posts whose title, description or tags contain every word of the query. An empty result means no match.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words to look for, for example \"axum extract\".",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"query"
],
"additionalProperties": false
},
"page": "/"
}get_postAnswer
Returns one blog post by slug: title, date, description, URL and the full markdown body.
View tool JSON
{
"name": "get_post",
"kind": "answer",
"impl": "imperative",
"description": "Returns one blog post by slug: title, date, description, URL and the full markdown body.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The post slug, for example \"axum-extract\".",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"slug"
],
"additionalProperties": false
},
"page": "/"
}navigateAction
Opens one of this site's own pages in the current tab (for example /projects, /blog or /playground/quasi). Other sites are refused.
View tool JSON
{
"name": "navigate",
"kind": "act",
"impl": "imperative",
"description": "Opens one of this site's own pages in the current tab (for example /projects, /blog or /playground/quasi). Other sites are refused.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "A site path such as \"/projects\".",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"path"
],
"additionalProperties": false
},
"page": "/"
}set_themeAction
Changes the site colour theme and remembers the choice. Pass a theme id or name, or "next" for the next one. Without an argument it only lists the themes.
View tool JSON
{
"name": "set_theme",
"kind": "act",
"impl": "imperative",
"description": "Changes the site colour theme and remembers the choice. Pass a theme id or name, or \"next\" for the next one. Without an argument it only lists the themes.",
"inputSchema": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"description": "A theme id or name, or \"next\".",
"maxLength": 40
}
},
"additionalProperties": false
},
"page": "/"
}page: Jacket
run_codeAction
Loads code into the open in-browser playground (Jai, Quasi or BaerScript, whichever is on this page), runs it and returns its output. The editor contents are replaced. Returns stdout, stderr, the exit status and diagnostics; output is cut at 20 KB and the run is stopped after 30 seconds. Jai restarts its compiler session first, so it takes longer.
View tool JSON
{
"name": "run_code",
"kind": "act",
"impl": "imperative",
"description": "Loads code into the open in-browser playground (Jai, Quasi or BaerScript, whichever is on this page), runs it and returns its output. The editor contents are replaced. Returns stdout, stderr, the exit status and diagnostics; output is cut at 20 KB and the run is stopped after 30 seconds. Jai restarts its compiler session first, so it takes longer.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The complete program to run.",
"minLength": 1,
"maxLength": 100000
},
"filename": {
"type": "string",
"description": "Jai workspace only: the file to write the code to (default main.jai). Ignored by single-file playgrounds.",
"maxLength": 200
}
},
"required": [
"code"
],
"additionalProperties": false
},
"page": "/playground/jacket"
}