{"ok":true,"site":{"host":"kanzen.naklitechie.com","url":"https://kanzen.naklitechie.com/","type":"live","desc":"KanZen — Kanban without the noise. Single-file local-first kanban. No server, no account, no board limits.","tools":[{"name":"describe_tools","kind":"answer","impl":"imperative","description":"Every KanZen tool with its kind, input schema and approval rule, plus the person-only acts no agent can perform. Start here.","title":"Describe KanZen tools","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_app_state","kind":"answer","impl":"imperative","description":"Where boards are stored, the open board, the current view and filters, theme, auto-snapshot settings, and how many agent proposals wait for approval.","title":"Get app state","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_boards","kind":"answer","impl":"imperative","description":"All boards in the open library, with ids, names and counts. The open board is current_board_id.","title":"List boards","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_board","kind":"answer","impl":"imperative","description":"A board in full: columns in order (with card_ids), labels, members, and every card summarised. Use the ids here in other tools.","title":"Get board","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"include_descriptions":{"type":"boolean","description":"include each card description"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_card","kind":"answer","impl":"imperative","description":"One card with description, checklist items, comments, attachment names and sizes, and who last changed it.","title":"Get card","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["card_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_cards","kind":"answer","impl":"imperative","description":"Cards matching text (title or description), label, member, priority, due bucket or column. Every filter is optional.","title":"Search cards","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"query":{"type":"string","maxLength":200},"label_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"member_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"column_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"priority":{"type":"string","enum":["none","low","medium","high","urgent"]},"due":{"type":"string","enum":["overdue","today","week","none"]},"include_descriptions":{"type":"boolean"},"limit":{"type":"integer","minimum":1,"maximum":500}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_activity","kind":"answer","impl":"imperative","description":"The board history, newest first. Each entry says whether a person or an agent made it, and through which door.","title":"Get activity","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"limit":{"type":"integer","minimum":1,"maximum":500},"user":{"type":"string","maxLength":200},"action":{"type":"string","maxLength":60},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"actor":{"type":"string","enum":["person","agent"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_snapshots","kind":"answer","impl":"imperative","description":"Saved snapshots of a board, newest first.","title":"List snapshots","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_snapshots","kind":"act","impl":"imperative","description":"Card-level differences between two snapshots: added, removed and modified cards. The older snapshot is the base.","title":"Compare snapshots","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"a":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$","description":"filename from list_snapshots"},"b":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$","description":"filename from list_snapshots"}},"required":["a","b"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_board","kind":"act","impl":"imperative","description":"A board as KanZen JSON, CSV or Markdown. Returns the file name and its text; nothing is downloaded.","title":"Export board","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"format":{"type":"string","enum":["json","csv","markdown"]}},"required":["format"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_all_boards","kind":"act","impl":"imperative","description":"Every board in the library as one KanZen JSON export. Attachments are included, so this can be large.","title":"Export all boards","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_share_link","kind":"act","impl":"imperative","description":"A URL that carries a board (or a snapshot) in its #fragment, optionally encrypted with a passphrase you choose. Nothing is uploaded. Boards over 64,000 characters return url:null.","title":"Create share link","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"stripped":{"type":"boolean","description":"leave out descriptions, checklists, attachments and comments"},"passphrase":{"type":"string","minLength":1,"maxLength":200},"snapshot":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$","description":"filename from list_snapshots"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"suggest_subtasks","kind":"act","impl":"imperative","description":"Short subtasks for a task, from the on-device model KanZen has inside NakliOS. Returns items only; add them with add_checklist_items.","title":"Suggest subtasks","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":5000}},"required":["title"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"test_sync_connection","kind":"act","impl":"imperative","description":"Checks the cloud-sync Worker the person configured. Never returns the token or passphrase.","title":"Test sync connection","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_proposals","kind":"answer","impl":"imperative","description":"Agent proposals in this tab, newest first, with their status: pending, applied, rejected, withdrawn or failed.","title":"List proposals","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","applied","rejected","withdrawn","failed"]},"limit":{"type":"integer","minimum":1,"maximum":500}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_proposal","kind":"answer","impl":"imperative","description":"One proposal: its status and, once applied, its result (for example the new card_id).","title":"Get proposal","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"proposal_id":{"type":"string","pattern":"^prop_[A-Za-z0-9]{1,40}$"}},"required":["proposal_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"switch_board","kind":"act","impl":"imperative","description":"Open another board in this tab. Unsaved edits on the board being left are saved first.","title":"Switch board","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["board_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_view","kind":"act","impl":"imperative","description":"Show the open board as board, list or calendar; sort the list; or move the calendar to a month.","title":"Set view","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["board","list","calendar"]},"list_sort":{"type":"object","properties":{"field":{"type":"string","enum":["title","column","priority","due_date","updated"]},"direction":{"type":"string","enum":["asc","desc"]}},"required":["field"],"additionalProperties":false},"calendar_month":{"type":"string","pattern":"^\\d{4}-\\d{2}$","description":"YYYY-MM"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_filter","kind":"act","impl":"imperative","description":"Dim the cards that do not match. Set only the fields to change; an empty string clears a field.","title":"Set filter","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"search":{"type":"string","maxLength":200},"label_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{0,80}$"},"member_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{0,80}$"},"priority":{"type":"string","enum":["","none","low","medium","high","urgent"]},"due":{"type":"string","enum":["","overdue","today","week","none"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_filters","kind":"act","impl":"imperative","description":"Clear search and every filter.","title":"Clear filters","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"withdraw_proposal","kind":"act","impl":"imperative","description":"Take back a pending proposal so the person no longer sees it.","title":"Withdraw proposal","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"proposal_id":{"type":"string","pattern":"^prop_[A-Za-z0-9]{1,40}$"}},"required":["proposal_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_board","kind":"act","impl":"imperative","description":"A new board with To Do, In Progress and Done columns and three starter labels. It opens when applied. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Create board","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"rename_board","kind":"act","impl":"imperative","description":"Rename a board. Its file name on disk stays the same. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Rename board","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"name":{"type":"string","minLength":1,"maxLength":200}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_board_background","kind":"act","impl":"imperative","description":"Board background: a gradient by name (Sky, Sunset, Forest, Berry, Ocean, Plum, Slate, Mint) or a solid #rrggbb colour. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Set board background","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"kind":{"type":"string","enum":["gradient","solid"]},"value":{"type":"string","minLength":1,"maxLength":120}},"required":["kind","value"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_column","kind":"act","impl":"imperative","description":"Add a column (list). Returns column_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Create column","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"name":{"type":"string","minLength":1,"maxLength":200},"position":{"type":"integer","minimum":0,"maximum":100000,"description":"0-based position; omit to append"}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_column","kind":"act","impl":"imperative","description":"Rename a column, set its soft WIP limit (0 = none), or collapse it. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Update column","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"column_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":200},"wip_limit":{"type":"integer","minimum":0,"maximum":999},"collapsed":{"type":"boolean"}},"required":["column_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_column","kind":"act","impl":"imperative","description":"Reorder a column to a 0-based position. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Move column","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"column_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"position":{"type":"integer","minimum":0,"maximum":100000,"description":"0-based position; omit to append"}},"required":["column_id","position"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_card","kind":"act","impl":"imperative","description":"Add a card to a column, with optional description (markdown), priority, due date, labels and members. Returns card_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Create card","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"column_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"title":{"type":"string","minLength":1,"maxLength":1000},"description":{"type":"string","maxLength":200000},"priority":{"type":"string","enum":["none","low","medium","high","urgent"]},"due_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"label_ids":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"maxItems":100},"member_ids":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"maxItems":100},"position":{"type":"integer","minimum":0,"maximum":100000,"description":"0-based position; omit to append"}},"required":["column_id","title"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_card","kind":"act","impl":"imperative","description":"Change a card. Give only the fields to change. due_date null clears it; label_ids, member_ids and checklist replace the whole list (checklist items keep their id when you pass it). Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Update card","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"title":{"type":"string","minLength":1,"maxLength":1000},"description":{"type":"string","maxLength":200000},"priority":{"type":"string","enum":["none","low","medium","high","urgent"]},"due_date":{"type":["string","null"],"pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"label_ids":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"maxItems":100},"member_ids":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"maxItems":100},"checklist":{"type":"array","maxItems":500,"items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"text":{"type":"string","maxLength":1000},"done":{"type":"boolean"}},"required":["text"],"additionalProperties":false}}},"required":["card_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_card","kind":"act","impl":"imperative","description":"Move a card to a column, at a 0-based position (default: the end). Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Move card","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"column_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"position":{"type":"integer","minimum":0,"maximum":100000,"description":"0-based position; omit to append"}},"required":["card_id","column_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_checklist_items","kind":"act","impl":"imperative","description":"Append unchecked items to a card checklist. Returns their item_ids. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Add checklist items","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","minLength":1,"maxLength":1000}}},"required":["card_id","items"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_checklist_item","kind":"act","impl":"imperative","description":"Tick, untick or reword one checklist item. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Update checklist item","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"item_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"text":{"type":"string","minLength":1,"maxLength":1000},"done":{"type":"boolean"}},"required":["card_id","item_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_comment","kind":"act","impl":"imperative","description":"Comment on a card (markdown). author_member_id names a board member; omit it for an anonymous comment. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Add comment","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"text":{"type":"string","minLength":1,"maxLength":20000},"author_member_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["card_id","text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_attachment","kind":"act","impl":"imperative","description":"Embed a file in a card, as base64. HTML, SVG and XML are refused because a browser could run them. 25 MB limit. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Add attachment","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":200},"mime_type":{"type":"string","pattern":"^[A-Za-z0-9!#$&^_.+-]{1,64}/[A-Za-z0-9!#$&^_.+-]{1,100}$"},"data_base64":{"type":"string","maxLength":36000000}},"required":["card_id","name","mime_type","data_base64"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_label","kind":"act","impl":"imperative","description":"Add a label to a board. Returns label_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Create label","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"name":{"type":"string","minLength":1,"maxLength":200},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_label","kind":"act","impl":"imperative","description":"Rename or recolour a label. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Update label","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"label_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":200},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["label_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_member","kind":"act","impl":"imperative","description":"Add a member to a board. Returns member_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Create member","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"name":{"type":"string","minLength":1,"maxLength":200},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_member","kind":"act","impl":"imperative","description":"Rename or recolour a member. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.","title":"Update member","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"member_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"name":{"type":"string","minLength":1,"maxLength":200},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["member_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_changes","kind":"act","impl":"imperative","description":"Several board edits as one proposal and one undo step. Each change is {tool, input, as?}; tools must be batchable (see describe_tools). Name a created thing with \"as\" and use \"$name\" in a later change's id field. If any change fails, none is applied. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Apply changes","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"operations":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","properties":{"tool":{"type":"string","maxLength":60},"input":{"type":"object"},"as":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,30}$"}},"required":["tool","input"],"additionalProperties":false}}},"required":["operations"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo","kind":"act","impl":"imperative","description":"Step the board back one change (50 steps per board, this tab only). Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Undo","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"redo","kind":"act","impl":"imperative","description":"Re-apply the change undo stepped back from. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Redo","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"take_snapshot","kind":"act","impl":"imperative","description":"Save a named copy of a board that restore_snapshot can bring back. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Take snapshot","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"name":{"type":"string","maxLength":200}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_auto_snapshot","kind":"act","impl":"imperative","description":"Turn automatic snapshots on or off: before destructive changes, and once a day. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Set auto-snapshot","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"before_destructive":{"type":"boolean"},"daily":{"type":"boolean"}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"import_boards","kind":"act","impl":"imperative","description":"Add boards from a KanZen JSON export. Existing boards are kept; clashing ids get new ones. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Import boards","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":["object","string"],"description":"a KanZen export: one board object, {boards:{...}}, or the same as a JSON string"}},"required":["data"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"import_trello","kind":"act","impl":"imperative","description":"Create a board from a Trello JSON export: lists, cards, labels, members and checklists. Attachments are skipped. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Import Trello board","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":["object","string"],"description":"the Trello export, or it as a JSON string"}},"required":["data"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"import_share_link","kind":"act","impl":"imperative","description":"Create a board from a KanZen share URL (#kz:, #kze: or #e=). Encrypted links need their passphrase. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Import share link","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":2,"maxLength":200000},"passphrase":{"type":"string","maxLength":200}},"required":["url"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_team_mode","kind":"act","impl":"imperative","description":"Split a board into one file per card for git-friendly collaboration, or join it back into one file. Needs a Folder or Crate. Lossless both ways. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Set team mode","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"on":{"type":"boolean"}},"required":["on"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_theme","kind":"act","impl":"imperative","description":"Light or dark theme. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Set theme","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"theme":{"type":"string","enum":["light","dark"]}},"required":["theme"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_palette","kind":"act","impl":"imperative","description":"Colour palette: default, sumi, kinari, tadelakt, sang, snow, mumbai. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.","title":"Set palette","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"palette":{"type":"string","enum":["default","sumi","kinari","tadelakt","sang","snow","mumbai"]}},"required":["palette"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_board","kind":"transact","impl":"imperative","description":"Delete a board and its file, and its cloud copy when synced. Cannot be undone. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete board","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["board_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_column","kind":"transact","impl":"imperative","description":"Delete a column and every card in it. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete column","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"column_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["column_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_card","kind":"transact","impl":"imperative","description":"Delete a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete card","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["card_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove_checklist_item","kind":"act","impl":"imperative","description":"Remove one checklist item from a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Remove checklist item","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"item_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["card_id","item_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_comment","kind":"transact","impl":"imperative","description":"Delete one comment from a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete comment","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"comment_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["card_id","comment_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove_attachment","kind":"act","impl":"imperative","description":"Remove an embedded file from a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Remove attachment","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"card_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"},"attachment_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["card_id","attachment_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_label","kind":"transact","impl":"imperative","description":"Delete a label and take it off every card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete label","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"label_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["label_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_member","kind":"transact","impl":"imperative","description":"Remove a member from a board and from every card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete member","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"member_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$"}},"required":["member_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"restore_snapshot","kind":"act","impl":"imperative","description":"Replace a board with a snapshot of it. A safety snapshot is taken first. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Restore snapshot","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"board_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","description":"board to act on; default: the open board"},"filename":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$","description":"filename from list_snapshots"}},"required":["filename"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_snapshot","kind":"transact","impl":"imperative","description":"Delete a saved snapshot. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Delete snapshot","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"filename":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$","description":"filename from list_snapshots"}},"required":["filename"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"replace_all_boards","kind":"transact","impl":"imperative","description":"Delete every board in the library and import a KanZen export in their place. Cannot be undone. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.","title":"Replace all boards","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"data":{"type":["object","string"],"description":"a KanZen export: one board object, {boards:{...}}, or the same as a JSON string"}},"required":["data"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/kanzen.naklitechie.com.png","apiSurface":"spec","toolCount":60}}