osaurus / rules
Cursor rule8.2k starsChanged 5 days agoMITView on GitHub
Management window views are built only from the settings kit in Views/DesignSystem; SettingsKitLintTests enforces it at zero.
Trending
Less talk lately.about the whole repository
Who's talking about osaurus-ai/osaurus
- @osaurus.ai“You've been renting your AI. This is what owning it looks like. Local model. No account. No API key. Free. …”Bluesky · Jul 4, 2026 · 34 likes
- @osaurus.ai“Most Macs have 8 or 16GB. Model releases pretend they don't. Raptor 0.5: a local agent model built for the …”Bluesky · Sep 3, 2026 · 17 likes
- @osaurus.ai“Qwen3.8 27B, hours after the weights dropped: writing and testing its own code, fully local on a Mac. Pure …”Bluesky · Aug 14, 2026 · 9 likes
- @osaurus.ai“Osaurus now has an Orchestrator. Talk to it and it configures the app, creates agents, and schedules work. …”Bluesky · Aug 28, 2026 · 6 likes
- @osaurus.ai“Your chats shouldn't start from zero. Projects are live in Osaurus. Related chats share one set of …”Bluesky · Aug 19, 2026 · 5 likes
The biggest 5 of 19 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 19
Talked about on Bluesky and GitHub (19 times).
On Bluesky · 11
- Jul 4, 2026You've been renting your AI. This is what owning it looks like. Local model. No account. No API key. Free. Open source. No Electron.… — @osaurus.ai34 likes and reposts · 1 reply
- Sep 3, 2026Most Macs have 8 or 16GB. Model releases pretend they don't. Raptor 0.5: a local agent model built for the Macs everyone actually owns. 8B… — @osaurus.ai17 likes and reposts
- Aug 14, 2026Qwen3.8 27B, hours after the weights dropped: writing and testing its own code, fully local on a Mac. Pure Swift. No Electron. No cloud… — @osaurus.aisays it tested it9 likes and reposts · 2 replies
- Aug 28, 2026Osaurus now has an Orchestrator. Talk to it and it configures the app, creates agents, and schedules work. Every change shows an approval… — @osaurus.ai6 likes and reposts
- Aug 19, 2026Your chats shouldn't start from zero. Projects are live in Osaurus. Related chats share one set of instructions, knowledge, and memory.… — @osaurus.ai5 likes and reposts
6 more on Bluesky
- Jul 12, 2026We're launching on Product Hunt this Monday. 7K+ GitHub stars. 175K+ downloads. Zero ads. All word of mouth. Monday we find out how far a… — @osaurus.ai5 likes and reposts · 1 reply
- Jul 24, 2026A 9B model just checked my Amazon shopping cart. Opened a real browser. Signed in. Read the page. Reported back. Running locally on a Mac.… — @osaurus.ai3 likes and reposts
- Jul 20, 2026Osaurus is free forever and fully open source. MIT licensed. — @osaurus.ai3 likes and reposts
- Aug 4, 2026Osaurus can now import your chat history from ChatGPT, Claude, Grok, Gemini, and Open WebUI. Export from the app, drop the file in,… — @osaurus.ai2 likes and reposts
- Jul 28, 2026Every bot in your Slack runs on someone else's GPUs. This one runs on my Mac. Ornith 1.0 9B, open weights, answering a mention in our team… — @osaurus.ai2 likes and reposts
- Aug 5, 2026公式READMEを開くと、OsaurusはMac上のAIハーネス。ローカルモデルなら完全オフラインで動く一方、必要ならクラウドモデルにも接続できる設計です。 https://github.com/osaurus-ai/osaurus… — @mint-echosphere.bsky.social0 likes and reposts · 1 reply
On GitHub · 8
- Oct 20, 2026[Inhalt] Rotation 2026-10-20: 27 Steckbriefe geprüft — Doebele/agents0 reactions
- Oct 18, 2026Allosaurus 0.2 adaptive MTP: paused-AR lookahead, batched verify router, 48 GB emulation — osaurus-ai/vmlx-swift0 reactions · 4 comments
- Sep 29, 2026Validate prepared logits and propagate preparation failures — osaurus-ai/vmlx-swift0 reactions · 6 comments
- Sep 28, 2026Improve gathered Metal matmul and fix dynamic batch and media cache boundaries — osaurus-ai/vmlx-swift0 reactions · 1 comment
- Sep 14, 2026Integrate MLX 0.32.2 with fork-safe JANG and runtime lifetimes — osaurus-ai/vmlx-swift0 reactions · 3 comments
3 more on GitHub
- Jul 21, 2026Add native Nemotron Audex 2B and 30B audio runtimes — osaurus-ai/vmlx-swift0 reactions · 3 comments
- May 27, 2026feat(model-browser): add Newest / Oldest sort options (upstream #1269) — therahul-yo/osaurus0 reactions · 1 comment
- Mar 5, 2026Add qwen3_5_text model type support — ml-explore/mlx-swift-lm0 reactions
Where files are headingNew Cursor rule files have more rules about planning and tracking tasks, and fewer about code style.
Of the Cursor rule files we read, the 4,144 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository4 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/settings-catalog.mdcCursor rule
- .cursor/rules/testing-workflow.mdcCursor rule
The file
We split this settings-kit.mdc into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Every Management page uses the components in Packages/OsaurusCore/Views/DesignSystem.
- Very specific: line 38
No hand-drawn chrome: no RoundedRectangle(...).fill(theme…), no Capsule().fill pills, no padded plain-style buttons, no raw TextField / …
- Very specific: line 46
Never .menuStyle(.borderlessButton) with a custom label: macOS drops the label's background and tint, leaving a bare accent glyph.
≈ “Common” is an estimate: at least 1 in 5 of the 6,668 Cursor rule files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
---
description: Management window views are built only from the settings kit in Views/DesignSystem; SettingsKitLintTests enforces it at zero.
globs: Packages/OsaurusCore/Views/**/*.swift,Packages/OsaurusCore/PrivacyFilter/Views/**/*.swift
alwaysApply: false
---
# Settings kit
Every Management page uses the components in
`Packages/OsaurusCore/Views/DesignSystem`. `SettingsKitGallery` (Debug:
Developer Tools → Server → Settings Kit Gallery, or its `#Preview`) shows each
one in every state. Pick from there before writing UI.
| Need | Use |
| --- | --- |
| Page | `SettingsPage { SettingsPageHeader(…) } content: { … }` |
| Group of rows | `SettingsSection` (Title Case title, one flat group; direct children become rows) |
| Row | `SettingsToggle`, `SettingsPickerRow`, `SettingsValueRow`, `SettingsLinkRow`, `SettingsNavigationRow`, `SettingsRow`, `SettingsAbilityRow`, `SettingsDestructiveRow`, `SettingsPermissionRow` |
| Value control in a row | `SettingsMenuPicker` (native pop-up), `SettingsSearchablePicker` (long lists: search, groups, keyboard), `SettingsPopUpButton` (opens a popover picker), `SettingsStepper` / `SettingsStepperRow`, `SettingsSliderRow` |
| Text input | `SettingsFieldRow` + `SettingsTextField` / `SettingsTextEditor`; `SearchField` for search |
| Button | `SettingsButton`, `SettingsIconButton`, or `.buttonStyle(.settings(role, size:))` |
| Menu of actions | `SettingsOverflowMenu` (icon only, ⋯ by default), `SettingsMenuButton` (titled, Import ▾) |
| Page notice | `SettingsCallout` |
| Metrics / status | `SettingsStatStrip` (`.divided` headline numbers, `.tiles` live readings), `SettingsStatusHero` (the page's one live value + state + action) |
| Explainer | `SettingsFeatureCards` (`.leading` above a page; `.centered` is the hero empty state's examples) |
| Check results | `SettingsFindingRow` (preflight, doctor, inspector rows: severity glyph, title, code/value, detail, fix) |
| Label / count | `StatusChip`, `CountBadge` |
| Filter | `FilterChipRow`, `FilterChip`, `FilterTokenChip` |
| Grid / list item | `LibraryCard`, `LibraryRow`, `LibraryIcon` |
| Comparable collection (sortable columns, row opens a detail panel) | `SettingsDataTable` + `SettingsDataTableColumn` (width, sort key, hide priority) |
| Pushed page | `SettingsBackBar` / `SettingsSubPageBar` + `SettingsDetailHeader` |
| Empty / loading | `SettingsEmptyState` (hero, `inline:`, `loading:`), `SettingsSkeletonBar` + `.settingsShimmer()`, `SettingsProgressBar` |
| Surface | `.settingsChrome(.card / .control / .inset / .selected / …)` |
| Type | `SettingsFont.*` (add `.weight` / `.italic()` / `.monospacedDigit()` as needed) |
Rules:
- No hand-drawn chrome: no `RoundedRectangle(...).fill(theme…)`, no
`Capsule().fill` pills, no padded plain-style buttons, no raw `TextField` /
`SecureField` / `TextEditor`, no `.font(.system(size:))` on text, no
uppercased or tracked titles. Every `Toggle` carries `.settingsSwitch()` or
`.settingsCheckbox()`.
- One-of-few choices are a segmented `Picker` (or `SettingsPickerRow`), not a
row of custom buttons. A value picked from a list is `SettingsMenuPicker`;
never a custom-label `Menu` with a hand-drawn chevron.
- Never `.menuStyle(.borderlessButton)` with a custom label: macOS drops the
label's background and tint, leaving a bare accent glyph. Menus go through
`SettingsOverflowMenu` / `SettingsMenuButton` (`.menuStyle(.button)` with a
kit button style).
- Rows inside any card or surface draw flat (`.settingsChrome` sets
`settingsInGroup`), so never wrap a row in its own card inside a group.
- Section and row titles are Title Case ("Swap Local Models for Subagents");
descriptions, captions and button labels are sentence case. Header refresh is
`SettingsIconButton("arrow.clockwise")`, never a text "Refresh" button.
- Inner navigation is one of two kinds, never both on a page:
- `SettingsTabsRow` in the header when the views are peers over one
collection (scopes or kinds of the same list: Local Models kinds,
Plugins, Skills, Insights).
- `SettingsDrillInHost` + `SettingsDrillInRows` when the children are
different kinds of page (Memory, Voice, Privacy, Server, Computer &
Browser Use). Drill-in ids are stable deep-link keys.
- Animation respects `accessibilityReduceMotion`.
- Need a variant the kit lacks? Extend the kit component, add it to the
gallery, and migrate callers. Do not fork a private copy.
- Kit text parameters are catalog keys unless the parameter says it is
already localized or a `verbatim` flag is set.
`SettingsKitLintTests` scans every non-chat view. Component rules are at zero;
a new violation fails the test. The token rules (`rawPadding`, `rawRadius`,
`rawFixedWidth`: literal numbers where a `theme.space` / `theme.radius`
token or kit component belongs) carry per-file counts that only go down:
adding a literal fails, and removing one fails until you lower the baseline
with `SETTINGS_KIT_LINT_WRITE_BASELINE=1 swift test --filter SettingsKitLintTests`.
`SettingsKitLintBaseline.allowlist` exempts specific
rules for surfaces that are not settings rows (chat-shared views, sidebar,
tables, artwork) and must only shrink. Do not add a file to it to silence a
new violation.
```swift
// BAD
Text(status).font(.system(size: 10, weight: .semibold))
.padding(.horizontal, 6).padding(.vertical, 2)
.background(Capsule().fill(Color.green.opacity(0.15)))
// GOOD
StatusChip(status, tone: .success)
```
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

