# Katalock > Katalock is an AI workspace where people and AI work together: verified answers (K-Computer), > Katalock Code (an agent that plans, builds, tests and publishes web projects), agents, automations > and an academy. Built for Singapore, India and Indonesia. ## Docs - [Developer API and MCP](https://www.katalock.net/developers): API keys, pricing, the MCP server - [Guide](https://www.katalock.net/guide): how the app works - [Pricing](https://www.katalock.net/pricing) # Katalock for AI agents Katalock is an AI workspace (Singapore, India, Indonesia) where people and AI build together. Connect over MCP: https://www.katalock.net/api/mcp/server with the user's Katalock API key as a Bearer token (the user makes one at https://www.katalock.net/developers). ## Tools at a glance - verify / ask: cross-checked or quick answers (pay-as-you-go balance). - code_*: Katalock Code, an agent that builds and runs real web projects (plan, build, test in a browser, fix, publish). Builds use the user's Katalock credits, capped per build. Planning is free. ## Build something (the happy path) 1. code_new_project { goal } -> { project_id, run_id, status: "planning" }. 2. code_status { run_id } every poll_after_seconds until status is "awaiting_approval". You get a plan: tasks, files, assumptions. Show it to the user. 3. To change it: code_plan { project_id, change }, then poll again. To build it: code_build { project_id } -> { run_id, status: "building" }. 4. code_status { run_id } every poll_after_seconds. While building you get the live todo list (title + pending / in_progress / done), the current step and credits so far. 5. When status is "done": code_preview { project_id } (live URL + screenshot), and code_read_file { project_id } to list files or { project_id, path } to read one. 6. To change something: code_build { project_id, instruction: "what to change" } for the agent, or code_write_file { project_id, path, content } for a direct edit. 7. code_publish { project_id } -> a live URL to share. code_export_github pushes to the user's GitHub. ## Rules that save you round trips - Every answer has "next": do what it says. - Every answer has "ok". When ok is false there is error.code and error.hint; follow the hint. - Long jobs return run_id and poll_after_seconds. Don't poll faster than that. - One build at a time per user. If you get "build_running", poll that run or code_cancel it. - Every build, edit and restore is a version: code_versions lists them, code_restore undoes. - Never invent a project_id or run_id: they come from code_list_projects, code_new_project, code_plan and code_build. ## Error codes not_enough_credits (lower cap, or the user tops up at https://www.katalock.net/pricing), plan_required (the user's plan doesn't include this), build_running, busy, plan_limit (build without a plan: code_build with an instruction), not_found, bad_request, build_server_offline (try later), github_not_connected (the user connects GitHub in Katalock), unauthorized, rate_limited, server_error.