---
title: "Install SMFS"
sidebarTitle: "Install"
description: "Install, log in, mount."
icon: "download"
---

## 1. Install the binary

```bash
curl -fsSL https://smfs.ai/install | bash
```

Drops `smfs` into `~/.local/bin`. Works on macOS (arm64, x64) and Linux (arm64, x64).

If `smfs` isn't on your `PATH` after install, add `~/.local/bin` to your shell profile and reopen the terminal.

## 2. Log in

```bash
smfs login
```

One-time. Prompts you for your Supermemory API key and stores it in your global credentials. Get a key at [console.supermemory.ai](https://console.supermemory.ai).

You can also pass the key directly:

```bash
smfs login --key sm_...
```

## 3. Mount a container

```bash
smfs mount agent_memory
```

`agent_memory` is your container tag. SMFS creates a folder named `agent_memory/` in the current directory and mounts the container there.

That's it. Read it with `ls`, `cat`, `grep`. See [Mount](/smfs/mount) for memory paths, sync modes, flags, and every subcommand.

To mount somewhere else, pass `--path`:

```bash
smfs mount agent_memory --path ~/memory
```

## Optional: refresh the semantic grep wrapper

`smfs mount` installs the shell wrapper automatically the first time you mount. If you ever need to force a clean reinstall (after upgrading the binary, for example):

```bash
smfs init
```

It writes the wrapper into your `~/.zshrc` directly. Then reopen your terminal (or `source ~/.zshrc`) so the new shell picks it up.

Inside any mount, plain `grep` becomes semantic. Outside a mount, your normal `grep` is untouched. Pass any flag (`grep -r`, `grep -i`, anything) and you get the real `grep` back.

## Refresh the binary

If anything ever feels broken:

```bash
smfs install
```

Re-copies the binary into `~/.local/bin` and resets permissions.
