Tool tree
gradeNot graded
page: Every page
athousandtools_list_toolsAction
List the PDF and image operations this site can perform, with the id to pass to athousandtools_run. Start here. Optionally filter by category or a search term.
View tool JSON
{
"name": "athousandtools_list_tools",
"kind": "act",
"impl": "imperative",
"description": "List the PDF and image operations this site can perform, with the id to pass to athousandtools_run. Start here. Optionally filter by category or a search term.",
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"Organize",
"Optimize",
"Convert",
"Edit",
"Security",
"Image"
]
},
"query": {
"type": "string",
"description": "Free-text filter over titles and descriptions."
}
},
"required": []
},
"page": "/"
}athousandtools_describe_toolAnswer
Describe one operation: how many input files it needs, what it accepts, and every option it takes with its default. Call this before athousandtools_run rather than guessing option names.
View tool JSON
{
"name": "athousandtools_describe_tool",
"kind": "answer",
"impl": "imperative",
"description": "Describe one operation: how many input files it needs, what it accepts, and every option it takes with its default. Call this before athousandtools_run rather than guessing option names.",
"inputSchema": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Tool id from athousandtools_list_tools, e.g. \"pdf_to_markdown\"."
}
},
"required": [
"tool"
]
},
"page": "/"
}athousandtools_attach_fileAction
Attach a file for the operations to work on, as base64. Suitable for small inputs; for anything over a megabyte or so use athousandtools_open_file_picker instead, which takes the file without moving its bytes through this conversation.
View tool JSON
{
"name": "athousandtools_attach_file",
"kind": "act",
"impl": "imperative",
"description": "Attach a file for the operations to work on, as base64. Suitable for small inputs; for anything over a megabyte or so use athousandtools_open_file_picker instead, which takes the file without moving its bytes through this conversation.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Filename including extension - the extension is how engines recognise the format."
},
"base64": {
"type": "string",
"description": "File contents, base64. A data: URL is also accepted."
}
},
"required": [
"name",
"base64"
]
},
"page": "/"
}athousandtools_open_file_pickerAction
Open the browser file chooser and attach whatever is selected. This is the efficient way to hand over a real file: call it, then satisfy the file chooser with your browser-automation upload command. Resolves once files are chosen.
View tool JSON
{
"name": "athousandtools_open_file_picker",
"kind": "act",
"impl": "imperative",
"description": "Open the browser file chooser and attach whatever is selected. This is the efficient way to hand over a real file: call it, then satisfy the file chooser with your browser-automation upload command. Resolves once files are chosen.",
"inputSchema": {
"type": "object",
"properties": {
"multiple": {
"type": "boolean",
"description": "Allow selecting more than one file. Default true."
}
},
"required": []
},
"page": "/"
}athousandtools_list_filesAction
List the files currently attached, with the ids that athousandtools_run takes. Pass clear:true to drop them all first.
View tool JSON
{
"name": "athousandtools_list_files",
"kind": "act",
"impl": "imperative",
"description": "List the files currently attached, with the ids that athousandtools_run takes. Pass clear:true to drop them all first.",
"inputSchema": {
"type": "object",
"properties": {
"clear": {
"type": "boolean",
"description": "Remove every attached file. Default false."
}
},
"required": []
},
"page": "/"
}athousandtools_inspect_pdfAnswer
Read an attached PDF without changing it: page count, page size, metadata, form fields, and whether it has extractable text or is a scan. Worth calling before choosing page ranges or deciding whether OCR is needed.
View tool JSON
{
"name": "athousandtools_inspect_pdf",
"kind": "answer",
"impl": "imperative",
"description": "Read an attached PDF without changing it: page count, page size, metadata, form fields, and whether it has extractable text or is a scan. Worth calling before choosing page ranges or deciding whether OCR is needed.",
"inputSchema": {
"type": "object",
"properties": {
"fileId": {
"type": "string",
"description": "Which attached file. Defaults to the first one."
}
},
"required": []
},
"page": "/"
}athousandtools_runAction
Run one operation on the attached files, in this browser. Returns a summary plus any text the operation produced; a resulting file is held in memory for athousandtools_get_result or athousandtools_save_result. Nothing is uploaded - the work happens locally, so a large document can take a while.
View tool JSON
{
"name": "athousandtools_run",
"kind": "act",
"impl": "imperative",
"description": "Run one operation on the attached files, in this browser. Returns a summary plus any text the operation produced; a resulting file is held in memory for athousandtools_get_result or athousandtools_save_result. Nothing is uploaded - the work happens locally, so a large document can take a while.",
"inputSchema": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Tool id, e.g. \"merge\", \"compress\", \"pdf_to_markdown\"."
},
"options": {
"type": "object",
"additionalProperties": true,
"description": "Operation options. Call athousandtools_describe_tool for the exact shape."
},
"text": {
"type": "string",
"description": "Text input, for the operations that take typed text instead of a file."
},
"fileIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Which attached files to use, in order. Defaults to all of them."
}
},
"required": [
"tool"
]
},
"page": "/"
}athousandtools_get_resultAnswer
Return the last result. Text results come back in full; a file comes back base64, which is expensive - prefer athousandtools_save_result unless you genuinely need the bytes in the conversation.
View tool JSON
{
"name": "athousandtools_get_result",
"kind": "answer",
"impl": "imperative",
"description": "Return the last result. Text results come back in full; a file comes back base64, which is expensive - prefer athousandtools_save_result unless you genuinely need the bytes in the conversation.",
"inputSchema": {
"type": "object",
"properties": {
"maxBytes": {
"type": "number",
"description": "Refuse a file larger than this rather than flooding the context. Default 750000."
}
},
"required": []
},
"page": "/"
}athousandtools_save_resultAction
Download the last result through the browser, the same way the Download button does. Use this for anything of real size; the file lands wherever the browser saves downloads.
View tool JSON
{
"name": "athousandtools_save_result",
"kind": "act",
"impl": "imperative",
"description": "Download the last result through the browser, the same way the Download button does. Use this for anything of real size; the file lands wherever the browser saves downloads.",
"inputSchema": {
"type": "object",
"properties": {
"filename": {
"type": "string",
"description": "Override the suggested filename. Optional."
}
},
"required": []
},
"page": "/"
}athousandtools_open_toolAction
Navigate the visible page to a tool, its directory, or the home page - for when a person is watching, or when you want to finish a job in the on-screen editor. This only changes the view; it runs nothing.
View tool JSON
{
"name": "athousandtools_open_tool",
"kind": "act",
"impl": "imperative",
"description": "Navigate the visible page to a tool, its directory, or the home page - for when a person is watching, or when you want to finish a job in the on-screen editor. This only changes the view; it runs nothing.",
"inputSchema": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "A tool id, or \"all\" for the tool directory, or \"home\"."
}
},
"required": [
"tool"
]
},
"page": "/"
}