CLI to help create custom classifiers for visual recognition systems
Last updated 2 years ago by boneskull .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install puddlenuts 
SYNC missed versions from official npm registry.


CLI to help create custom classifiers for visual recognition systems



Show help:

$ puddlenuts --help

You should define a PUDDLENUTS_API_KEY env var corresponding to your Visual Recognition API key.

You can also place this in an .env file in your current working directory.

Any option can be specified in the .env file using the mask PUDDLENUTS_SCREAMING_SNAKE_CASE; e.g. PUDDLENUTS_LOGLEVEL=error


It can be invoked via npx:

$ npx puddlenuts --help

Or installed "permanently":

$ npm install -g puddlenuts



Take a bunch of photos with the camera, put them into .zip files corresponding to classes, and upload them into a classifier for training. See puddlenuts shoot --help for details.


Upload .zip file(s) to a new or existing classifier for training or retraining. See puddlenuts train --help for details.


Take a photo with the camera or use an on-disk image to classify against a previously-trained classifier. See puddlenuts classify --help for details.


  • Yes, this needs tests.
  • @types/* packages included in this project's devDependencies are for IDE type inference; this is not a TypeScript project.
  • The command definitions live in lib/commands/ and are loaded by yargs, with the exception of lib/commands/common-opts.js. See the advanced Yargs usage guide for more info.
  • ES6 modules provided by the magic of @std/esm.


  • The FP variant of Lodash is used exclusively. This is enforced by ESLint.

  • Avoid the function keyword; use arrow functions. Not enforced (yet)

  • Plain objects containing functions shouldn't use the "method" shorthand, but probably do; e.g.:

    const foo = {
      bar() {
        // stuff

    Avoid. Instead:

    const foo = {
      bar: () => {
        // stuff

    Not enforced (yet)

  • Use async / await in lieu of Promise chains.

  • Add JSdoc docstrings. As of this writing, these are mostly missing

  • Use ternary operators wherever possible, but do not nest them.

  • Favor template strings over string concatenation

  • Use currying where it makes sense

  • Leverage util.promisify() or promwrap instead of Node.js-style callbacks

  • Code will be formatted automatically upon commit via prettier


  • Make non-RPi-specific
  • Support alternative APIs

Notes & Meanderings

  • "Puddlenuts" is a made-up word from Roald Dahl's The BFG. In the book, it seems to mean "inconsequential". I'm using it here because I like the word.


Copyright 2017 Christopher Hiller. Licensed Apache-2.0

Current Tags

  • 0.2.6                                ...           latest (2 years ago)

8 Versions

  • 0.2.6                                ...           2 years ago
  • 0.2.5                                ...           2 years ago
  • 0.2.4                                ...           3 years ago
  • 0.2.3                                ...           3 years ago
  • 0.2.2                                ...           3 years ago
  • 0.2.1                                ...           3 years ago
  • 0.2.0                                ...           3 years ago
  • 0.1.0                                ...           3 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (20)
Dependents (0)

Copyright 2014 - 2016 © taobao.org |