Skip to main content

Interactive CLI for Infinite Craft — combine elements from the terminal

Project description

infinite-craft-cli

PyPI Downloads License Python Tests Publish Chrome Web Store

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 elements
  • recipes.json -- known element combinations
  • export.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

infinite_craft_cli-1.4.1.tar.gz (161.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

infinite_craft_cli-1.4.1-py3-none-any.whl (42.2 kB view details)

Uploaded Python 3

File details

Details for the file infinite_craft_cli-1.4.1.tar.gz.

File metadata

  • Download URL: infinite_craft_cli-1.4.1.tar.gz
  • Upload date:
  • Size: 161.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for infinite_craft_cli-1.4.1.tar.gz
Algorithm Hash digest
SHA256 9dee2543b538b1612b8b46131df4965df44430a55d01ef902d004f7a3fb268f2
MD5 9050ce1e6a6cd9f04b5616904c15129c
BLAKE2b-256 db1bc2ee8764f2d01e3d4c90f0f24e1074efb0e228ac7a1cc402d7178f73f879

See more details on using hashes here.

Provenance

The following attestation bundles were made for infinite_craft_cli-1.4.1.tar.gz:

Publisher: publish.yml on hacker6284/infinite-craft-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infinite_craft_cli-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for infinite_craft_cli-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7626a75ff829a69e7bda16681e8fa131cc0c2db761ab7cbac03f5c3dd23029d2
MD5 4481871363f8838a6120f8497a141444
BLAKE2b-256 f2f866c361eae8df3f19a9ca2bff9abbcbc51c4dd6685836d39a2e53f901717b

See more details on using hashes here.

Provenance

The following attestation bundles were made for infinite_craft_cli-1.4.1-py3-none-any.whl:

Publisher: publish.yml on hacker6284/infinite-craft-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page