Metadata-Version: 2.4
Name: tinkr-cli
Version: 0.6.4
Summary: Tinkr — a hardware IDE for ESP32, MicroPython, CircuitPython, RP2040, and nRF52
Author-email: Ronie Joseph <ronie@tinkr.build>
License: MIT
Project-URL: Homepage, https://tinkr.build
Project-URL: Documentation, https://docs.tinkr.build
Project-URL: Repository, https://github.com/tinkr-org/tinkr-cli
Project-URL: Issues, https://github.com/tinkr-org/tinkr-cli/issues
Keywords: esp32,micropython,circuitpython,hardware,ide,cli
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Embedded Systems
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1
Requires-Dist: pyserial>=3.5
Requires-Dist: pyyaml>=6.0
Requires-Dist: tomli>=2.0; python_version < "3.11"
Requires-Dist: platformdirs>=4.0
Requires-Dist: rich>=13.0
Requires-Dist: pydantic>=2.0
Provides-Extra: dev
Requires-Dist: pytest>=7.4; extra == "dev"
Requires-Dist: pytest-cov>=4.1; extra == "dev"
Requires-Dist: mypy>=1.7; extra == "dev"
Requires-Dist: ruff>=0.1; extra == "dev"
Provides-Extra: mcp
Requires-Dist: fastmcp>=0.1; extra == "mcp"
Provides-Extra: ai
Requires-Dist: anthropic>=0.40; extra == "ai"
Requires-Dist: google-generativeai>=0.4; extra == "ai"
Requires-Dist: openai>=1.30; extra == "ai"
Provides-Extra: esp32
Requires-Dist: esptool>=5.2; extra == "esp32"
Requires-Dist: minny>=0.13; extra == "esp32"
Dynamic: license-file

# Tinkr — A hardware IDE for ESP32, MicroPython, RP2040, and nRF52

> Build it.

Tinkr is an open-source hardware IDE. One CLI gives you the full loop —
**detect → ideate → flash → iterate → ship** — for the microcontrollers
that actually ship in real products. The `tinkr ideate` plugin adds the
ideation phase most hardware tools skip: the 8-point decision schema
(watch for / model / precision / power / alerts / privacy / update /
ownership) and a 4-pronged platform-refusal pattern for chips Tinkr
doesn't support yet.

```bash
pip install tinkr-cli
tinkr --version                # Tinkr, version 0.6.4
tinkr plugin list              # 6 plugins: esp32, rp2040, nrf52,
                               #   micropython-runtime, ideate, schematik-import
tinkr port-scan                # list connected boards
tinkr ideate ask --chip esp32  # what does Tinkr know about this chip?
tinkr ideate catalog           # the full chip matrix
```

## Quick start

```bash
# 1. Detect what's plugged in
tinkr port-scan

# 2. Ideate the project (the 8-point schema + worked examples)
tinkr ideate start --chip esp32 --project my-iot
tinkr ideate decisions --example esp32-greenhouse

# 3. Ask Tinkr about a chip
tinkr ideate ask --chip esp32              # ✓ supported
tinkr ideate ask --chip jetson-orin-nano   # ⚠ experimental (4-pronged pattern)
tinkr ideate ask --chip attiny85           # ⚠ planned
tinkr ideate ask --chip totally-bogus      # ✗ 404 + supported list (exit 64)

# 4. Flash + REPL
tinkr esp32 flash-firmware --port /dev/cu.usbserial-1410 --firmware ./firmware.bin
tinkr esp32 repl-execute --port /dev/cu.usbserial-1410 --code "print('hello, tinkr')"
```

## The 4-pronged platform-refusal pattern

When you ask Tinkr about a chip it doesn't yet support, you get four
honest parts: TEXT (why), 404 (what's supported), NEXT (concrete next
step), and OFFRAMP (the 8-point ideation schema, which works for any
chip). The wedge is the user leads; the tool supports.

```bash
$ tinkr ideate ask --chip jetson-orin-nano
⚠ NVIDIA Jetson Orin Nano is experimental in Tinkr.
  You can ideate a project for it (the 8-point decision schema works),
  but full build + deploy is not yet wired up.
  ...
  Concrete next step: tinkr ideate start --chip jetson-orin-nano
  Or, offramp to ideation: tinkr ideate decisions --example jetson-safety-vision
```

## The Tauri shell (the v1.0 IDE)

Tinkr is also a desktop app. The Tauri shell is a 3-column
Vite + React + TypeScript IDE that pairs with the Python CLI via Tauri
commands.

```bash
git clone https://github.com/tinkr-org/tinkr-cli
cd tinkr.cli/app
npm install
npm run tauri:dev     # opens the desktop shell
```

## The 6 in-tree plugins

| Plugin | Status | Family |
|---|---|---|
| tinkr-esp32 | stable | ESP32, ESP32-S2/S3, ESP32-C3/C6/C2 |
| tinkr-rp2040 | stable | Raspberry Pi RP2040 (incl. Pico) |
| tinkr-nrf52 | stable | Nordic nRF52840, nRF52833 |
| tinkr-micropython-runtime | stable | Cross-board MicroPython package management |
| tinkr-ideate | experimental | The ideation workflow + 4-pronged refusal pattern |
| tinkr-schematik-import | experimental | Import public Schematik projects (metadata + source) |

## Links

- **Repo**: https://github.com/tinkr-org/tinkr-cli
- **Issues**: https://github.com/tinkr-org/tinkr-cli/issues
- **Discussions**: https://github.com/tinkr-org/tinkr-cli/discussions

## License

MIT.
