Pricing Docs Blog About Contact Migration Guide Sign In

From zero to spend governance
in under an hour.

Migration doesn't have to be painful. Whether you're starting fresh or replacing an existing system, Reins slots in without disrupting your agents.

Export existing policies
Install SDK (one line)
Configure governance rules
Validate in parallel mode
Enable enforcement

Coming from Helicone: Reins imports your rate limit configs directly. Keep Helicone for observability while Reins handles enforcement. Install the SDK alongside your existing Helicone proxy — no need to remove anything during migration. Average transition: 45 minutes.

Coming from Langfuse: Langfuse excels at tracing; Reins adds the governance layer. Export your scoring rules and we'll convert them to Reins policies. The SDK wraps your existing LangfuseClient without conflicts. Average transition: 30 minutes.

Coming from Custom Scripts: Replace fragile if/else spend limits with declarative policies. Export your thresholds as JSON, paste them into the Policy Migration Assistant below, and Reins generates production-ready rules. Average transition: 1-2 hours depending on complexity.

Starting Fresh: The fastest path. No exports, no conversions — just install the SDK, pick a policy template, and enable parallel mode. You'll have full spend visibility in under 20 minutes.

Choose Your Migration Path

Pick the path that matches your current setup.

No existing spend tracking? This is the cleanest path. You'll set up Reins from the ground up with sensible defaults and industry-standard policy templates.

  • Create account and generate API key
  • Install SDK in your agent codebase
  • Choose a policy template (conservative, moderate, or permissive)
  • Enable parallel mode to establish spend baselines
  • Review baseline data and tune thresholds
  • Switch to enforcement mode
~20 minutes

Already using Helicone or Langfuse for observability? Add Reins alongside — no need to replace your existing stack. Reins handles governance while your observability tool continues tracing.

  • Export rate configs / scoring rules from your current tool
  • Install Reins SDK alongside existing integration
  • Import converted policies via the Policy Migration Assistant
  • Run both systems in parallel for 24-48 hours
  • Verify Reins captures all spend events accurately
  • Enable Reins enforcement; keep observability tool for tracing
~45 minutes

Custom spend limits scattered across your codebase? Replace brittle code with declarative policies. Reins handles the enforcement logic so you can delete those maintenance-heavy scripts.

  • Audit existing spend limit code (document thresholds and conditions)
  • Export thresholds as JSON using our helper script
  • Paste into Policy Migration Assistant to convert to Reins format
  • Install SDK and replace custom checks with Reins middleware
  • Run parallel mode — Reins alongside your existing scripts
  • Verify parity, then remove old code and enable enforcement
~1-2 hours

Step-by-Step Migration

Seven steps from your current setup to full spend governance.

1

Export Current Policies & Logs

5-10 min

If you have existing spend limits or transaction logs, export them for import into Reins. Skip this step if starting fresh.

# Export from custom scripts (example) cat spend_limits.json # Or extract from environment variables env | grep SPEND_LIMIT > policies_export.json # From Helicone curl -H "Authorization: Bearer $HELICONE_KEY" \ https://api.helicone.ai/v1/rate-limits > helicone_export.json
Troubleshooting

Don't have formal policies? That's fine. Skip to Step 2 — Reins will help you build policies from your actual spend patterns during parallel mode.

2

Create Reins Account & Get API Key

2 min

Sign up at reins-rh6x.polsia.app, create your organization, and generate an API key from Settings.

# Your API key will look like: REINS_API_KEY=rns_live_k8x92mf4a7b3...
Troubleshooting

API key not appearing? Check that your email is verified. Organization admins can also generate keys from the team settings page.

3

Install the SDK

2 min

Add the Reins SDK to your agent project. Available for Python and JavaScript/TypeScript.

# Python pip install reins-sdk # JavaScript / TypeScript npm install @reins/sdk
# Python — initialize from reins import Reins reins = Reins(api_key="rns_live_k8x92mf4a7b3...") reins.wrap(openai_client) # Wraps existing client
// JavaScript — initialize import { Reins } from '@reins/sdk'; const reins = new Reins({ apiKey: 'rns_live_k8x92mf4a7b3...' }); const wrappedClient = reins.wrap(openaiClient);
Troubleshooting

Seeing import errors? Ensure you're on Python 3.8+ or Node 16+. The SDK uses modern async patterns that require these minimum versions.

4

Configure Initial Policies

10-15 min

Import your exported policies or start with a template. Policies define spend limits, rate controls, and alert thresholds.

{ "name": "Production Spend Limit", "rules": [ { "type": "budget_cap", "limit": 500.00, "period": "daily", "scope": "organization", "action": "alert_then_block" }, { "type": "per_call_limit", "limit": 5.00, "vendor": "openai", "action": "block" }, { "type": "rate_limit", "max_calls": 1000, "period": "hourly", "scope": "agent", "action": "throttle" } ] }
Troubleshooting

Not sure what limits to set? Start with the "permissive" template — it alerts at high spend without blocking. You can tighten thresholds after observing real patterns in parallel mode.

5

Run Parallel Mode

24-48 hours

Enable parallel mode where Reins observes and logs all spend without blocking any calls. This validates policy accuracy before enforcement.

# Enable parallel (observe-only) mode reins.configure(mode="parallel") # Or via API curl -X PATCH https://api.reins.dev/v1/config \ -H "Authorization: Bearer $REINS_API_KEY" \ -d '{"mode": "parallel"}'
Troubleshooting

No data appearing in the dashboard? Verify the SDK is initialized before your first API call. Check that the API key matches your organization — keys are org-scoped.

6

Enable Enforcement

2 min

Once parallel mode confirms your policies match expected behavior, switch to enforcement. Reins will now actively block calls that violate policies.

# Switch to enforcement reins.configure(mode="enforce") # Verify enforcement is active status = reins.status() assert status.mode == "enforce" print(f"Enforcement active since {status.enforced_at}")
Troubleshooting

Want a gradual rollout? Enable enforcement for a single agent first using agent-scoped policies, then expand to the full organization once verified.

7

Decommission Old System

15-30 min

Once Reins is enforcing and you've verified the audit trail, remove your old spend tracking code or disable the previous tool.

# Remove old custom spend checks # Before: if get_daily_spend() > LIMIT: raise SpendLimitExceeded() # After (delete the above — Reins handles it): result = reins_client.call(model="gpt-4", messages=msgs) # Uninstall old dependencies pip uninstall custom-spend-tracker npm uninstall @internal/spend-limits
Troubleshooting

Keep old system configs archived (don't delete permanently) for 30 days. If you need to rollback, having the old config available saves time.

Policy Migration Assistant

Paste your existing policy configuration and we'll convert it to Reins format.

Timeline Calculator

Estimate your migration time based on your team's setup.

Estimated Migration Timeline

Rollback Plan

Reins can be disabled without data loss. Your agents keep running — governance just pauses.

1. Switch to Parallel Mode

Immediately stops enforcement while keeping observation active.

reins.configure(mode="parallel") # Stops blocking, keeps logging

2. Disable SDK (If Needed)

Remove the Reins wrapper entirely — your original client works unchanged.

# Python: swap back to unwrapped client client = openai.OpenAI() # Original, no Reins // JS: use original client const client = new OpenAI({ apiKey: process.env.OPENAI_KEY });

3. Re-enable Old System (If Applicable)

If you kept your previous scripts archived, restore them from your backup.

# Restore from archived config cp spend_limits.backup.json spend_limits.json # Re-enable old middleware export USE_LEGACY_LIMITS=true

4. Export Reins Data

Download all logs and policy data before fully disconnecting.

curl https://api.reins.dev/v1/export \ -H "Authorization: Bearer $REINS_API_KEY" \ -o reins_data_export.json

Emergency Disable (One Command)

Need to disable immediately? This single command kills all enforcement in under 30 seconds:

curl -X POST https://api.reins.dev/v1/emergency-disable \ -H "Authorization: Bearer $REINS_API_KEY" # Response: {"status": "disabled", "resumed_at": null, "all_agents": "unblocked"}

Data is retained for 90 days after disabling. Re-enable anytime from the dashboard.

Reins vs. Alternatives

Quick reference: what Reins does that alternatives don't.

Feature Manual Tracking Helicone Langfuse Custom Scripts Reins
Real-time enforcementPartialPartial
Policy-as-codeDIY
Multi-vendor supportManual
Audit trailSpreadsheet
Alert webhooksLimitedLimitedDIY
SDK support
Migration timeN/AHoursHoursDays-Weeks< 1 hour
Cost visibilityDelayedPartialDIY

Common Pitfalls

Learn from others' mistakes. Six things to avoid during migration.

Skipping Parallel Mode

Jumping straight to enforcement without testing policies against real traffic. Results in false blocks on critical agent workflows.

Always run 24-48 hours in parallel mode. Review the "would-have-blocked" log before enabling enforcement.

Migrating All Agents at Once

Wrapping every agent simultaneously makes it impossible to isolate issues. One misconfigured policy can cascade across the fleet.

Migrate in batches of 3-5 agents. Start with low-risk agents, validate, then expand.

Overly Strict Initial Policies

Setting aggressive limits on day one without understanding baseline spend patterns. Agents get blocked and workflows break.

Start with the "permissive" template (alerts only, no blocking). Tighten limits after a week of baseline data.

Not Setting Up Alerts

Policies enforce silently without notifying anyone. Team discovers blocked calls hours later when agents stop producing output.

Configure Slack/email alerts for every "block" action on day one. Add webhook notifications for budget thresholds at 70% and 90%.

Ignoring SDK Version Compatibility

Running outdated SDK versions that don't support latest policy types or vendor integrations. Silent failures with no error messages.

Pin to latest SDK version. Enable SDK health checks: reins.healthcheck() on startup to catch compatibility issues early.

Forgetting to Decommission

Old spend tracking code still running alongside Reins. Conflicting enforcement, double alerts, and confused team members.

Schedule decommission for 1 week after enforcement is enabled. Add a calendar reminder. Remove old code completely — don't just comment it out.

Post-Migration Checklist

Verify everything is working. Progress is saved to your browser.

0 of 8 complete

Migration FAQ

How long does migration typically take?
Most teams complete migration in under an hour for simple setups. Complex environments with 50+ agents and custom policies typically take 2-4 hours, including the parallel testing period. The longest part is usually the 24-48 hour parallel observation window, which runs passively.
Will I lose historical data during migration?
No. Reins imports your historical spend data during migration. Your existing logs and transaction records are preserved and accessible in the Reins audit trail from day one. We support JSON, CSV, and direct API imports from common tools.
Can I run Reins in parallel with my current solution?
Yes — this is the recommended path. Parallel mode means Reins observes and logs all spend without blocking any calls. Your existing system continues enforcing normally. This lets you validate Reins accuracy before switching enforcement over.
What happens if a policy blocks a critical agent call?
Reins provides an emergency bypass mechanism. You can instantly disable enforcement via the dashboard, API, or SDK fallback configuration. Additionally, you can set per-agent override rules that allow critical workflows to bypass spend limits with appropriate logging.
Is there a rollback if something goes wrong?
Yes. Reins can be fully disabled in under 30 seconds with a single API call. Your agents continue operating normally without Reins — the SDK gracefully falls back to passthrough mode. All configuration and data is retained for 90 days.
Do I need to modify my agent code?
Minimal changes — typically one line. The Reins SDK wraps your existing API client (OpenAI, Anthropic, etc.) with a single function call. Your agent logic stays exactly the same. For most frameworks, it's a drop-in middleware that requires zero changes to business logic.
What formats can I import policies from?
Reins accepts JSON, YAML, and TOML policy definitions. We also support direct import from Helicone rate configs, Langfuse scoring rules, and custom spend limit scripts. The Policy Migration Assistant on this page can convert most common formats automatically.
Is there a migration support team?
Yes. Enterprise customers get dedicated migration engineers who handle the entire process. All plans include access to our migration documentation, community Discord, and email support with 24-hour response time. We also offer live migration sessions for teams over 20 people.

Continue Exploring