Trame - SliTaz unified system administration backend
=====================================================

Trame is the administrative backbone of SliTaz. A single CLI with
sub-commands that centralizes system configuration: hostname, services,
wifi, network, users, mount points, time, firewall, etc.

It serves three consumers from one source of truth:

  1. Wove        - the natural-language sysadmin assistant calls Trame
                   sub-commands instead of raw Unix utilities.
  2. TazPanel V2 - the next-gen admin GUI builds on Trame instead of
                   reimplementing logic in CGI/shell.
  3. Humans      - usable directly in a terminal, scriptable, stable.

Trame 0.9 ships 19 sub-commands on top of the common backbone (stable
API, dispatcher, JSON output, dry-run/explain/schema, TSV logging,
pre/post hooks) plus an ncurses front-end (trame-tui):

  trame system     - read-only system information
  trame hostname   - get / set the system hostname
  trame service    - manage BusyBox SysV init services
  trame time       - clock, NTP sync, timezone
  trame network    - interfaces, DHCP, static addresses
  trame wifi       - scan (iw/nl80211), connect, forget
  trame bluetooth  - adapter power, scan, pair, connect (bluez)
  trame locale     - system locale (LANG)
  trame keyboard   - console keymap
  trame log        - the Trame mutation log
  trame user       - users, passwords, groups
  trame storage    - block devices, mount / umount
  trame kernel     - modules, sysctl params, hardware detect
  trame boot       - GRUB menu: entries, default, timeout
  trame power      - suspend, hibernate, cpufreq governor
  trame display    - outputs, resolution, backlight
  trame audio      - ALSA volume, mute, sound cards
  trame firewall   - iptables INPUT chain
  trame mirror     - spk packages mirror

Optional stacks are detected, never assumed: a missing tool yields an
actionable hint ("bluez not installed (run: spk-add bluez)").

See doc/CONVENTIONS.md for the output, exit code, and flag conventions
shared by every sub-command. See doc/ROADMAP.md for the release history
and what comes next.


Quick start
-----------

  trame system info
  trame service list
  trame service status httpd
  trame hostname set myhost --dry-run
  trame hostname set myhost --json
  trame bluetooth status
  trame bluetooth scan && trame bluetooth pair AA:BB:CC:DD:EE:FF

Universal options work everywhere:

  --json          emit JSON on stdout
  --json-pretty   indented JSON (debug)
  --dry-run       simulate, do not mutate
  --explain       print the commands Trame would run, as JSON
  --schema        print the sub-command JSON schema
  --quiet         no stdout on success, exit code only
  --yes           skip confirmations


Build and install
-----------------

  make test       run the test suite (shell, busybox-safe)
  make install    install into $DESTDIR$PREFIX (default /usr)


Files
-----

  /usr/bin/trame                       dispatcher
  /usr/lib/slitaz/trame/common.sh      stable API
  /usr/lib/slitaz/trame/trame-*.sh     sub-commands
  /usr/bin/trame-tui                   ncurses front-end
  /usr/share/trame/schemas/*.json      JSON schemas
  /etc/slitaz/trame.conf               configuration
  /var/log/trame.log                   TSV mutation log


Copyright (C) SliTaz GNU/Linux - BSD License - see COPYING.
