Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "virtuslab-cellar",
"description": "VirtusLab Cellar marketplace — JVM API lookup tool for Claude Code",
"owner": {
"name": "VirtusLab",
"email": "opensource@virtuslab.com"
},
"plugins": [
{
"name": "cellar",
"source": "..",
"description": "Look up the public API of any JVM dependency (Scala 3, Scala 2, Java) from the terminal",
"version": "0.1.0",
"repository": "https://github.com/virtuslab/cellar",
"source": {
"source": "github",
"repo": "VirtusLab/cellar"
},
"category": "development",
"license": "MPL-2.0",
"keywords": ["scala", "java", "jvm", "api", "documentation"]
"keywords": ["scala", "java", "jvm", "api", "documentation"],
"author": {
"name": "rochala"
},
"homepage": "https://github.com/VirtusLab/cellar"
}
]
}
74 changes: 73 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,25 @@ Cellar gives agents — and humans — a single shell command that returns exact

## Installation

Download the native binary for your platform from https://github.com/simple-scala-tooling/cellar/releases/latest, then extract and install:
### Nix

Run without installing:

```sh
nix run github:VirtusLab/cellar -- get-external org.typelevel:cats-core_3:2.10.0 cats.Monad
```

Install into your profile:

```sh
nix profile install github:VirtusLab/cellar
```

A Nix overlay is also available at `github:VirtusLab/cellar#overlays.default`.

### Manual

Download the native binary for your platform from https://github.com/VirtusLab/cellar/releases/latest, then extract and install:

```sh
tar xz -f cellar-*.tar.gz
Expand Down Expand Up @@ -122,6 +140,54 @@ cellar get-external org.typelevel:cats-core_3:latest cats.Monad
| `-r`, `--repository <url>` | external commands | Extra Maven repository URL (repeatable) |
| `-l`, `--limit <N>` | `list`, `search` | Max results (default: 50) |

## Configuration

Cellar loads configuration from HOCON files and environment variables. Files are loaded in order, with later values overriding earlier ones:

1. Built-in defaults
2. `~/.cellar/cellar.conf` (user-level, optional)
3. `.cellar/cellar.conf` (project-level, optional)

Use `--config <path>` / `-c <path>` to load a specific file instead.

### Default config

```hocon
mill {
# Binary to invoke when extracting Mill classpaths
binary = "./mill" # env: CELLAR_MILL_BINARY
}

sbt {
# Binary to invoke when extracting sbt classpaths (e.g. "sbt", "sbtn")
binary = "sbt" # env: CELLAR_SBT_BINARY
# Extra arguments passed to sbt, space-separated (e.g. "--client")
extra-args = "" # env: CELLAR_SBT_EXTRA_ARGS
}
```

### Examples

Use `sbtn` instead of `sbt`:

```hocon
sbt { binary = "sbtn" }
```

Use sbt in `--client` mode:

```hocon
sbt { extra-args = "--client" }
```

Use a custom Mill wrapper:

```hocon
mill { binary = "./millw" }
```

Or via environment: `CELLAR_SBT_BINARY=sbtn cellar get --module core cats.Monad`

## Output conventions

- **stdout** — Markdown content (signatures, docs, source)
Expand Down Expand Up @@ -257,6 +323,12 @@ java -jar out/cli/assembly.dest/out.jar get-external org.typelevel:cats-core_3:2
./mill lib.test
```

### Installing a local build with Nix

```sh
./mill cli.nativeImage && nix profile install --impure .#dev
```

## Tech stack

Scala 3, Cats Effect, fs2, [tasty-query](https://github.com/scalacenter/tasty-query), [Coursier](https://get-coursier.io/), [decline](https://ben.kirw.in/decline/), Mill.
Expand Down
Loading