# Cursor Flow

Realistic mouse that arcs along Bezier paths and clicks targets.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).

## Installation

<TabsTrigger value="cli">Command</TabsTrigger>
<TabsTrigger value="manual">Manual</TabsTrigger>

```bash
npx shadcn@latest add @framecn/cursor-flow
```

<Step>Copy and paste the following code into your project.</Step>

<Step>Update the import paths to match your project setup.</Step>

## Usage

```tsx
import { CursorFlow } from "@/components/framecn/cursor-flow";
```

```tsx
<CursorFlow />
```

## API Reference

### CursorFlow

| Prop               | Type               | Default             |
| ------------------ | ------------------ | ------------------- |
| `waypoints`        | `CursorWaypoint[]` | `DEFAULT_WAYPOINTS` |
| `cursorColor`      | `string`           | `"#fafafa"`         |
| `cursorSize`       | `number`           | `28`                |
| `segmentDuration`  | `number`           | `36`                |
| `background`       | `string`           | `"#0a0a0a"`         |
| `showTargets`      | `boolean`          | `true`              |
| `speed`            | `number`           | `1`                 |
| `fps`              | `number`           | `30`                |
| `durationInFrames` | `number`           | `180`               |
| `width`            | `number`           | `1280`              |
| `height`           | `number`           | `720`               |
| `className`        | `string`           | `-`                 |

## Notes

  The cursor follows per-segment cubic Bezier curves with perpendicular control
  points. The arc creates natural, realistic movement.

  Curves are computed inline to avoid pulling in external dependencies. Path
  math is handled internally.