Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.inlace.co/llms.txt

Use this file to discover all available pages before exploring further.

Use Lace with your coding agent

Connect Lace to Claude Code, Cursor, or Codex so your coding agent can read approved decisions and ship the fix — no copy-pasting required.
Lace surfaces adoption signals as nudges. When you approve a nudge it becomes a decision — a scoped change request with evidence, screenshots, and a suggested fix. The MCP server lets your coding agent pull those decisions, see exactly what needs to change, and write the code.
Claude Code querying Lace MCP for approved decisions

Get started

Run the install command for your coding tool:
npx @lace/mcp install claude
Start a new Claude Code session and say “List Lace decisions”.
The MCP server only works while the Lace desktop app is open and you’re signed in.

How it works

1

Lace surfaces a nudge

The interaction graph detects an adoption signal and shows it as an insight card.
2

You approve

The nudge becomes a persistent decision tied to the UI area it references.
3

Your agent queries Lace

It calls list_decisions, picks one, then calls apply_decision to get screenshots, targeting, and step-by-step instructions.
4

The agent ships the change

It writes the code change and you review the diff.

Technical reference

MCP server

The Lace MCP server is registered under the name lace and exposes three tools:

list_decisions

Returns all approved product decisions as a summary list. Parameters: none Returns:
FieldTypeDescription
idstringUnique decision identifier
headlinestringMain decision headline
insightHeadlinestring | nullThe specific insight that was approved
elementEidstring | nullElement ID within the UI
appNamestring | nullApplication where the decision applies
approvedAtstringISO timestamp of approval

get_decision

Returns full details for a single decision — the card, element targeting, bounding box, and inline screenshots. Use this for browsing and inspecting decisions. Parameters:
ParameterTypeDescription
idstringDecision ID from list_decisions
Returns:
FieldTypeDescription
idstringDecision identifier
cardobjectDecision card with headline, body, evidence, and insights
insightIndexnumberWhich insight was approved (index into card.insights)
elementEidstring | nullTarget element ID
bboxarray | nullNormalized bounding box [left, top, right, bottom] in 0-1 coordinates
screenobject{appName, windowTitle, shotId}
approvedAtstringISO timestamp
Screenshots (raw and annotated) are returned as inline JPEG images when available.

apply_decision

Returns everything needed to implement a decision: screenshots, the decision card, element targeting, and step-by-step implementation instructions. Call this instead of get_decision when your agent is implementing a change. Parameters:
ParameterTypeDescription
idstringDecision ID from list_decisions
Returns:
  • Annotated screenshot (JPEG, when available)
  • Raw screenshot (JPEG)
  • Implementation prompt with:
    • Decision card (headline, approved insight, suggested fix, evidence)
    • Target element (element ID, bounding box, screen info)
    • Step-by-step instructions to locate the element and implement the fix
    • Constraints on what not to modify

Config file locations

ToolConfig file
Claude Code~/.claude/settings.json
Cursor~/.cursor/mcp.json
Codex CLI~/.codex/config.toml

Troubleshooting

The Lace desktop app must be open and signed in. Open the app and retry.
You need to approve nudges first. Open Lace, review the insight cards, and approve at least one.
Restart your coding tool fully (quit and reopen), then confirm the Lace server appears in your MCP settings.
Screenshots are stored locally alongside the Lace app data. If they were deleted or the app was reinstalled, the decision will still return card and targeting data but without images.