monke

monke is a cursor rule for Cursor from airweave-ai/airweave. It costs 0 tokens per session (2,578 once invoked), scanned A, original, MIT.

Monke is an end-to-end testing framework for Airweave connectors, which import data from external services. It uses real APIs to create data, run sync jobs, check the search database, and test updates and deletions.

In plain words
What is it for?
Use it to run connector test flows, verify created and changed records, test deletion handling, manage test resources, and run connector tests in parallel.
Why use it?
It checks the full data-import process, so connector failures can be found beyond isolated unit tests.

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/airweave-ai/airweave/monke
Clone the repo
git clone --depth 1 https://github.com/airweave-ai/airweave

Made for: Cursor.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for monke

README.md
[![agentmods](https://agentmods.dev/badge/rules/airweave-ai/airweave/monke.svg)](https://agentmods.dev/rules/airweave-ai/airweave/monke)
Your own site
<a href="https://agentmods.dev/rules/airweave-ai/airweave/monke"><img src="https://agentmods.dev/badge/rules/airweave-ai/airweave/monke.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 2,578 The whole file, excluding the scripts and references it only reads on demand.
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.1 $0.00000 $0.02578
Opus 5 $0.00000 $0.01289
Sonnet 5 $0.00000 $0.00516
Haiku 4.5 $0.00000 $0.00258

Measured 5d ago against content hash f3b2411aa529, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

monke 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 5d 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.

.cursor/rules/monke.mdc · 372 lines

How it starts

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

Monke - Airweave Connector Testing Framework

End-to-end testing framework for Airweave connectors using real external APIs

Overview

Monke validates Airweave's data synchronization pipeline by creating real test data in external systems, triggering sync jobs, verifying data in the vector database, and testing update/deletion scenarios. The framework separates configuration from runtime state, uses pluggable authentication, and supports parallel execution.


Core Architecture

Test Runner (runner.py) - Entry point that orchestrates parallel test execution across connectors

Test Flow (core/flow.py) - Executes complete lifecycle for a connector: setup → test steps → cleanup

Test Steps (core/steps.py) - Individual operations (create, sync, verify, update, delete) with retry logic

Configuration (core/config.py) - YAML-based config with classes: TestConfig, ConnectorConfig, TestFlowConfig, DeletionConfig

Test Context (core/context.py) - Runtime state separate from config: tracks entities, infrastructure IDs, metrics

Infrastructure (core/infrastructure.py) - Creates/tears down test collections and source connections

Authentication (auth/) - Pluggable auth brokers (BaseAuthBroker, ComposioBroker) for credential resolution


Test Flow

Default test steps execute in sequence:

1. collection_cleanup       # Clean leftover test collections
2. cleanup                  # Clean entities in external system
3. create                   # Create test entities
4. sync                     # Trigger Airweave sync
5. verify                   # Verify entities in vector DB
6. update                   # Update entities
7. sync → verify            # Verify updates
8. partial_delete           # Delete subset of entities
9. sync → verify_partial_deletion
10. verify_remaining_entities
11. complete_delete         # Delete all entities
12. sync → verify_complete_deletion
13. cleanup                 # Final cleanup
14. collection_cleanup      # Delete test collection

Read the full file on GitHub · 372 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. 5d ago First seen · 372 lines · 2,578 tokens per session scan A f3b2411aa529

Subscribe to this mod's changes

monke is a cursor rule published in the GitHub repository airweave-ai/airweave (6,566 stars, last pushed 3mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,578 tokens. 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-30.