# Terminal

---

## Overview

Use your terminal commands as-is. Your `npm publish`, `docker push`, `pip install`, and `mvn deploy` all go to your Fly Registry, with no changes to your existing workflow.

From your terminal you can:

- **Publish private packages** to your team's Fly Registry at `<your-team>.jfrog.io`.
- **Install public dependencies** (npm, PyPI, Maven Central, Docker Hub, etc.) proxied and cached through Fly.
- **Use a token** where Fly App isn't available.

No new tools, no special syntax. With Fly App active, your existing commands just work.

---

## Upload & download from terminal

| Package Manager | Upload | Download |
|---|---|---|
| **npm** | `npm publish` | `npm install` |
| **pip (PyPI)** | `twine upload dist/*` | `pip install` |
| **Maven (Java)** | `mvn deploy` | `mvn install` |
| **Gradle (Java)** | `./gradlew publish` | `./gradlew build` |
| **Go** | N/A (via Git) | `go get` |
| **NuGet** | `dotnet nuget push` | `dotnet restore` |

For **Docker** and **Helm**, include your Fly Registry path in the image or chart reference.

**Docker:**

```bash
docker push <your-team>.jfrog.io/docker/my-image:latest
docker pull <your-team>.jfrog.io/docker/my-image:latest
```

**Helm:**

```bash
helm push my-chart-1.0.0.tgz oci://<your-team>.jfrog.io/helmoci
helm pull oci://<your-team>.jfrog.io/helmoci/my-chart --version 1.0.0
```

> [!NOTE]
> Requires the [Fly App](../fly-app/) active, with the package manager you want to use toggled on in the Fly App menu.

---

## Upload & download with a token

In environments without Fly App (Kubernetes pods, external CI runners, remote build environments), generate an access token in Fly Web and configure your package manager manually using your registry path.

| Package Manager | Registry Path |
|---|---|
| **Docker** | `<your-team>.jfrog.io/docker` |
| **Helm** | `<your-team>.jfrog.io/helmoci` |
| **npm** | `<your-team>.jfrog.io/artifactory/api/npm/npm/` |
| **pip (PyPI)** | `<your-team>.jfrog.io/artifactory/api/pypi/pypi/simple` |
| **Maven** | `<your-team>.jfrog.io/artifactory/maven` |
| **Go** | `<your-team>.jfrog.io/artifactory/api/go/go` |
| **NuGet** | `<your-team>.jfrog.io/artifactory/api/nuget/nuget` |

See [Package Managers →](../../package-managers/) for detailed per-tool configuration steps.

---

## Next steps

- [Fly App →](../fly-app/) - Install and connect Fly App locally
- [Package Managers →](../../package-managers/) - Per-tool setup and reference
- [Where to Use Fly →](../) - The other interfaces
