# AI use cases for Rutis (arcships/rutis)

Repo: [arcships/rutis](https://github.com/arcships/rutis) | Use cases: 4 | Page: https://dedupedai.com/use-cases/arcships-rutis/

rutis is a plugin runtime, with a Rust core, that lets software and AI agents write, swap and hot-reload plugins in TypeScript, Python, Go and Swift across processes and machines.

This file holds every use case of this repo. Each one starts with a "## " heading and ends with its URL.

- Iterate on a plugin without restarting the host: https://dedupedai.com/use-cases/arcships-rutis/hot-reload-a-plugin-while-it-runs/
- Catch missing service dependencies before a plugin runs: https://dedupedai.com/use-cases/arcships-rutis/check-plugin-dependencies-before-running/
- Prototype a capability in Python, then move it to another machine: https://dedupedai.com/use-cases/arcships-rutis/prototype-in-python-then-move-it/
- Add a plugin lifecycle to a Rust application: https://dedupedai.com/use-cases/arcships-rutis/embed-plugins-in-a-rust-app/

## How to iterate on a plugin without restarting the host with Rutis

Repo: [arcships/rutis](https://github.com/arcships/rutis) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Edit a TypeScript plugin and see the running host reload it on every file change.

**Who it is for:** A developer or coding agent building a connection to an API, model or tool, who needs quick feedback without restarting a long-running program.

**The problem:** Each change to an integration usually means stopping and restarting the whole program, which slows iteration and risks leftover connections.

**The outcome:** A plugin project that runs under a host which reloads it whenever its files change, with configuration updates applied live.

### Steps

1. Run `npx @arcships/rutis-host new weather --lang node` to create the plugin project.
2. Run `cd weather && npm install` to install dependencies.
3. Run `npx rutis-host dev` and edit the plugin file; the host reloads it when files change.

### Prompt to paste into your agent

```text
Using the repo arcships/rutis, create a TypeScript plugin named <target> with `npx @arcships/rutis-host new <target> --lang node`, install it, and start it with `npx rutis-host dev`. Expected output: the host running the plugin and logging a reload after you change a file. Verify that the reload happens without restarting the host process.
```

### Caveat

The README shows this workflow for Node, Bun, Python and Go; check the language guide before relying on reload behavior for a specific runtime.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/arcships-rutis/hot-reload-a-plugin-while-it-runs/

## How to catch missing service dependencies before a plugin runs with Rutis

Repo: [arcships/rutis](https://github.com/arcships/rutis) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

List what each plugin needs and provides, and fail early on a service nothing provides.

**Who it is for:** A developer assembling several plugins who needs to confirm the system is wired correctly before starting it.

**The problem:** A plugin that depends on a service nobody provides can fail in confusing ways at runtime, and it is hard to see the full dependency picture by hand.

**The outcome:** A printed view of every plugin's dependencies and provided services, and a clear failure when a required service has no provider.

### Steps

1. Run `npx @arcships/rutis-host new weather --lang node` and `cd weather && npm install` to create a project with a plugin.
2. Run `npx rutis-host check` to see what each plugin needs and provides.
3. Fix any reported service that nothing provides, then run `npx rutis-host dev`.

### Prompt to paste into your agent

```text
Using the repo arcships/rutis, run `npx rutis-host check` inside the project at <target>. Expected output: a list of each plugin's dependencies and provided services, or a failure naming a service nothing provides. Verify that adding a provider for the missing service makes the check pass.
```

### Caveat

The check reports dependencies declared in plugin code, so it only catches services the plugins actually declare.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/arcships-rutis/check-plugin-dependencies-before-running/

## How to prototype a capability in Python, then move it to another machine with Rutis

Repo: [arcships/rutis](https://github.com/arcships/rutis) | Difficulty: Intermediate | Time: 45 minutes | Basis: From the README

Build a Python plugin first, then swap its location or language without changing its callers.

**Who it is for:** A data or ML engineer who wants to try a capability in Python and later run it on an internal node or rewrite it in Rust.

**The problem:** Experiments tend to be rewritten when they move to production, and callers break when the implementation changes.

**The outcome:** A Python plugin running under the host, with a path to replace the provider later while the calling plugin stays the same.

### Steps

1. Run `uvx rutis-host new weather --lang python` to create the plugin project.
2. Run `uv sync` inside the project to install dependencies.
3. Run `uv run rutis-host dev` and iterate on the plugin; later, replace the provider without changing the callers.

### Prompt to paste into your agent

```text
Using the repo arcships/rutis, create a Python plugin named <target> with `uvx rutis-host new <target> --lang python`, run `uv sync`, then `uv run rutis-host dev`. Expected output: the host running the plugin. Verify that a caller plugin using the service name still resolves after you change the provider's file.
```

### Caveat

The README notes that each language needs at least one process and that synchronous cross-language calls add latency, so keep hot paths in one runtime.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/arcships-rutis/prototype-in-python-then-move-it/

## How to add a plugin lifecycle to a Rust application with Rutis

Repo: [arcships/rutis](https://github.com/arcships/rutis) | Difficulty: Advanced | Time: 1 hour | Basis: From the README

Run plugins in a Rust program that starts once dependencies are ready and cleans up on stop.

**Who it is for:** A Rust developer building a long-running program that must swap providers and release resources without leaking them.

**The problem:** Hand-managing startup order, rollback and cleanup for swappable components is error-prone when components are replaced repeatedly.

**The outcome:** A Rust program in which a dependent plugin starts when its service appears, restarts when the provider is replaced, and releases everything exactly once.

### Steps

1. Run `cargo add rutis` and `cargo add tokio --features full` in your Rust project.
2. Define a plugin that provides a service and another plugin that depends on it, as shown in the README quick start.
3. Run `cargo run -p rutis --example quickstart` from a clone of the repository to see the lifecycle in action.

### Prompt to paste into your agent

```text
Using the repo arcships/rutis, add the rutis and tokio crates to <target> with `cargo add rutis` and `cargo add tokio --features full`, then run `cargo run -p rutis --example quickstart` from a clone. Expected output: the listener printing a greeting, then printing a new greeting after the provider is replaced. Verify that the listener restarts without any change to its own code.
```

### Caveat

The README describes the Rust API as the core, so expect to read the docs at docs.rs/rutis for the full set of calls beyond the example.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/arcships-rutis/embed-plugins-in-a-rust-app/
