# uninstrument() (/docs/sdk/uninstrument)



`uninstrument()` restores every method TokenPolice patched and detaches its telemetry. After it
runs, your provider clients behave exactly as they did before `tp.init()` — no checks, no logging.

```python
import token_police as tp

tp.uninstrument()
```

```typescript
import * as tp from "token-police";

tp.uninstrument();
```

It's handy in tests that need a clean client, or in a conditional setup where you only want
TokenPolice active some of the time.

<Callout type="warn">
  There's no re-instrument call. Once you've run `uninstrument()`, bringing TokenPolice back means
  restarting the process (and running `tp.init()` again on a fresh start). Don't reach for it as an
  on/off switch during normal operation — use `firewall="off"` in `tp.init()` if you just want to
  stop rules from acting while still logging usage.
</Callout>

## Next [#next]

<Cards>
  <Card title="init() parameters" href="/docs/sdk/init" description="Prefer the off firewall mode if you just want to keep logging but stop enforcement." />
</Cards>
