oxyn

Arc Tasks: a loader for parallel tool calls

Each ring turns at its own pace; finished rings close and stop. A React loader for tool calls and subagents running in parallel.

Installation

Install with the shadcn CLI, or copy the component file. It only needs React.

npx shadcn@latest add https://oxyn.space/r/arc-tasks.json

Usage

Updates live with the parameters you set.

import { ArcTasks } from "@/components/arc-tasks";

export function Thinking() {
  return (
    <ArcTasks />
  );
}

Props

PropTypeDefaultDescription
linesnumber3Number of concentric rings.
cutsnumber3Cuts in each ring. The ring is split into this many equal arcs.
cutSpacingnumber30Angular width of each cut in degrees. 0 closes the rings.
lineSpacingnumber8Gap between neighboring rings in px.
lineWidthnumber1.5Stroke width of each ring in px.
speednumber0.3Pace of the animation, in turns per second of the outer ring at a steady spin.
alternatebooleantrueTurn neighboring rings in opposite directions.
sizenumber160Width and height of the orb in px.
minOpacitynumber0.4Opacity of the innermost ring. The outer ring is always fully opaque.
colorstring"#e4e4e7"Line color.
pausedbooleanfalseCoast to a stop on the current frame without unmounting. Turning it off eases back up to speed.
activenumber6Calls still running, counting inward from the outer ring; the rings inside them close, dim and stop. Leave the prop out in code for all running.
labelstring"Thinking"Accessible name; the wrapper is role="status".
className / style——Spread onto the wrapper div, along with any other div props.

Switch states

Arc Tasks is one of the animations in Arc Rings. Use the group when the agent's state changes, and it morphs between them.

More states

Also for this state