____ _ ___ _ ___
/ ___| |__ |_ _| | |_ _|
| | | '_ \ | || | | |
| |___| | | || || |___ | |
\____|_| |_|___|_____|___|
ChILI handles Intelligent Line Interactions
chili is both a standalone CLI and a reusable library for interacting with the ChRIS ecosystem. It serves as the controller layer in the ChRIS interface stack, bridging raw business logic (salsa) and user presentation.
Designed for developers and power-users who want to script and control a ChRIS instance from the terminal. Maintains a persistent local context: connection details, active user, and current ChRIS working directory survive across invocations.
chili implements the controller layer:
chili(Library & CLI):- Commands (
src/commands): Headless controllers that execute logic viasalsaand return typed Models. Consumed directly bychell. - Models (
src/models): Explicit interfaces (Plugin,Feed,ListingItem, etc.) defining data structures. - Views (
src/views): Pure functions that render Models into formatted strings and tables. - CLI (
src/index.ts): Commander.js entry point orchestrating Commands and Views.
- Commands (
salsa(Logic): Shared Application Logic and Service Assets — high-level business intents.cumin(Infrastructure): State and connection layer — authentication, context persistence, low-level API.
cd chili
make meal| Target | Action |
|---|---|
make shop |
Clone cumin and salsa if missing |
make prep |
npm install across all packages |
make cook |
Build (compile TypeScript) all packages |
make taste |
Run tests |
make serve |
Link packages globally |
make scrub |
Clean build artifacts and node_modules |
Use NVM to avoid needing
sudofor global links.
- Context-Aware: Remembers active server, user, and working directory between invocations.
- Library Mode: Exports strictly-typed commands and views consumed by
chelland other frontends. - Resource Commands: Full CRUD for plugins, feeds, files, links, pipelines, compute resources, groups, tags, and more.
- Plugin Management: Search, install (from peer store or Docker), and register plugins.
- Feed Sub-resources: Notes and comments on feeds (create, read, update, delete).
Connect to ChRIS:
chili connect <URL> --user <USERNAME> --password <PASSWORD>Plugins:
chili plugins list
chili plugins list --search "name:pl-dircopy"
chili plugin run pl-dircopy-v2.1.0 --args "..."Feeds:
chili feeds list
chili feeds list --user rudolphpienaar
chili feed note 42
chili feed comments 42Store / plugin install:
chili plugins add pl-fshack # auto-discovers compute resources
chili plugins add pl-fshack --compute ares,argentumFiles:
chili files list --path /home/user/uploads-30-