← Back to Docs

AI Agent Tools

Reference

AI Agent Tools

The Priiism AI agent has access to 94 specialized tools that let it manage your entire project lifecycle. You can trigger any of these by asking the agent in natural language.

Deployment Tools

ToolWhat It DoesParameters
priiism_deploy_webDeploys the project’s web/static target to managed web hosting. Use when the user asks to publish/ship the site after the app builds. Sends the local viiibin.config.json when present; otherwise the platform uses the config saved via config_set or synthesizes a web target, so a missing local file never blocks the deploy. This is a governed side-effecting action that creates a deployment record and starts an async build. Returns { deployment: { id, status (‘success''building'
priiism_deploy_statusLists recent deployments for this project, newest first (limit default 5, max 20). Use when checking whether a deploy succeeded or reviewing deploy history. Returns { deployments: [{ id, platform, provider, status, buildProgress, productionUrl, errorMessage, createdAt, completedAt }] }; returns an empty array when the project has never deployed.limit
priiism_deploy_logsFetches build logs for one deployment (from durable storage, then the database, then the error message). Use deploy_status first to find the deploymentId, then call this to diagnose a failed or completed build. Returns { logs: stringstructured-json } for finished deploys; returns 202 { status:‘in_progress’, deploymentStatus, buildProgress } while still building, 404 if the deployment or logs are not found.
priiism_deploy_cancelCancels an in-progress deployment (only when its status is ‘queued’ or ‘building’). Use to stop a bad or stuck build. This mutates the deployment record to ‘cancelled’ and best-effort cancels the underlying hosting build. Returns { success: true, message, id, status:‘cancelled’ }; returns 400 if the deployment is already terminal, 404 if not found.deploymentId (required)
priiism_deploy_rollbackWRITE — rolls the project’s live web deployment back to a prior successful deployment id. Idempotent; rolling back to the current deployment twice is a no-op. Use to revert a bad deploy. Returns { deploymentId, status:‘rolled_back’ }. Errors if deploymentId is missing or not found.deploymentId (required)

Database Tools

ToolWhat It DoesParameters
priiism_db_queryExecutes a SQL statement against the project’s own managed SQL database; supports SELECT/INSERT/UPDATE/DELETE/DDL but is intended read-first — use params[] for user values and expect writes to persist. Rows are capped at 1000. Use after db_provision. Returns { success, results:[…rows], meta:{changes,duration,rows_read,rows_written}, truncated?, maxRows? }; 400 if no database is provisioned or SQL invalid, 500 on execution error.sql (required), params
priiism_db_schemaIntrospects the project’s managed SQL database via PRAGMA and returns tables with column definitions. Use to discover tables/columns before db_query; pass a table name for one table or omit for all. Requires a provisioned database. Returns { tables:[{ name, columns:[{ name, type, notnull, pk, dflt_value }] }] }; 400 if no database provisioned, 404 if a named table does not exist, 500 on error.table
priiism_db_provisionProvisions the project’s managed SQL database (idempotent — returns the existing one if already present, re-provisions if the stored id was deleted). Call once before db_query/db_schema. Returns { provisioned:true, alreadyExisted, databaseId, databaseName } (201 when newly created); 400 for missing project id, 404 if project not found, 500 if the database service is not configured or provisioning fails.None

Environment Variable Tools

ToolWhat It DoesParameters
priiism_env_listLists all environment variables for the project with secret values masked. Use when inspecting which env vars exist and their environment/secret status before setting or deploying. Returns { envVars: [{ id, key, value (masked), isSecret, environment, source }] }; returns an empty array when none are set. Never returns decrypted secret values.None
priiism_env_setCreates an environment variable for the project (key must be SCREAMING_SNAKE_CASE matching /^[A-Z][A-Z0-9_]*$/); secrets are AES-encrypted at rest. Use when the app needs a new config value or API key. This writes durable state. Returns { envVar: { id, key, value (masked), isSecret, environment } }; returns 409 if the key already exists for that environment (this creates, it does not overwrite), or a validation error on a bad key.key (required), value (required), isSecret, environment (development
priiism_env_deleteDeletes an environment variable by key for a given environment (default ‘development’). Use when removing a stale or wrong config value. This mutates durable state and is not reversible. Returns { deleted: true, key, environment }; returns 404 if no variable with that key exists in that environment.key (required), environment (development

GitHub Tools

ToolWhat It DoesParameters
priiism_github_statusReports the GitHub connection state for this project: whether GitHub is connected (personal OAuth or App installation) and which repo is linked. Use before push/pull/issue/PR operations to confirm connectivity. Returns { isGitHubConnected, githubUsername, appInstalled, linkedRepo: { repoFullName, repoUrl, defaultBranch, lastSyncedAt, lastPushedAt }null }.
priiism_github_pushCommits and pushes the current project files to the linked GitHub repo (SEOS worker sessions source files from their task sandbox; others send collected local files). Use to persist changes to GitHub. This writes a real commit; worker sessions may push only to their own seos/worker- branch, never the default branch. Returns { success, filesCount, deletionsCount, commitSha, branch, commitMessage }; errors if no repo is linked, no files exist, or auth/permission fails.commitMessage, branch
priiism_github_pullPulls the latest files from the linked GitHub repo and overwrites the local project files with them. Use to sync the project to the repo’s current state before editing. This overwrites local files. Returns { success, files: [{ path, content }], filesCount, commitSha, branch, localFilesWritten }; errors if no repo is linked or GitHub auth fails.branch
priiism_github_issues_listLists GitHub issues for the linked repo (or a repo you name), pull requests excluded, with state/label/assignee/milestone filters and pagination. Use to see open work or triage the board. Returns { issues: [{ number, title, htmlUrl, state, body, labels[{name,color}], assignees[login], milestone{number,title}null, createdAt, updatedAt, closedAt, author }], pagination:{page,perPage,hasMore}, rateLimit:{remaining,limit} }.
priiism_github_issue_createCreates a GitHub issue on the linked repo (or a repo you name) and also enqueues it onto the delivery loop’s ingest lane. Use to file new work; a ‘blocking’/‘P0’ label raises its queue priority. This creates real GitHub state. Returns { issue: { number, title, htmlUrl, state, body, labels, assignees, createdAt, author }, delivery: { enqueued, priority, deduped } }.title (required), body, labels, assignees, milestone, repo
priiism_github_issue_updateUpdates an existing GitHub issue (title, body, state open/close, labels, assignees, milestone). Use to edit, reassign, relabel, or close an issue; labels/assignees REPLACE the existing sets. This mutates real GitHub state. Returns { issue: { number, title, htmlUrl, state, body, labels, assignees, milestonenull, createdAt, updatedAt, closedAt, author } }; errors if no update fields are provided.
priiism_github_issue_commentAdds a comment to a GitHub issue or pull request (both share the issue comment endpoint). Use to leave notes, status updates, or review remarks. This posts public content to GitHub. Returns { comment: { id, body, htmlUrl, createdAt, author } }; errors if body is empty or the issue/PR is not found.issue_number (required), body (required), repo
priiism_github_pr_listLists pull requests for the linked repo (or a repo you name), with state/head/base filters and pagination. Use to review open PRs, their merge status, and branches. Returns { pulls: [{ number, title, htmlUrl, state, body, head{ref,sha,label}, base{ref,sha,label}, draft, merged, mergeable, labels, assignees, createdAt, updatedAt, closedAt, mergedAt, author }], pagination, rateLimit }.repo, state (open
priiism_github_pr_createCreates a pull request from head into base on the linked repo (or a repo you name); the head branch must already be pushed. Use after github_push to open a PR for review. A linked issue number auto-adds a ‘Closes #n’ keyword to the body. This creates real GitHub state; merging stays human/governance-gated. Returns { pull: { number, title, htmlUrl, state, body, head{ref,sha,label}, base{ref,sha,label}, draft, createdAt, author } }.title (required), body, head (required), base (required), draft, repo
priiism_github_pr_mergeMerges a pull request (merge/squash/rebase); the PR must be mergeable with required checks/approvals satisfied. DANGEROUS/governed — merging ships code and is normally human-gated, so only merge when explicitly authorized. On success also records a pr_merges ledger row. Returns { merged, sha, message }; returns 405 if the PR is not mergeable, 409 on merge conflict.pull_number (required), merge_method (merge
priiism_github_pr_reviewSubmits a review on a pull request (APPROVE, REQUEST_CHANGES, or COMMENT; defaults to COMMENT). Use to record a review verdict on a PR; body is required for REQUEST_CHANGES. If GitHub rejects APPROVE/REQUEST_CHANGES on the author’s own PR (422), it falls back to a COMMENT so the text still lands. Returns { review: { id, state, htmlUrl, body, submittedAt, author } }.pull_number (required), body, event (APPROVE
priiism_github_repos_listLists the GitHub repositories accessible to the connected user (no linked project repo required), with ownership/sort filters and pagination. Use to discover or pick a repo to link or target. Returns { repos: [{ fullName, htmlUrl, description, private, language, defaultBranch, pushedAt, updatedAt, stars, fork, owner }], pagination, rateLimit }; errors if GitHub is not connected.type (all
priiism_github_branches_listLists branches for the linked repo (or a repo you name), with pagination. Use to see available branches before creating a PR or pushing. Returns { branches: [{ name, commitSha, protected }], pagination:{page,perPage,hasMore}, rateLimit:{remaining,limit} }.repo, per_page, page
priiism_github_searchSearches GitHub code or issues (q required; type ‘code’ or ‘issues’, default ‘code’). Code search auto-scopes to the user’s repos unless the query has a ‘repo:’ qualifier. Use to find files or issues by keyword. Returns { results:[…], totalCount, pagination, rateLimit }: code results have { name, path, sha, htmlUrl, repository{fullName,htmlUrl}, score }; issue results have { number, title, htmlUrl, state, body, labels, createdAt, updatedAt, author, repository, isPullRequest }. Errors if GitHub is not connected.q (required), type (code
priiism_github_milestones_listLists milestones for the linked repo (or a repo you name), with state/sort/direction filters and pagination. Use to see milestone progress and issue counts. Returns { milestones: [{ number, title, description, state, openIssues, closedIssues, dueOn, htmlUrl }], pagination:{page,perPage,hasMore}, rateLimit:{remaining,limit} }.repo, state (open
priiism_github_milestone_createCreates a milestone on the linked repo (or a repo you name) to group issues/PRs for tracking. Use when organizing a body of work into a deliverable. This creates real GitHub state. Returns { milestone: { number, title, description, state, htmlUrl } }; errors if title is missing.title (required), description, due_on, state (open
priiism_github_milestone_updateUpdates an existing GitHub milestone (title, description, due date, or open/closed state) on the project’s linked repo or an explicit owner/repo. Use when reprioritizing, renaming, rescheduling, or closing a milestone. Returns { milestone: { number, title, description, state, openIssues, closedIssues, dueOn, htmlUrl } }; 400 if no update fields, 404 if the milestone/repo is missing, 401/403 on GitHub auth failure.milestone_number (required), title, description, due_on, state (open
priiism_github_labels_listLists labels for the project’s linked repo (or an explicit owner/repo), paginated. Use before creating a label or applying labels to issues/PRs to see what already exists. Returns { labels: [{ name, color, description }], pagination: { page, perPage, hasMore }, rateLimit: { remaining, limit } }; empty labels array if the repo has none, 400/401/403/404 on repo-resolution or GitHub auth failure.repo, per_page, page
priiism_github_label_createCreates a new label on the project’s linked repo (or an explicit owner/repo). Write action against GitHub. Use when a needed label does not exist (check github_labels_list first). Returns { label: { name, color, description } }; 400 if name is missing, 422 if the label already exists, 401/403/404 on GitHub auth or repo-resolution failure.name (required), color, description, repo

Project Tools

ToolWhat It DoesParameters
priiism_container_statusReports the project’s cloud sandbox status. Use before running/previewing to check whether the sandbox and dev server are live. Returns { status (‘ready''starting'
priiism_preview_urlGets the live preview URL for the running dev server. Use when the user wants to view the app in the browser. Returns { previewUrl (branded priiism.ai origin, or null while starting/no sandbox), ready (bool), status (‘ready''starting'
priiism_project_infoGets project metadata. Use when you need the project’s name, slug, status, template, hosting subdomain, or timestamps. Returns { project: { id, name, slug, description, status, templateId, cfProjectName, cfPagesSubdomain, lastWebDeployedAt, hasIdentity, createdAt, updatedAt } }; returns 404 if the project does not exist.None
priiism_project_state_readReads the whole governed state of one project in a single read-only call. Use to answer ‘what is the state of X’ rather than guessing. Pass section for one slice or omit for an aggregate ‘overview’ with counts. Returns { section, …one of: securitycompliance
priiism_govenant_charter_readReads the GOVERNED TEAM on this project: every delivery role’s charter (the wall its agent runs inside), its owned levers, its duty roster, whether the team is armed, and the project’s spend against its ceiling — plus the customer’s own CUSTOM DOMAIN ROLES (#2447), listed apart because they are a different org. Read this BEFORE proposing any governance change. Requires the govenant:read scope. Returns { projectId, arming, budget, roles: [ { roleKey, persona, reportsTo, tier, displayName, charter, ownedLevers[], enabled, humanLocked, duties[] } ], domainRoles: [ { roleKey, displayName, charter, enabled, humanLocked, managedBy (‘declaration''api’), duties[] } ] }.
priiism_govenant_charter_writeRewrites one role’s CHARTER — the remit that becomes that role’s entire system prompt, and so the boundary of what its agent may do. Say what the role is for AND what it must never do; under 40 characters is refused. A charter a human PINNED is refused with human_locked and never overwritten — that refusal is the lock working, not an error to route around. A lower_snake_case key outside the engineering roster is a CUSTOM DOMAIN ROLE (#2447): the first write CREATES it (charter required, optional displayName), later writes edit it, and deploys never disable API-created ones. DANGEROUS: requires the govenant:configure scope, off by default. Returns { projectId, role }.roleKey (required), charter, ownedLevers, enabled, displayName
priiism_govenant_team_armArms or STOPS the governed team on this project. Arming seeds the project’s duty roster and lets due duties act; it is REFUSED (402) when the project or its org is at a budget line, because a team that would refuse every duty is not an armed team. Stopping takes the flags down AND stops every in-flight autonomous run — it is never budget-gated, and it reports any run it could not reach so a partial stop is visible. DANGEROUS: requires the govenant:run scope, which is off by default. Returns { projectId, state, budget, rosterInserted } when arming, or { projectId, state, runsStopped[], runsFailed[] } when stopping.enabled (required)
priiism_delivery_triggerReleases the project’s autonomous delivery loop to run its queued work, and optionally enqueues+prioritizes a GitHub issue first. Use AFTER you have investigated and filed the work, instead of asking a human to press a button. It does NOT merge, deploy, write code, or arm the project (arming is a human-only lever); merges stay human-gated. Returns { armed, budget: { ok, decision, reason, project, org }, enqueued: { issueNumber, priority, deduped }null, queuedItems, willRun, willRunNextTickWithinMin, note }.
priiism_prototype_reconcileReconciles the frozen clickable prototype, the GitHub issues, and the live deployed app against the same requirements/design. Read-only. Use to answer whether the prototype covers scope, which screen maps to which milestone, or whether the shipped app matches what was approved. Pass target ‘prototype''issues'
priiism_comprehension_readReads this project’s PRODUCT COMPREHENSION: the approved product brief (what the product IS — one-liner, core jobs-to-be-done, personas, the core screens that must lead, core entities, anti-scope), the current-state model (what exists today), and the delta (present/partial/divergent/missing — the work to reach the target). Read-only. Use FIRST to ground reasoning, planning, review, or code changes in what the humans want built, so you never treat plumbing/admin/billing as the product. Returns { brief, currentState, delta, isApproved } — fields are null when nothing is comprehended yet (never fabricated).None
priiism_config_getReads and validates the project’s viiibin.config.json (required for deployment). Use before deploy_web to confirm a valid web/static target exists. Returns { exists, valid, config } when present and parseable; { exists:false, error, schema, example } when missing; { exists:true, valid:false, error, raw } when present but invalid JSON/schema.None
priiism_config_setWrites/overwrites the project’s viiibin.config.json in durable storage (required for deploys); the full config object is validated before write and persisted verbatim. Use when creating or changing the project’s deploy targets. Returns { success: true, config } (the parsed/synthesized config); 400 { error: ‘Invalid config’, details } if it fails schema validation, 400 if config is missing/not an object, 500 on write failure.config (required)
priiism_file_readReads a single project file’s text content from durable storage (archive-aware, no running sandbox needed). Use to inspect a known file by its project-root-relative path. Path traversal and absolute paths are rejected. Returns { path, content }; 400 for an invalid path, 404 { error:‘File not found’, path } if it does not exist, 500 on read error.path (required)
priiism_file_writeCreates or overwrites a single project file in durable storage and tracks it in the project. Write action; overwrites silently. Content is capped at 5MB and the path must be project-root-relative (no ’..’/absolute). Use to persist generated or edited files. Returns { path, written:true }; 400 for invalid path or missing/oversized content, 500 on write error.path (required), content (required)
priiism_file_listLists all project file paths (project-root-relative) from durable storage, optionally filtered to a path prefix. Use to explore project structure without a sandbox. Returns { files: [path, …] }; empty array when the project has no files (or none match the prefix), 500 on error.prefix
priiism_file_deleteDeletes a single project file from durable storage by its project-root-relative path. Write/destructive action. Use to remove a file you know exists; path traversal/absolute paths are rejected. Returns { path, deleted:true }; 400 for an invalid path, 404 { error:‘File not found’, path } if it does not exist, 500 on delete error.path (required)
priiism_project_listLists all non-deleted projects in the authenticated organization (org derived from the token, never passed). Use to enumerate the workspace’s projects. Returns { projects: [{ id, name, slug, description, status, templateId, createdAt, updatedAt }] }; empty array if the org has none, 500 on error.None
priiism_project_createCreates a new project in the authenticated organization (org from the token). Write action. Provide a name (1-100 chars); optionally description, a templateId to scaffold from (‘empty’/omitted = blank), and configValues for that template’s variables. Returns 201 { project, fileCount? }; 400 for an invalid name or invalid template/validation error, 500 { error, message, stage } if template instantiation fails.name (required), description, templateId, configValues
priiism_project_updateUpdates an existing project’s name and/or description (identified by projectId, which must belong to the authenticated org). Write action. Use to rename or re-describe a project; at least one field is required. Returns { project } with the updated record; 400 if projectId is missing or no updatable field is given, 404 if the project is not in the caller’s org.projectId (required), name, description
priiism_template_listLists the active project templates available to the authenticated organization. Use to discover a templateId before project_create or template_instantiate. Returns { templates: [{ id, name, description, category, isFeatured }] }; empty array if none are active, 500 on error.None
priiism_template_instantiateCreates a new project in the authenticated org from a template. Write action. Provide templateId and projectName (1-100 chars); optionally configValues for the template’s variables. Use to scaffold from a known template. Returns 201 { project, fileCount? }; 400 for missing/invalid templateId or projectName, 422 { error, message, stage } if config/instantiation fails.templateId (required), projectName (required), configValues
priiism_actions_listLists the project’s AI-action approval-queue entries, defaulting to status ‘pending’. Use to see what agent actions await human approval before action_approve/reject/batch. Returns { actions: [{ id, toolName, description, impact, category, status, batchId, … }] }; empty array if none match, 400 on an invalid status filter, 500 on error.status (pending
priiism_action_approveApproves one pending AI action by id, optionally executing it immediately (execute:true) — execution runs the underlying tool, a real effect. Use to authorize a queued action. Returns { success:true, actionId, decision:‘approve’, executed, result } (result is the execution outcome or null); 400 if the action is not currently pending, 404 if not found or not in this project.actionId (required), execute
priiism_action_rejectRejects one pending AI action by id, with an optional reason; no effect is executed. Use to decline a queued agent action. Returns { success:true, actionId, decision:‘reject’, executed:false, result:null }; 400 if the action is not currently pending, 404 if not found or not in this project, 500 on error.actionId (required), reason
priiism_action_batchApproves or rejects every still-pending action in a batch by batchId (only status=‘pending’ rows are resolved). Bulk write; approval does not auto-execute here. Use to resolve a grouped set of agent actions at once. Returns { success:true, batchId, decision, resolvedCount } (resolvedCount 0 on a retry after already resolved); 404 if batch not found, 403 if it belongs to another project.batchId (required), decision (required; approve
priiism_job_estimateEstimates the credit + dollar cost of delivering one or more GitHub milestones — read-only, queues nothing. Provide milestoneUrl, or repo (‘owner/name’) plus milestones[] (or selectAll for every open milestone). Use before committing budget to a delivery job. Returns { milestones:[{ number, title, issueCount, estimate:{ totalCredits, totalUsd, confidence, perIssue } }], aggregate:{ totalCredits, totalUsd, milestoneCount, issueCount, confidence } }; 400 for bad input or no open issues, 404/401 if GitHub is not connected/expired.milestoneUrl, repo, milestones, selectAll
priiism_job_executeReleases a queued (or paused) delivery job for pickup by the autonomous SEOS cron runner — this STARTS real autonomous work: each work item runs in its own sandbox and ends in a real PR. It does NOT run synchronously; poll job_status. Returns 202 { status:‘queued’, jobId, queuedItems, driver:‘seos-cron’, message }; 400 if the job is not queued/paused or has no queued items, 404 if not found, 503 if the delivery runtime is not configured.jobId (required)
priiism_job_statusReads one delivery job plus its per-issue work items (ordered by execution order). Read-only. Use to poll progress after job_execute. Returns { job, items:[…] } where job is the agent_jobs row and items are its agent_job_items; 404 if the job is not found or not in this project, 400 for missing ids, 500 on error.jobId (required)
priiism_job_pausePauses a currently-running delivery job so the cron dequeue skips it. Use to halt in-progress autonomous work. Returns { status:‘paused’, jobId }; 400 if the job is not currently running, 404 if not found or not in this project, 500 on error.jobId (required)
priiism_job_resumeResumes a paused delivery job (sets it back to running so the cron picks it up), optionally raising its cost limit (newCostLimit, positive number-as-string) or token limit (newTokensLimit, positive integer). Use to continue paused autonomous work, possibly with more budget. Returns { status:‘running’, jobId, costLimit?, tokensLimit? }; 400 if the job is not paused or a new limit is invalid, 404 if not found.jobId (required), newCostLimit, newTokensLimit
priiism_plan_proposeKicks off a planner run against the project’s latest succeeded knowledge build, handing off to the PLAN_PROPOSAL durable object; creates a pending proposal (does not push to GitHub). Use to generate a phased milestone/issue plan; optionally override the model. Returns 202 { proposalId, status:‘pending’, knowledgeGraphId }; 409 { error, inFlightProposalId, inFlightStatus } if one is already running, 422 if no succeeded knowledge build exists, 500 if the planner/DO is not configured.model
priiism_plan_dryrunReconcile-preview a succeeded plan proposal against the linked GitHub repo WITHOUT writing anything. Use when you want to see what plan_push would do before applying it. Returns { proposalId, cached, dryRun: { strategy, decisions, milestoneJudgements, issueJudgements, counts:{milestonesAttached,milestonesCreated,milestonesSuffixed,milestonesSkipped,issuesCreated,issuesSkippedAsDuplicate}, repoFullName, computedAt }, judgementCostUsd, repoFullName }. Read-only. Errors if proposalId is missing or not succeeded.proposalId (required)
priiism_plan_pushWRITE — applies a succeeded plan proposal to the linked GitHub repo, creating/attaching milestones and issues; supports perMilestoneOverrides (createattach
priiism_proposals_listList this project’s plan-proposal history, newest first, paginated. Use to find a proposalId for plan_dryrun/plan_push/autonomy_start, or to review past planner runs. Returns { proposals: [serialized proposal objects], nextCursor }. Read-only; pass limit and an opaque cursor to page. Empty history returns an empty proposals array and no nextCursor.limit, cursor
priiism_security_scanWRITE (compute) — runs a fresh security scan over the project’s current files: static analysis (SAST) plus a dependency-vulnerability audit, persisting a scan record. Use when you need an up-to-date security posture; each call runs a new scan. Returns { scanId, status:‘completed’, score, findingsCount, criticalCount, highCount }. Then call security_findings for details.None
priiism_security_findingsList security findings from the most recent scans, newest first. Use after security_scan (or to review existing findings) to inspect specific vulnerabilities. Optionally filter by status (openresolved
priiism_domain_bindWRITE — binds an already-verified custom domain to the project’s live web hosting. Use only after domain_verify reports verified; binding an unverified domain returns 409. Returns the updated domain record { id, projectId, domain, status, verificationType, provider, cfDomainId, sslStatus, apxVhostId, lastError, createdAt, updatedAt, … }. Errors if domainId is missing/not found.domainId (required)
priiism_domain_verifyCheck whether a custom domain’s ownership DNS (TXT/CNAME) record is in place and, if so, transition it to verified. Use before domain_bind. Returns { verified: boolean, domain: <domain record with status/verificationType/verificationToken/lastError/…> }. Errors if domainId is missing/not found; a still-missing record returns verified:false.domainId (required)
priiism_domain_statusPoll the live status of every custom domain on the project, refreshing each from the hosting/DNS provider, and return the current list. Use to check DNS/SSL/binding progress. Returns { domains: [ { id, domain, status, verificationType, provider, sslStatus, apxVhostId, lastError, createdAt, updatedAt } ] }. Read-only; no domains yields domains:[].None
priiism_identity_getRead the project’s managed identity-provider (Auth0) configuration: provider, provisioning status, callback URLs, allowed logout URLs, and web origins. Use to inspect current auth wiring. Returns { configured, provider, status?, auth0Domain, auth0ClientId, callbackUrls[], allowedLogoutUrls[], webOrigins[], lastError, createdAt, updatedAt }; when unconfigured returns { configured:false, provider:‘none’ }. Never returns the client secret. Read-only.None
priiism_identity_configureWRITE — turns on login/auth for this project by AUTO-PROVISIONING a managed Auth0 application in Priiism’s own tenant and wiring it in. Requires NO input: the user does NOT need an Auth0 account, tenant, credentials, or URLs — call it with no arguments to set up auth. Callback + web-origin URLs for the preview and deployed app are configured automatically, and VITE_AUTH0_* env vars are written for you. NEVER ask the user to bring their own tenant or provide callback/web-origin URLs — just call this tool. Upserts; safe to call repeatedly. Returns configured, provider, status, auth0Domain, auth0ClientId, callbackUrls[], webOrigins[], lastError, timestamps. Never returns the client secret.provider, callbackUrls, webOrigins, allowedLogoutUrls
priiism_conversations_listList the project’s chat conversations, newest first. Use to find conversation ids or review recent agent/user sessions. Optionally pass limit (default 20, max 100). Returns { conversations: [ { id, titlenull, createdAt
priiism_org_members_listList the members of the API key’s organization. Use to see who belongs to the org and their roles. Returns { members: [ { userId, email, namenull, role } ] }. Read-only; the org is derived server-side from the token — you do not pass it. Returns 403 insufficient_scope without org:read.
priiism_autonomy_startDANGEROUS WRITE — starts the autonomous multi-step agent loop for the latest succeeded plan proposal (or explicit proposalId); SPENDS credits and opens real pull requests. Requires the opt-in autonomy:run scope (off by default, never in a role bundle). Use only to deliberately kick off autonomous delivery. Returns { runId, status:‘running’, proposalId, stepMode }. Returns 409 with the existing runId if a run is already in progress; 422 if no succeeded proposal or no linked repo.proposalId, stepMode
priiism_autonomy_statusRead the status of an autonomous run: the plan_autonomy_runs row plus the most recent node runs for its proposal. Use to monitor a run started by autonomy_start. Returns { run: { id, projectId, proposalId, status, startedAt, finishedAt, totalCostUsd, stepMode, error }, recentNodeRuns: [ { id, nodeId, status, createdAt, output, costUsd, error } ] }. Read-only; requires autonomy:read. Errors if runId is missing.runId (required)
priiism_seos_roles_listList the project’s SEOS engineering-role charters (worker/reviewer/release/lead tiers and their owned governance levers). Use to understand the autonomous org chart and lever ownership. Returns { roles: [ { id, projectId, orgId, roleKey, tier, displayName, charter, ownedLevers[], byline?, enabled, humanLocked, updatedAt } ] }. Read-only; requires autonomy:read. Seeds defaults on first read.None
priiism_container_execDANGEROUS WRITE — runs an arbitrary shell command in the project’s active cloud sandbox. Requires the opt-in container:exec scope (off by default, never in a role bundle). The command is checked against the platform allowlist BEFORE running; blocked commands (e.g. rm -rf /) never execute. Use only when a real shell is needed. Returns { stdout, stderr, exitCode } with each stream truncated at 10,000 chars. 400 if blocked, 404 if no active sandbox, 502 if exec fails.command (required), timeout, workdir
priiism_code_searchRAG semantic search over the whole project’s indexed codebase, returning the most relevant chunks. Requires the opt-in code:search scope (off by default, never in a role bundle). Use to find where something lives across the code by meaning, not exact text. Returns { results: [ { filePath, content, score, startLine, endLine } ], totalTokens }. Read-only; returns 404 if the project has no RAG index.query (required), topK, minScore
priiism_supabase_queryRun a READ-ONLY SQL query against the project’s linked Supabase (Postgres) DB and return rows (truncated at 1000). Only read statements allowed — SELECT/WITH/TABLE/VALUES/SHOW/EXPLAIN (no ANALYZE); any INSERT/UPDATE/DELETE/DDL or multiple statements is rejected server-side. Use supabase_schema first to discover tables. Returns { environment, projectRef, rowCount, results[], truncated?, maxRows? }. Returns 409 { hasSupabase:false } when no Supabase connection exists.sql (required), environment (development
priiism_supabase_schemaGet the schema (tables + columns with type, nullability, default) of the project’s linked Supabase DB, read from information_schema. Use to discover tables/columns before supabase_query. Optionally narrow by schema (default ‘public’) and/or a single table. Returns { environment, projectRef, schema, tables: [ { name, columns: [ { name, type, nullable, default } ] } ] }. Read-only; returns 409 { hasSupabase:false } when no Supabase connection exists.schema, table, environment (development
priiism_supabase_settingsRead the linked Supabase project’s identity and settings: status, region, name, project URL, link status, and Postgres config. Use to confirm the connection and inspect config. Never returns API keys or passwords. Returns { environment, projectRef, projectUrl, linkStatus, readOnly, project:{ id, ref, name, region, status }, postgresConfigAvailable, postgresConfig }. Read-only; returns 409 { hasSupabase:false } when no Supabase connection exists.environment (development
priiism_supabase_migrations_statusRead how many of the project’s repo migrations (supabase/migrations/*.sql) are applied to its bound Supabase DB and which remain pending. Use to check migration drift. Returns { environment, projectRef, total, applied, pending: [ ’_’ ] }. Read-only — does NOT apply migrations. Returns 409 { hasSupabase:false } when no Supabase connection exists.environment (development
priiism_supabase_logsQuery the linked Supabase project’s logs (the analytics endpoint the dashboard uses). Use to inspect database/edge activity. Without a log-query SQL only edge_logs are returned; without a time range the last minute is returned (range must be <=24h). Returns { environment, projectRef, result:[log rows] }. Read-only; returns 409 { hasSupabase:false } when no connection, or 502 if the org’s Supabase connection doesn’t allow analytics reads.sql, start, end, environment (development
priiism_logs_queryQuery and merge log streams across every layer of the project into one source-tagged, time-ordered list: deploy, container (dev-server), supabase, seos, and runtime (edge). Use source=‘all’ to fan out across available sources. Filter with since/until/severity/search/limit (default 100, max 500). Returns { entries:[{source,timestamp,severity,message,meta?}], sources:[{source,available,reason?,count}], limit }. Read-only, one-shot (not a live stream); an unwired source reports available:false, not an error.source (runtime
priiism_logs_tailReturn the most recent N log entries from a SINGLE source (deploy, container, supabase, seos, or runtime) — the tail, newest last. Use to peek at one stream’s latest activity. Pass limit (default 50, max 200). Returns { source, available, reason?, entries:[{source,timestamp,severity,message,meta?}] }. Read-only, a one-shot snapshot (NOT a live follow); an unwired source reports available:false with a reason rather than erroring.source (required; runtime
priiism_supabase_advisorsRead the linked Supabase project’s advisor findings (same checks as the dashboard Advisors page): security (e.g. missing RLS, exposed tables) or performance (e.g. unindexed FKs). Pass kind=‘security’ (default) or ‘performance’. Returns { environment, projectRef, kind, lints:[findings] }. Read-only; returns 409 { hasSupabase:false } when no connection, or 200 { available:false } if Supabase hasn’t enabled this experimental endpoint.kind (security
priiism_analytics_queryRead product-usage analytics from the DEPLOYED app — the event signal of how the live app is actually used. Use to reason about real usage and correlate with runtime errors. Filter by event, environment, and since/until (defaults last 7 days). Returns { range:{since,until}, totals:{events,aggregates}, topEvents:[{event,count,sessions}], topRoutes:[{route,count}], recentEvents:[{event,route,environment,count,hourBucket,lastSeenAt,sampleProperties,releaseCommit}] }. Counts are HOURLY-AGGREGATE rollups, not individual hits. Read-only.since, until, event, environment (development
priiism_extract_brand_from_urlExtracts a proposed design brand from a reference URL. Fetches the page HTML and its linked CSS bundle(s) and reads off a palette (shadcn HSL-channel tokens), fonts (display/body/mono), corner radius, a detected motion tier, and a one-line aesthetic direction. Read-only — it never changes the project. Best-effort: an unreachable site or one with no readable theme returns whatever could be derived (possibly little). Use this to bootstrap a brand from a real site the customer points at, THEN call design_brief_update to apply it. Returns { proposal: { design_tokens: { radius, fonts, light, dark }, color_intent, typographic_intent, motion_tier, aesthetic_direction, source_url } }.url (required)
priiism_design_brief_updateDeep-merges a proposed brand into the project’s design brief, saves it, and re-synthesizes the frozen design system (contrast-gated). Pass merge — the same shape extract_brand_from_url returns (design_tokens with radius/fonts/light/dark, plus optional color_intent/typographic_intent/motion_tier/aesthetic_direction). WRITE — governed by the design:write scope (only the Design Lead persona holds it). Returns the new design-system version on success, or the contrast-gate failure ({ ok: false, reason: 'contrast_floor', failures }) when the palette fails the accessibility floor — in which case NOTHING is written.merge (required)

Mobile Build Tools

ToolWhat It DoesParameters
priiism_signing_statusReports whether iOS and Android mobile signing credentials are configured for this project, without exposing secret values. Use before trigger_mobile_build to confirm a signed build is possible. Returns { ios: { configured, teamId?, bundleId?, buildType?, submitToTestflight? }, android: { configured, packageName?, buildType?, publishTrack? } } (extra fields present only when configured); 500 on internal error.None
priiism_trigger_mobile_buildTriggers a cloud mobile build (iOS or Android) via the CI pipeline, creating a deployment record and returning a build id to poll. Requires signing credentials for non-simulator iOS / non-debug Android; requires user confirmation before running. Use after config + signing are ready. Returns 202 { buildId, externalBuildId, status:‘queued’, platform, buildType }; 400 for bad config/no mobile target/missing signing, 409 { retryable:true } on a stale CI app, 500 if CI/storage not configured.platform (required; ios
priiism_mobile_build_statusPolls a mobile build’s status, live-syncing from the CI provider while in progress and returning cached data once complete. Use with the buildId from trigger_mobile_build. Returns { buildId, status (‘queued''building'
priiism_mobile_build_logsRetrieves a mobile build’s logs (from durable storage, the database, or the CI provider in fallback order). Use with the buildId from trigger_mobile_build to diagnose a build. Returns 200 { logs } for completed builds; 202 { status:‘in_progress’, buildStatus, buildProgress, message } while still building; 404 if the build or its logs are not found, 400 for missing ids, 500 on internal error.buildId (required)
priiism_signing_credentials_setWRITE (SECRETS) — creates or updates the project’s mobile signing credentials for one platform; pass platform ‘ios’ with App Store Connect key fields or ‘android’ with keystore fields. A second call for the same platform updates in place. Use before triggering signed mobile builds. Returns a MASKED summary — for iOS { id, name, ascIssuerIdMasked, ascKeyIdMasked, hasPrivateKey, hasCertPrivateKey, bundleId, buildType, teamId, submitToTestflight, … }; raw keys/keystores are never returned.platform (required), name (required), ascIssuerId, ascKeyId, ascPrivateKey, bundleId, keystoreBase64, keystorePassword, keyAlias, keyPassword, packageName, buildType

Code Tools (Built-in)

The agent also has standard coding tools:

ToolWhat It Does
readRead file contents
writeCreate or overwrite a file
editMake targeted edits to a file
bashRun shell commands in the sandbox
globFind files by pattern
grepSearch file contents

Example Prompts

Here are some prompts that trigger these tools:

  • “Deploy my app to production” → priiism_deploy_web
  • “Create a users table with name and email columns” → priiism_db_provision + priiism_db_query
  • “Push my changes to GitHub with message ‘Add login page’” → priiism_github_push
  • “Create an issue for the login bug” → priiism_github_issue_create
  • “Set API_KEY to sk-123 as a secret” → priiism_env_set
  • “Build the iOS app for TestFlight” → priiism_trigger_mobile_build
  • “What tables are in my database?” → priiism_db_schema