> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipthing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Clone repository

> Get the code to your local machine and start developing.

## Use the CLI

Run the `shipthing` init command to help you get started with ShipThing as quickly as possible. This is the way we recommend:

```sh Terminal theme={"system"}
npx shipthing@latest init
```

You will be prompted for the project name and package manager.

```sh Terminal theme={"system"}
$ npx shipthing@latest init

┌  Let's start a ShipThing project!
│
◇  What is your project named?
│  my-app
│
◇  Which package manager would you like to use?
│  pnpm
│
◇  Project initialized successfully!
```

This will create a new directory with your project name and clone the repo into it. It will run a setup script to install dependencies and copy `.env` files. You can read more about environment variables [here](/setup/configuration/environment).

## Git clone

Clone the repository using the following command:

```sh Terminal theme={"system"}
git clone git@github.com:focusapps/ShipThing/
```

<Note>
  If your SSH key isn't set up, use HTTPS instead:

  ```sh Terminal theme={"system"}
  git clone https://github.com/focusapps/ShipThing/
  ```
</Note>

<Warning>
  Use HTTPS for all commands if not using SSH

  If you are not using SSH, ensure you switch to HTTPS for all Git commands, not just the clone command.
</Warning>

## Git remote

After cloning the repository, remove the original origin remote:

```sh Terminal   theme={"system"}
git remote rm origin
```

Add the upstream remote pointing to the original repository to pull updates:

```sh Terminal theme={"system"}
git remote add upstream https://github.com/focusapps/ShipThing/
```

Once you have your own repository set up, add your repository as the origin:

```sh Terminal theme={"system"}
git remote add origin <your-repo-url>
```

## Commit and push

After making changes to your project, you can commit and push them to your repository:

```sh Terminal theme={"system"}
git commit -m "Your commit message"
git push origin main
```

and push them to your remote repository with:

```sh Terminal theme={"system"}
git push origin main
```

> Check out the [Git remote documentation](https://git-scm.com/docs/git-remote) for more information.
