cursorrules

A set of Cursor rules for Meepo, a local AI assistant for macOS and Windows that connects Claude with tools for working with your digital life. It also documents how to build and test its Rust code.

In plain words
What is it for?
Use it when developing Meepo: building or testing its Rust workspace, adding tools, defining tool inputs, handling errors, and registering tools in the application.
Why use it?
It gives an AI coding assistant project-specific instructions, so generated Rust changes follow the project's error handling, logging, configuration, and tool-registration rules.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/leancoderkavy/meepo/cursorrules
Clone the repo
git clone --depth 1 https://github.com/leancoderkavy/meepo

Made for: Cursor.

Per session 913 This file is loaded in full into every session.
When invoked 913 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00913 $0.00913
Opus 5 $0.00456 $0.00456
Sonnet 5 $0.00183 $0.00183
Haiku 4.5 $0.00091 $0.00091

Measured 2d ago against content hash 9e7cc4d6d5df, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

cursorrules scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursorrules · 87 lines

How it starts

The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Meepo — Cursor Rules

Project

Meepo is a local AI agent for macOS and Windows that connects Claude to your digital life. Rust workspace, 7 crates, 75+ tools, Rust 2024 edition.

Build & Test

cargo build                    # Build all crates
cargo test --workspace         # Run all tests
cargo test -p meepo-core       # Single crate
cargo clippy --workspace       # Lint

Code Conventions

Rust Style

  • Rust 2024 edition — use let chains, if let chains where appropriate
  • anyhow::Result for application code, thiserror for library error types
  • tracing macros for logging: debug!, info!, warn!, error! — never println! in library code
  • async_trait for async trait methods
  • serde with #[serde(default)] for optional config fields
  • Prefer Arc<T> for shared ownership across async tasks

Tool Implementation

  • All tools implement ToolHandler trait: name(), description(), input_schema(), execute()
  • Use json_schema() helper from crate::tools for input schemas
  • Return anyhow::Result<String> — the string is what Claude sees
  • Register tools in both cmd_start() and cmd_mcp_server() in main.rs
  • Validate all inputs: check string lengths, sanitize paths, reject invalid characters
  • Use tokio::time::timeout() for external commands (30-300s depending on operation)

Security

  • Never hardcode API keys — use ${ENV_VAR} syntax in config
  • Structs holding secrets get custom Debug impls, not #[derive(Debug)]
  • Validate file paths against allowed directories
  • Sanitize branch names, command arguments
  • Block path traversal (..) and SSRF (private IPs)

Platform Code

  • OS-specific code behind traits in meepo-core::platform
  • Gate with #[cfg(target_os = "macos")] / #[cfg(target_os = "windows")]
  • Factory functions return Box<dyn Trait>
  • Cross-platform tools (clipboard, app launch) use arboard and open crates

Architecture

  • meepo-climeepo-core, meepo-channels, meepo-knowledge, meepo-scheduler, meepo-mcp, meepo-a2a
  • Leaf crates (meepo-knowledge, meepo-scheduler) have no internal dependencies
  • Channel adapters implement MessageChannel trait
  • MessageBus splits into receiver + Arc<BusSender>
  • CancellationToken for graceful shutdown across all spawned tasks

Read the full file on GitHub · 87 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 87 lines · 913 tokens per session scan A 9e7cc4d6d5df

Subscribe to this mod's changes

cursorrules is a cursor rule published in the GitHub repository leancoderkavy/meepo (3 stars, last pushed 6mo ago), licensed MIT. It adds 913 tokens to every session, about $0.0046 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.