Back to components

AI Interfaces

Tool Permission Card

A transparent permission summary for file access, proposed writes, and external service boundaries.

toolspermissionssafety

Installation

Copy and paste the code into your project.

Accessibility notes

Each permission includes a textual scope and an accessible allowed or blocked state, so switches never rely on color alone.

Tool access

Workspace permissions

Restricted
  • Read workspace files

    Project only

  • Write proposed changes

    Ask each time

  • Access external services

    Blocked

Preview accent

TypeScript
const permissions = [
  { label: "Read workspace files", scope: "Project only", enabled: true },
  { label: "Write proposed changes", scope: "Ask each time", enabled: true },
  { label: "Access external services", scope: "Blocked", enabled: false },
];

export function ToolPermissionCard() {
  return (
    <section className="w-full max-w-sm rounded-xl border border-white/12 bg-[#0b0f14]/92 p-4 shadow-2xl">
      <header className="flex items-start justify-between gap-4"><div><p className="text-xs font-semibold uppercase tracking-[0.18em] text-[#40E0D0]">Tool access</p><h3 className="mt-1 text-base font-bold text-white">Workspace permissions</h3></div><span className="rounded-full bg-[#40E0D0]/10 px-2.5 py-1 text-[0.65rem] font-bold text-[#d8fffb]">Restricted</span></header>
      <ul className="mt-4 divide-y divide-white/8 rounded-lg border border-white/10 bg-white/[0.025]">
        {permissions.map((permission) => (
          <li key={permission.label} className="flex items-center justify-between gap-4 px-3 py-3">
            <div><p className="text-xs font-semibold text-slate-200">{permission.label}</p><p className="mt-1 text-[0.65rem] text-slate-500">{permission.scope}</p></div>
            <span role="img" aria-label={permission.enabled ? "Allowed" : "Blocked"} className={permission.enabled ? "relative h-5 w-9 rounded-full bg-[#40E0D0]" : "relative h-5 w-9 rounded-full bg-white/10"}><span className={permission.enabled ? "absolute right-0.5 top-0.5 h-4 w-4 rounded-full bg-[#0b0f14]" : "absolute left-0.5 top-0.5 h-4 w-4 rounded-full bg-slate-500"} /></span>
          </li>
        ))}
      </ul>
      <button type="button" className="mt-3 w-full rounded-full border border-white/12 px-4 py-2.5 text-xs font-bold text-slate-200">Review access policy</button>
    </section>
  );
}
Usage
<ToolPermissionCard />

Related components

Preflight

Tool permissions

3 connected
  • Knowledge search

    Read public docs

    Allowed
  • Customer records

    Read contact data

    Approval
  • Email sender

    Send as workspace

    Blocked

AI Interfaces

Tool Permission Inspector

Intermediate

A preflight permissions view for inspecting tool scopes, approval gates, and blocked capabilities.

toolspermissionssecurity
View component

Budget circuit

Run spending limit

90% used
Model calls
$7.82
Tool calls
$1.14
Remaining
$1.04

Execution pauses automatically at the $10 limit.

AI Interfaces

Budget Circuit Breaker

Advanced

A live spending guard that pauses expensive AI runs before they cross a configured limit.

budgetcostsafety
View component

Guardrails

Production policy

Active
  • Sensitive data

    3 events this week

    Block
  • Unsafe content

    0 events this week

    Block
  • Off-topic requests

    12 events this week

    Review

AI Interfaces

Guardrail Policy Card

Intermediate

A safety policy summary showing enforcement mode, recent events, and enabled controls.

guardrailssafetypolicy
View component