Logo

Git-native REST client and API tests in VS Code. YAML .mmt files in Git.

Demo · Website · Request Feature · VS Code · CLI · GitHub Action · Docs · llms.txt

VS Code Installs npm downloads Version License

Multimeter โ€” Get Started, YAML, and API tester

## ๐Ÿš€ Start with a request. Grow into a platform. **Multimeter** is Git-native API testing in VS Code. Requests, tests, mocks, and docs are YAML `.mmt` files in your repo. Start with a single HTTP request. Grow into tests, suites, mocks, reports, documentation, and CI when you need them. All in the same tool. No migration. No second product. ## ๐ŸŽฏ What you get **Simple by default** - โœ… Git-native, file-based YAML - โœ… Lightweight โ€” no account, no cloud lock-in - โœ… Collaboration through pull requests, like code - โœ… The same files locally and in CI **A full testing platform when you need it** - โœ… HTTP, WebSocket, GraphQL, and gRPC - โœ… Multi-step flows and test suites - โœ… Mock servers - โœ… Generated documentation - โœ… Reports - โœ… CI with `testlight` **AI in the same files** - โœ… Generate tests from an API or a description (Cursor, Copilot, Claude via MCP) - โœ… Judge replies โ€” semantic similarity, or open-ended checks like how funny a response is - โœ… Bring your own model (Ollama or cloud) [See all features โ†’](https://mmt.dev/#features) ## โšก Start simple Multimeter is a VS Code-native extension. All you need: - Click Install button in [Multimeter VS Code Extension](https://marketplace.visualstudio.com/items?itemName=mshobeyri.multimeter) - Open **Get Started** from the `Activity bar` and follow the instructions There you run a POST request as follows: ```yaml type: api title: Simple POST url: https://test.mmt.dev/echo method: post format: json body: message: hello ``` That's enough. - No suites. - No mocks. - No workflows. - No complexity. ## ๐Ÿงช Need tests? ```yaml type: test steps: - http: https://test.mmt.dev/echo method: get expect: status: 200 ``` - Still simple. - Still Git-native. - Still easy to review. ## ๐Ÿš€ Scale without switching tools As your project grows, Multimeter grows with it. Add: - Test suites - Mock servers - Documentation - Workflow execution - Structured reporting - CI artifacts **Only when you need them.** Everything stays in the same ecosystem. [See all examples โ†’](./examples) ## ๐Ÿค– MCP, AI generation, and AI judges Cursor, Copilot, and Claude write and run the same `.mmt` files you edit in VS Code. MCP (`mmt-mcp`) gives them `scaffold_test`, `validate`, `format`, and `run` โ€” generate tests from an API or a description, then keep them in Git. **Judge** an API answer in the same test. Compare semantic similarity to an expected reply, or check something open-ended โ€” for example, how funny the response is. Bring your own model (Ollama or cloud). An alternative to a separate Promptfoo eval stack. See [MCP docs](https://mmt.dev/docs/features/mcp) ยท [Judge docs](https://mmt.dev/docs/files/judge) ## ๐Ÿ” Built for reliable CI Multimeter validates test definitions before execution. That means: - โœ… Earlier feedback - โœ… More deterministic execution - โœ… Fewer surprises in CI - โœ… Easier debugging - โœ… Reproducible results GitHub Actions: ```yaml - uses: actions/checkout@v6 - uses: mshobeyri/testlight-action@v1 with: file: tests/suite.mmt report: junit report-file: results/junit.xml ``` Or from a terminal using the Multimeter CLI called `testlight`. ```sh npm install -g mmt-testlight testlight run tests/suite.mmt ``` See the [GitHub Action](https://github.com/mshobeyri/testlight-action) and [Testlight install](https://mmt.dev/docs/features/testlight/install). ## ๐Ÿ“ฆ Everything stays in Git Your code, tests, mocks, documentation, reports, and environment settings live in the same repository. - โœ… Version controlled - โœ… Code and tests evolve together - โœ… Reviewable through pull requests - โœ… Easy to move and share - โœ… No platform lock-in - โœ… AI can update code and tests together - โœ… Environment variables never go missing - โœ… Historical test results stay with the project ## ๐Ÿง  Philosophy Most API tools focus on requests. Multimeter focuses on behavior. Instead of asking: > "Did this request return the expected response?" Multimeter helps you answer: > "Does this system still behave correctly?" --- ## License Multimeter is licensed under the [Apache License 2.0](LICENSE.md). [Demos](https://mmt.dev/demos) ยท [Documentation](./docs/toc.md) ยท [Website](https://mmt.dev) ยท [GitHub](https://github.com/mshobeyri/multimeter)