This is a reimagination and reimplementation of my other project meeple-cli.
mpl; short for meeple [
/mipel/
] noun - a board game player token. (E.g.,)
mpl is a local board game collection management CLI tool built in rust and powered by BoardGameGeek (BGG) public APIs.
Jump to: Features | Installation | Getting Started | Command Reference | Configuration | Resources | Legal | Documentation π
Warning
mpl is currently in ALPHA. This means it is generally unstable and may be missing key features. Please track the progress of features throughout this README with the following symbols:
Symbol | Status |
---|---|
β | Implemented - stable |
β³οΈ | Implemented - unstable |
π§ | Work in Progress |
β | Not Started |
Coming soon.
- Get started quickly with BGG user collection import β
- Discover new titles via BGG Hotness, new releases, active crowdfunding campaigns, and BGG search π§
- Grow your collection by searching and opening Geek Market listings β
- Flexible local stash maintainance and customization π§
- Powerful cross-stash search to find the best title for game night β
- Create and manage personal ratings β
- Log and view game playthroughs β
- Multiple user support with profiles π§
- Written in Rust π¦ β
Install mpl with your favorite of the methods below, or read the
docs for more info. Then run
mpl --version
to verify installation.
Jump to: Homebrew | Scoop | Cargo | Remote | GitHub Release | Source
Install via Homebrew πΊ (macOS/Linux) β
-
Add tap:
brew tap boldandbrad/tap
-
Install formula:
brew install mpl-cli
Install via Scoop π¦ (Windows) β
-
Add bucket:
scoop bucket add boldandbrad_scoop-bucket https://github.com/boldandbrad/scoop-bucket
-
Install manifest:
scoop install boldandbrad_scoop-bucket/mpl-cli
Install via Cargo π¦ β
Note
In order to install pre-releases (alpha/beta/pre) you must run cargo install
with --version=<VERSION>
.
-
Install crate:
cargo install mpl-cli
Note
The remote install script explains what it will do and prompts before doing so.
-
Run script:
curl -LSfs https://raw.githubusercontent.com/boldandbrad/mpl-cli/main/ci/install.sh | sh -s -- --git boldandbrad/mpl-cli
- Download the latest GitHub Release for your platform
- Extract contents and install to a location in your
$PATH
- Install Rust
- Run
git clone https://github.com/boldandbrad/mpl-cli
andcd mpl-cli
- Run
cargo install --path .
- Ensure
~/.cargo/bin
or$CARGO_HOME/bin
is in your$PATH
Using mpl is as easy as:
mpl
To get you started, on first run mpl
creates a default profile with the same
name as your user $HOME
directory containing a stash called collection
.
Tip
If you prefer, you can rename these later with mpl profile rename
and
mpl stash rename
respectively.
Initiate an import:
Tip
Try it with --dry-run
to simulate the import without actually making
changes.
mpl bgg import --user=boldandbrad
mpl will guide you through the import process. When done, see your imported stash(es):
mpl stash list --verbose
mpl relies on BoardGameGeek item IDs to manage titles in your stashes. The easiest way to get these is by searching BoardGameGeek:
mpl bgg search "wingspan"
Copy a title ID from the output and use it in another command:
mpl add -s=collection 266192
You've added Wingspan π¦ to the collection
stash!
Now let's see what's in your stash:
mpl list -s=collection
Run mpl --help
or read the docs to
discover what to do next!
Tip
You can discover mpl commands and options with mpl --help
.
mpl add
β³οΈ - add titles to a stash-s
/--stash
[Opt] β - stash to add titles to-v
/--verbose
[Flg] β - include additional output
mpl drop
β³οΈ - drop titles from a stash-s
/--stash
[Opt] β - stash to drop titles from-f
/--force
[Flg] β - drop titles without confirmation-v
/--verbose
[Flg] β - include additional output
mpl list
π§ - list stashed titles--sort
[Opt] β - sort titles by provided value. values: [rank, rating, weight, year, name, id, time]. default: rating-g
/--games-only
[Flg] β - list only games-e
/--expansions-only
[Flg] β - list only expansions--group
[Opt] β - group expansions below their parent game. default: true--players
[Opt] β - list only games that support the given player count--max-time
[Opt] β - list only games that fit the given play time (Min.)--weight
[Opt] β - list only games that match the given weight class. options: [1,2,3,4]. ex: 2 -> 2.00-2.99-v
/--verbose
[Flg] β - include additional columns in output
mpl move
β - move titles to another stash-s
/--from-stash
[Opt] β - source stash-d
/--to-stash
[Opt] β - destination stash-v
/--verbose
[Flg] β - include additional output
Manage user profiles.
mpl profile list
β³οΈ - list all existing profiles-v
/--verbose
[Flg] β - include additional columns in output
mpl profile active
β - show the current active profile-v
/--verbose
[Flg] β - include additional columns in output
mpl profile switch
β³οΈ - switch the active profilempl profile create
β³οΈ - create a new profile--active
[Flg] β³οΈ - make the new profile the active profile
mpl profile delete
β³οΈ - delete an existing profile-f
/--force
[Flg] β - delete profile without confirmation
mpl profile rename
β - rename an existing profile
Manage local stashes in the active profile.
-p/--profile
- the profile to perform actions in (default: active profile)
mpl stash create
β³οΈ - create new stashesmpl stash delete
β³οΈ - delete existing stashes-f
/--force
[Flg] β - delete stash without confirmation
mpl stash list
β³οΈ - list existing stashes-v
/--verbose
[Flg] β - list stats for stashes
mpl stash rename
β - rename an existing stashmpl stash info
β - view details of a stashmpl stash move
β - move stashes to another profile
Perform BoardGameGeek related actions.
mpl bgg search
β³οΈ - search boardgamegeek for titles--market
[Flg] β - search geek market listings-v
/--verbose
[Flg] β - include additional columns in output
mpl bgg info
β³οΈ - view title detailsmpl bgg open
β - open links in the web browser--page
[Opt] - open a title's boardgamegeek page(s)--campaign
[Opt] - open a title's crowdfunding campaign page--listing
[Opt] - open a geek market listing
mpl bgg import
β - import bgg user collections-u
/--user
[Opt] β - bgg user to import collections from--dry-run
[Flg] β - simulate import without persisting changes
mpl bgg hotness
β³οΈ - view bgg hotness list-v
/--verbose
[Flg] β - include additional columns in output
mpl bgg campaigns
β - list active crowdfunding campaignsmpl bgg releases
β - list recent title releases-v
/--verbose
[Flg] β - include additional columns in output
Manage configurations.
Profile level configs override global ones by default.
-g
/--global
β - apply config actions to the global scope. When not present, the action applies to the active profile options.--show-scope
β - augment output with the scope-F
/--force
β - used in combination with-g
, changes default config value for all profiles with overwrite of profile values
mpl config list
β - list all config options and their current values--name-only
β - output only config option names
mpl config get
β - get the current value of the given config option--default
β - get the default value of the given config option--all-values
β - get all valid values of the given config option
mpl config set
β - set the value of the given config optionmpl config unset
β - revert the value of the given option to its default-a
/--all
β - revert all option values to their default
mpl config complete
π§ - setup tab-completions for the given shell
Needs more thought and design.
Manage personal title ratings.
mpl rating rate
β - rate a titlempl rating unrate
β - unrate a titlempl rating tiers
β - list rated titles in tiers
Needs more thought and design.
Log and manage title plays.
mpl play log
/create
β - log a new plaympl play delete
β - delete an existing plaympl play list
β - list all logged plays- Arg BGG_ID β - list title logged plays
mpl play stats
β - view title play stats
mpl respects the following env variables to modify default behavior. In cases where multiple variables control the same behavior, mpl obeys the left-most present variable.
MPL_CONFIG_HOME
/XDG_CONFIG_HOME
β - change where mpl configs are stored. Default:~/.config/mpl/
MPL_STATE_HOME
/XDG_STATE_HOME
β - change where mpl state is stored. Default:~/.local/state/mpl/
Needs more thought and design.
These options can be managed with mpl config
.
Global configs are stored in
.mpl/config.toml
. Profile level configs are stored in.mpl/<PROFILE>/config.toml
quiet_success
β - force--quiet
on all supported commands on success [Defaultfalse
]pretty_format
β - format outputs with table borders and emojis [Defaulttrue
]default_stash_name
β - the default name to use when creating new stashes [Defaultcollection
]abbreviated_format
β - ?
mpl supports tab completions for bash
, zsh
, and fish
. For
setup, run mpl config completions <SHELL>
.
- Changelog - See a history of implemented features/changes.
- Roadmap - See a list of planned features and milestones.
- FAQ - Find answers to common questions.
- Contributor Guide β - Find out how to get involved.
Note
Neither mpl nor its maintainers are affiliated with BoardGameGeek.
Copyright (c) 2023 Bradley Wojcik. Released under the MIT License. See LICENSE for details.