Run locally
The local simulator runs a credential-free control plane on your machine with a seeded corpus and a simulated agent fleet. It is useful for developing an integration without burning quota, and for tests that need a real socket rather than a mock.
Start it
Section titled “Start it”make local-upThat brings up the offline devserver and the agent fleet loop under supervisord. It needs no credentials, no GCP project and no network.
Point at it
Section titled “Point at it”The simulator prints its endpoint on startup. Export it the same way you would a hosted one, so the code you write against it is the code you ship:
export VECTADYNE_MCP_URL="…" # printed by make local-upexport VECTADYNE_TOKEN="…" # a seeded token, also printedNothing about your integration changes. That is the point — if a sample only works locally, it is not a sample of your integration.
The two CLIs
Section titled “The two CLIs”| Transport | Use | |
|---|---|---|
vec | in-process — calls the service directly, makes no HTTP calls | operator and CI tasks, the direct release gate |
fleet | MCP over HTTP — a real client over a real socket | exercising the API exactly as your code will |
They differ on purpose. vec proves the service logic; fleet proves the wire. A bug that only
appears over HTTP — a header, a serialization, a timeout — is invisible to vec and caught by
fleet.
make vec ARGS="memory query --query 'reconcile failures'"make fleet ARGS="run --assert"fleet run --assert exits 0 pass, 2 config, 7 transport, 8 drift. The exit codes are
distinct so CI can tell “your integration is wrong” from “the server was unreachable”.
Both release gates
Section titled “Both release gates”make e2e-allRuns the direct gate (vec e2e) and the API gate (fleet run --assert) — in-process and over a real
socket.
What is different from hosted
Section titled “What is different from hosted”| Local sim | Hosted | |
|---|---|---|
| Credentials | seeded, printed | real principals |
| Corpus | fixture data | yours |
| Machine principals | not exercised | full lifecycle |
| Rate limits | not enforced | enforced |
So the sim is right for integration shape and wrong for anything about credentials, quota or scale. Test machine principal flows against a real tenant.
Do not ship the sim’s coordinates
Section titled “Do not ship the sim’s coordinates”The seeded endpoint and tokens are local-only. Never put them in code that reaches an environment where the real thing is expected — they are printed at startup precisely so they do not have to be written down anywhere.
- Test your integration — the in-process fakes, no server at all