---
title: "Command Line Interface"
description: "The pit tool"
type: "standalone"
---

ƿit provides a command-line interface for managing packages, running scripts, and building applications.

## Basic Usage

```bash
pit <command> [arguments]
```

## Commands

### pit version

Display the ƿit version.

```bash
pit version
# 0.1.0
```

### pit install

Install a package to the shop.

```bash
pit install gitea.pockle.world/john/prosperon
pit install /Users/john/local/mypackage  # local path
```

### pit update

Update packages from remote sources.

```bash
pit update              # update all packages
pit update <package>    # update specific package
```

### pit remove

Remove a package from the shop.

```bash
pit remove gitea.pockle.world/john/oldpackage
```

### pit list

List installed packages.

```bash
pit list              # list all installed packages
pit list <package>    # list dependencies of a package
```

### pit ls

List modules and actors in a package.

```bash
pit ls              # list files in current project
pit ls <package>    # list files in specified package
```

### pit build

Build the current package.

```bash
pit build
```

### pit test

Run tests.

```bash
pit test            # run tests in current package
pit test all        # run all tests
pit test <package>  # run tests in specific package
```

### pit link

Manage local package links for development.

```bash
pit link add <canonical> <local_path>  # link a package
pit link list                          # show all links
pit link delete <canonical>            # remove a link
pit link clear                         # remove all links
```

### pit fetch

Fetch package sources without extracting.

```bash
pit fetch <package>
```

### pit upgrade

Upgrade the ƿit installation itself.

```bash
pit upgrade
```

### pit clean

Clean build artifacts.

```bash
pit clean
```

### pit help

Display help information.

```bash
pit help
pit help <command>
```

## Running Scripts

Any `.ce` file in the ƿit core can be run as a command:

```bash
pit version    # runs version.ce
pit build      # runs build.ce
pit test       # runs test.ce
```

## Package Locators

Packages are identified by locators:

- **Remote**: `gitea.pockle.world/user/repo`
- **Local**: `/absolute/path/to/package`

```bash
pit install gitea.pockle.world/john/prosperon
pit install /Users/john/work/mylib
```

## Configuration

ƿit stores its data in `~/.pit/`:

```
~/.pit/
├── packages/       # installed packages
├── lib/            # compiled dynamic libraries
├── build/          # build cache
├── cache/          # downloaded archives
├── lock.toml       # installed package versions
└── link.toml       # local development links
```

## Environment

ƿit reads the `HOME` environment variable to locate the shop directory.

## Exit Codes

- `0` — Success
- Non-zero — Error (check output for details)
