# Updating ARI

How to safely update your ARI instance from GitHub upstream without losing your custom modules.

## How Updates Work

ARI is built to evolve. You can pull the latest updates from GitHub and get new features, bug fixes, and security patches — without losing any of your custom work.

When you update ARI, core application files and everything inside `modules-core/` are overwritten with the latest version. This keeps your installation current and secure. The `modules-core` directory should be treated as read-only. Never edit files directly in modules-core/ — any local you make directly to modules in `modules-core` will be lost on the next update.

## Where to Place Your Custom Modules

Your custom modules should be placed in `modules-custom/`. That directory is yours — ARI will never modify or overwrite anything in it. This is your space to extend ARI however you want, and it's fully protected from updates. Keep your customizations in `modules-custom` and you can update ARI with confidence.

## Summary

| Directory | Managed By | Survives Update |
| --- | --- | --- |
| `modules-core` | Upstream | No |
| `modules-custom` | You | Yes |

## Backup Before Updating

Before pulling an update, make sure you have a recent backup of **ALL** ARI files and database:

- All files
- Your `modules-custom/` directory
- Your `.env.local` configuration file.
- Your database (use ARI's built-in backup feature under Settings, or export directly from your database interface).
- Any uploaded files stored in the `data/` directory.

Updates are designed to be non-destructive, but regular backups are always important.

## How to Update

**Option 1: Update Using Claude**

If you use [Claude Code](https://claude.ai/claude-code), type `/ari-update` in your Claude Code session. This is useful because Claude provides a fully interactive upgrade process:

1. Adds the upstream remote if missing
2. Fetches the latest changes
3. Shows you what's new before merging
4. Merges after your confirmation
5. Runs post-update tasks: dependency installs, new SQL migrations, module registry regeneration, and env var changes

It also checks for uncommitted changes and walks you through any conflicts. See [Commands](https://ari.software/docs/commands) for more details.

**Option 2: ARI CLI**

Change into your ARI directory (`cd ~/ARI` or wherever you installed ARI) and run:

```
./ari update
```

This shows you what's changed, asks for confirmation, pulls the latest code, and installs any new dependencies. Run `./ari start` afterward to launch.

**Option 3: Manual Git Pull**

You can also update ARI manually with Git:

```
git remote add upstream https://github.com/ARIsoftware/ARI.git
git pull upstream main
```

After updating using git pull, run `pnpm install` to pick up any new dependencies, then restart with `./ari start`.

## Your Personal Workspace. Your Rules.

Source Code Available. Self-Hosted. Full Data Control. Fully Extendable. AI Native. Dozens of Built-In Modules And Build Your Own In Minutes. No Coding Required.

[Download](https://ari.software/#download)

---

Source: https://ari.software/docs/updating

Markdown rendering of this page, served for `Accept: text/markdown`. Full site index for agents: https://ari.software/llms.txt

