Interactive CLI for Infinite Craft — combine elements from the terminal
Project description
infinite-craft-cli
Interactive CLI for Infinite Craft — combine elements from the terminal. Also available as a browser extension and web trainer.
Originally built on infinite-craft by @sqdnoises. As of v1.0, uses curl_cffi directly.
Installation
pip install infinite-craft-cli
Browser extension
Install the Infinite Craft Trainer from the Chrome Web Store — it loads automatically on neal.fun/infinite-craft. Works in Edge, Brave, and other Chromium browsers.
For other install methods (console snippet, userscript), see the web trainer page.
Usage
Interactive mode
infinite-craft
This opens a REPL where you can combine elements, search discoveries, and more:
craft> Water + Fire
💨 Water + 🔥 Fire = 💨 Steam
craft> /search steam
💨 Steam
craft> /help
Non-interactive mode
Most REPL commands are available as subcommands (shorthand operators like +, ++, +|, and * are REPL-only):
infinite-craft combine "Water" "Fire"
infinite-craft search "steam"
infinite-craft list
infinite-craft recipe "Steam"
infinite-craft import "Steam"
infinite-craft export
infinite-craft fill
infinite-craft unfilled
infinite-craft prune
infinite-craft exhaust "Water"
infinite-craft crawl "Water" "Fire"
infinite-craft permute "w*"
infinite-craft with "Water" "fire*"
infinite-craft cross "fire*" "water*"
infinite-craft --version
Commands
Combine & crawl
| Shorthand | Slash command | Description |
|---|---|---|
<element> + <element> |
/combine <element> <element> |
Combine two elements |
<element> ++ <element> |
/crawl <element> <element> |
Combine & crawl until no new discoveries |
Bulk combine
| Shorthand | Slash command | Description |
|---|---|---|
<element> then `+ |
then` (adjacent operator) |
/with <element> <query> |
<query> * <query> |
/cross <query> <query> |
Cross-combine matches from both queries |
/permute <query> |
Combine all matching elements with each other | |
/permutate <query> |
Permute repeatedly until no new discoveries | |
/exhaust <query> |
Each match combined with all discoveries |
Query syntax
Used by /search, /with, /permute, /permutate, /cross, /exhaust, and the +| / * shorthands:
| Syntax | Meaning |
|---|---|
substring |
Case-insensitive substring (default) |
* ? [] |
fnmatch wildcards (e.g. fire*, mu?) |
/pattern/ |
Regex, case-insensitive (/pattern/; alternation | not supported) |
!<query> |
Exclude matches (e.g. !fire* = everything except fire*) |
! |
All elements (exclude nothing) |
^<query> |
First discoveries only (e.g. ^fire* = new fire* matches) |
^ |
All first discoveries |
Other commands
| Command | Description |
|---|---|
/search <query> |
Search discoveries |
/recipe <element> |
Show shortest recipe from base elements |
/list |
List all discovered elements |
/import <element|file.ic> |
Import from Infinibrowser or .ic save file |
/fill |
Fetch missing recipes from Infinibrowser |
/unfilled |
List elements without recipes |
/prune |
Remove orphan elements Infinibrowser can't fill |
/export [path] |
Export discoveries as .ic save file |
/history |
Show combinations tried this session |
/queue |
Show running and pending commands (status also appears above craft>) |
/help |
Show help |
/quit |
Exit |
Background queue (Python REPL)
Long-running API commands queue FIFO. Local commands (/help, /search, /list, /recipe, /history, /clear, /unfilled, /queue) run immediately — output from a local command may interleave with a running queued command (e.g. /search during /crawl).
| Key | Action |
|---|---|
| Esc | Skip current command, continue to next in queue (TTY only) |
| Ctrl+C | While running: stop and discard remaining queue; at bulk confirm [y/N]: decline only |
Deferred commands print Queued: when another command is already running.
Data storage
Discoveries and recipes are stored in ~/.infinite-craft-cli/:
discoveries.json-- all discovered elementsrecipes.json-- known element combinationsexport.ic-- default export location
Browser extension / bookmarklet
The browser trainers share the same command syntax and query matching as the Python CLI (wildcards, /regex/, ! exclude, ^ first discoveries, /combine, /with, /cross, and operator shorthands +, ++, +|, *). Browser-only additions: /clear to clear the output panel, and IndexedDB storage instead of ~/.infinite-craft-cli/. Queue status is shown in the panel above the input (visual-only; no /queue command). Local commands such as /search may interleave output with a running queued command.
Development
Run unit tests:
bazel test //tests/...
Run integration tests (hits the real API):
bazel test //tests:test_integration --test_env=INTEGRATION_TESTS=1
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file infinite_craft_cli-1.4.0.tar.gz.
File metadata
- Download URL: infinite_craft_cli-1.4.0.tar.gz
- Upload date:
- Size: 154.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29cadfff714ea19d809dd6db3c58f745cdb0eb56121837d3ad72ad23ab041ba8
|
|
| MD5 |
93858a6f9e27446e5ee9fa1b0185a431
|
|
| BLAKE2b-256 |
b6d2a91b825348248fd4dd0facb8ec55fd16a2c43848cff4513785317a161860
|
Provenance
The following attestation bundles were made for infinite_craft_cli-1.4.0.tar.gz:
Publisher:
publish.yml on hacker6284/infinite-craft-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
infinite_craft_cli-1.4.0.tar.gz -
Subject digest:
29cadfff714ea19d809dd6db3c58f745cdb0eb56121837d3ad72ad23ab041ba8 - Sigstore transparency entry: 1908602084
- Sigstore integration time:
-
Permalink:
hacker6284/infinite-craft-cli@9b19a07ac3df1e8ce587722fe40da3859850bb77 -
Branch / Tag:
refs/tags/v1.4.0 - Owner: https://github.com/hacker6284
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9b19a07ac3df1e8ce587722fe40da3859850bb77 -
Trigger Event:
push
-
Statement type:
File details
Details for the file infinite_craft_cli-1.4.0-py3-none-any.whl.
File metadata
- Download URL: infinite_craft_cli-1.4.0-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f41fa06384118a69cc115d23330ba3bd8074789be2af37a5c9cc5d752ecdd4ae
|
|
| MD5 |
51d40b42c753f03b56285447dfd5d42d
|
|
| BLAKE2b-256 |
b28dd514af92e8c37b8bb23dc4a3cbd23ac0b74d733428f9af4f3bb0d191b322
|
Provenance
The following attestation bundles were made for infinite_craft_cli-1.4.0-py3-none-any.whl:
Publisher:
publish.yml on hacker6284/infinite-craft-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
infinite_craft_cli-1.4.0-py3-none-any.whl -
Subject digest:
f41fa06384118a69cc115d23330ba3bd8074789be2af37a5c9cc5d752ecdd4ae - Sigstore transparency entry: 1908602215
- Sigstore integration time:
-
Permalink:
hacker6284/infinite-craft-cli@9b19a07ac3df1e8ce587722fe40da3859850bb77 -
Branch / Tag:
refs/tags/v1.4.0 - Owner: https://github.com/hacker6284
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9b19a07ac3df1e8ce587722fe40da3859850bb77 -
Trigger Event:
push
-
Statement type: