# Command
> ⌘K palette and filterable command lists.
Import from `@aspyn-io/kit`. Scaffold source: `npx shadcn@latest add https://design.aspyn.io/r/command.json`
## Install
```tsx
import {
Command,
CommandDialog,
CommandInput,
CommandList,
CommandEmpty,
CommandGroup,
CommandItem,
CommandShortcut,
CommandSeparator,
} from "@aspyn-io/kit";
```
### ⌘K palette
Global search-and-act. Try the button or press ⌘K / Ctrl+K right now.
```tsx
const [open, setOpen] = React.useState(false);
React.useEffect(() => {
const down = (e: KeyboardEvent) => {
if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
e.preventDefault();
setOpen((o) => !o);
}
};
document.addEventListener("keydown", down);
return () => document.removeEventListener("keydown", down);
}, []);
No results found.
Dashboard
```
### Inline command list
```tsx
…
```
### Groups with icons
A leading icon per item aids scanning. CommandItem lays out icon + label with a gap automatically.
```tsx
No results found.
Dashboard
Customers
Preferences
⌘,
```
### Scrollable list
CommandList caps its height (max-h-[300px]) and scrolls, so long result sets stay contained.
```tsx
No timezone found.
{timezones.map((tz) => (
{tz}
))}
```
## Notes
- Fuzzy filtering, keyboard navigation, and grouping come from cmdk.
- CommandDialog includes a visually-hidden title for screen readers: pass title to customize.