Run RunLog in your
own workflow.
Estimate prompt costs, guard local tool calls, and inspect recorded traces. Start with a public download and a small example.
Commands below use macOS, Linux, or a Windows WSL terminal. Download the linked release file into your working directory first. These examples use the public 0.1.0 downloads checked on .
Check a downloaded file
Each release includes a SHA256SUMS file. Compare the hash of your download with its matching entry before installing. On Linux, use sha256sum filename; on macOS, use shasum -a 256 filename.
Prompt Pricer
Estimate token counts and model cost from text or a local file. No account, API key, or model call is needed.
Install the download
npm install --global ./runlog-prompt-pricer-0.1.0.tgz
Try a prompt
runlog price --currency USD --models gpt-4o "Summarize a short note."
The terminal prints estimated input tokens and cost. You can replace the quoted text with ./prompt.md; runlog --help lists the supported options.
The CLI runs offline and prints locally. Its bundled reference prices have an unknown verification date; output tokens and currency conversion are assumptions. Check current provider rates before budgeting.
Prefer the browser? Open Prompt Pricer →
Loop-Guard
Put a guard immediately before and after your actual tool calls. The examples below print a local lookup twice, then stop the repeated call. They do not call an AI provider.
Python setup and example
Create an environment and install the wheel
python3 -m venv .venv
.venv/bin/python -m pip install ./runlog_loopguard-0.1.0-py3-none-any.whl
Save as guard.py
from loopguard import CircuitBreaker, CircuitTrippedError, TripPolicy
guard = CircuitBreaker(policy=TripPolicy(max_consecutive_retries=3))
for attempt in range(3):
try:
guard.before_tool_call("lookup", {"id": 7})
except CircuitTrippedError:
print("Stopped repeated lookup.")
break
print("Lookup ran.")
guard.after_tool_call("lookup", {"id": 7}, result="ok")
Run it
.venv/bin/python guard.py
Node.js / TypeScript setup and example
Install the compiled package in your project
npm install ./runlog-loopguard-0.1.0.tgzThe download includes CommonJS JavaScript and TypeScript declarations; no build step is needed to use it.
Save as guard.cjs
const { CircuitBreaker, CircuitTrippedError } = require("@runlog/loopguard");
const guard = new CircuitBreaker({ policy: { maxConsecutiveRetries: 3 } });
for (const attempt of [1, 2, 3]) {
try {
guard.beforeToolCall("lookup", { id: 7 });
} catch (error) {
if (!(error instanceof CircuitTrippedError)) throw error;
console.log("Stopped repeated lookup.");
break;
}
console.log("Lookup ran.");
guard.afterToolCall({ toolName: "lookup", args: { id: 7 }, result: "ok" });
}
Run it
node guard.cjs
The SDK runs inside your application. These examples keep their state in memory and print only to your terminal. Provider integrations and alert webhooks send data when you configure them. Budget checks depend on observed usage and reference prices; they cannot prevent every upstream charge. Hosted monitoring is not included.
Ship-Check
The public v0.1.0 release checks caller-recorded JSON traces. Start by running its local tests, then inspect files produced by your own evaluation harness.
Unpack and verify the local setup
tar -xzf ship-check-0.1.0-source.tar.gz
cd ship-check-0.1.0
python3 runner.py --help
python3 -m unittest discover -s tests
Inspect your recorded trace offline
Put your version 1 scenario suite in scenarios.json and its recorded tool trace in candidate.json. The release README defines their exact shapes. This command calls the local evaluator directly:
python3 -c 'from runner import evaluate, load_json; print(evaluate(load_json("scenarios.json"), load_json("candidate.json")))'Passing prints a dictionary of scenario, step, and cost totals; invalid records raise an error. The files are read locally and no gate request is sent.
Connect the CLI to a gate
Supply RUNLOG_TOKEN securely in your environment, then run this from the extracted directory with your own evaluated files:
python3 runner.py --scenarios scenarios.json --trace candidate.jsonThis command sends the trace, scenario assertions, and token to the configured HTTPS gate. The default is https://runlog.cc/api/v1/gate. It needs network access and a valid RunLog API key; local checks alone do not grant release approval.
Public v0.1.0 is record-only: it does not verify trace provenance or a gate signature, run your agent, or generate evidence. Do not treat example traces as measured release evidence. The newer signed-evidence workflow described in the hosted guide is not included in this downloadable release.
Advanced comparisons and Workspace
Benchmark currently has no public local package. Use the hosted advanced comparison form for explicit checks and API-key workflows, and Workspace for private suites and retained reports.
Hosted runs send prompts to selected model providers and are subject to account access and usage limits. Customer tests are always private. Your comparisons and reports stay private to your account. For an everyday comparison, start a new test.