nvoke

Feature

Every invocation, captured.

Request body, response body, duration, console output, errors. All of it, for every run, searchable in the dashboard. No log drains to configure.

export default async function (req) {
  console.log("received", { body: req.body });
  const result = await process(req.body);
  console.log("done", { ms: result.ms });
  return result;
}
console.log works. So does console.error.

What we capture

For every invocation, nvoke records the HTTP method and path, the request headers (with sensitive values redacted), the request body, the response status and body, the total duration, and everything the function wrote to stdout or stderr. Errors include the stack trace with source-mapped line numbers.

Log retention is 7 days on Free, 30 days on Nano, 90 days on Scale. Exceeding retention is fine — older logs simply roll off. If you need indefinite archival, point a cron function at the logs API and write them wherever you want.

Live tail and replay

The editor view has an inline log stream. Hit save, then hit your endpoint, and the new invocation appears in the stream within a second. This is the fastest feedback loop we could build for "did my function just work?"

Every captured invocation can be replayed from the dashboard. Replaying reruns the function with the same request body and returns the new response — useful for verifying a fix against production traffic without waiting for the next real call.

See what your functions are doing.

No log drain setup. No forwarding to Datadog. Just open the dashboard.