TheDocumentation Index
Fetch the complete documentation index at: https://docs.archil.com/llms.txt
Use this file to discover all available pages before exploring further.
archil CLI is the Linux system client you install with curl -s https://archil.com/install | sh to mount Archil disks on a Linux server. For a step-by-step walkthrough, see Mount on Linux (FUSE). This page is a reference for every command and flag it accepts.
To mount a disk on macOS, use the separate Archil for macOS app — it’s an FSKit-based menu bar app, not the archil CLI.
Global Options
--log-level <LEVEL>: Set log level (trace, debug, info, warn, error) [default: info]--version: Print version information--help: Show help message
Environment Variables
The following environment variables can be used to configure the Archil CLI:| Variable | Description |
|---|---|
ARCHIL_MOUNT_TOKEN | The disk token used to authenticate a mount when not using AWS IAM. Generate one from the disk’s Details page in the Archil console. Pair with sudo --preserve-env=ARCHIL_MOUNT_TOKEN to pass it securely. |
Using
--preserve-env=ARCHIL_MOUNT_TOKEN passes the disk token through sudo’s environment rather than the command line, preventing it from being visible in process listings (ps aux).ARCHIL_MOUNT_TOKEN is not an API key. It grants access to a single disk for mounting; API keys authenticate requests to the Control Plane API and are separate.mount
Mount a disk to a local directory.<DISK_NAME>: An owner-qualified disk name (organization/disk-name|employee@email.com/disk-name) or disk ID (dsk-0123456789abcdef). Optionally append:/pathto mount a subdirectory as the root (e.g.,myorg/mydisk:/data).<MOUNTPOINT>: Local directory to mount the disk
--region <REGION>: Region where the disk is located (e.g.,aws-us-east-1,gcp-us-central1)
--max-cache-mb <SIZE>: Maximum cache size in MB [default: 1/4 of available RAM or 2048 MiB, whichever is smaller]--target-cache-mb <SIZE>: Target cache size in MB [default: 75% of the maximum cache size]
--shared: Enable sharing the disk with multiple clients by skipping the checkout of the root directory [default: false]--enable-xattrs: Enable extended attributes [default: false]--statistics: Enable statistics collection [default: false]--force, -f: Force claim ownership of the root directory, immediately revoking the delegations of any other clients [default: false]--branch <BRANCH>: Mount a specific branch of the disk instead of the root
--no-fork: Launch without forking [default: false]--log-dir <DIR>: Log to directory instead of journald--max-log-size-mb <SIZE>: Maximum log file size in MB [default: 100]
Always use
archil unmount to unmount your Archil disks, not the builtin umount command. Unlike umount,
the archil unmount command does not exit until all pending data is flushed to the backing disk. This is particularly
important on system shutdown, in which the Linux kernel will, by default, call umount on all devices and shutdown
without waiting for pending Archil writes to be synced.Subdirectory mounts
You can mount a subdirectory of a disk instead of the entire root by appending:/path to the disk
name, following the same convention as NFS:
/ and cannot traverse above it via ...
The target path must be absolute (starting with / after the :) and must resolve to a directory
that already exists on the disk.
Delegations with subdirectory mounts
When mounting exclusively (without --shared), the client checks out ownership of the subdirectory
rather than the disk root. This means different clients can mount different subdirectories of the same
disk simultaneously without delegation conflicts:
The subdirectory must exist on the disk before mounting. Create it by first mounting the disk root,
running
mkdir, and then unmounting with archil unmount.unmount
Unmount a disk.<MOUNTPOINT>: Directory where the disk is mounted
--force, -f: Force unmount operation, skipping fsyncing outstanding writes and releasing any ownership claims [default: false]
version
Display version information.checkout
Request an ownership claim on a file or directory.<PATH>: Path to the file to check out
--force, -f: Force checkout, revoking an existing delegation from another client [default: false]
Force checkout will revoke ownership that other clients have on parents of the affected file or children of the affected file.
For more details, see the Shared Disks page.
checkin
Check in a file, releasing ownership of a file or directory.<PATH>: Path to the file to check in
delegations
View the list of ownership claims that this client has on the disk mounted at<MOUNTPOINT>.
<MOUNTPOINT>: Directory where the disk is mounted
status
Display status information for a mounted disk, for example, whether or not the disk has failed and is not accepting writes from this client.<MOUNTPOINT>: Directory where the disk is mounted
set-cache-expiry
Set the duration of time for which directories are kept cached locally instead of forcing a read from the server. This command configures the readdir cache expiry time for a specific directory.<PATH>: Path to the directory where cache expiry should be set
--readdir-expiry <SECONDS>: Cache expiry duration in seconds
- This command only applies to directories, not files
- Setting expiry to 0 seconds disables caching for the specified directory
- Cache settings help balance performance and data freshness
- Longer expiry times improve performance but may show stale directory contents
- The path must be on an Archil-mounted filesystem
invalidate-cache
Available in clientv0.8.11 and later.
Drop this client’s cached entries (and the kernel’s matching attribute, page, and dentry caches) so the next read goes back to the server. Pass the mount root to refresh everything, or a single file path to refresh just that file. Non-root directory paths are rejected. In-flight (dirty) writes are always preserved.
<PATH>: An Archil mount root (whole-mount form) or a regular file inside an Archil mount (per-file form).
Stale data on a
--shared mount typically means another client has updated files on the disk and your client is still serving cached entries. See Shared Disks for the full ownership and delegation model.checkpoints
Manage checkpoints: named, point-in-time snapshots of a disk’s filesystem state. A branch is always forked from a specific checkpoint. For details, see Branches & Checkpoints.checkpoints create
Create a checkpoint capturing the current filesystem state of a mounted disk.<MOUNTPOINT>: Local directory where the disk is mounted<CHECKPOINT_NAME>: Name for the new checkpoint (must be unique within the current branch)
checkpoints list
List checkpoints on a branch (or on the root if--branch is omitted).
<DISK_ID>: Disk ID to list checkpoints for (e.g.,dsk-0123456789abcdef)
--region <REGION>: Region where the disk is located (e.g.,aws-us-east-1)--branch <BRANCH>: Branch name to list checkpoints from. If omitted, lists checkpoints on the root.--json: Output as JSON [default: false]
branches
Manage branches: independent, writable forks of a disk created from a checkpoint. Branches can be mounted witharchil mount --branch. For details, see Branches & Checkpoints.
branches subcommands require a --region flag:
branches subcommands):
--region <REGION>: Region where the disk is located (e.g.,aws-us-east-1)
branches create
Create a new branch forking a specific checkpoint.<DISK_ID>: Disk ID to branch from (e.g.,dsk-0123456789abcdef)<BRANCH_NAME>: Name for the new branch
--from-checkpoint <NAME>: Name of the checkpoint to branch from (required)--from-branch <BRANCH>: Name of the branch the checkpoint is on. Defaults to the root.
branches list
List branches on a disk as a tree. Each node shows the branch name and the checkpoint it was forked from.<DISK_ID>: Disk ID to list branches for (e.g.,dsk-0123456789abcdef)
--limit <N>: Cap the number of branches shown in the tree. Excess branches are dropped newest-leaf-first, and a... N moremarker is rendered beneath the closest still-visible parent to indicate how many direct children were truncated. Ignored when--jsonis set.--json: Output the full list as JSON, with no truncation [default: false]