Project news

Important lil-terminal updates: new workflows, compatibility changes and features that make work on shared hosting faster and easier.

Public

Work with databases directly from lil-terminal

Connect to MySQL/MariaDB, PostgreSQL, Redis, SQLite and MongoDB without SSH. Each database system keeps its own driver, while db provides one short entry point to the driver selected for the session.

mysql, postgresql, redis, sqlite and mongodb stay separate because their data models are different. The commands share only the actions that make sense across engines: connect, inspect, search, export, write, dump and restore.

Credentials are entered through the hidden password prompt, and every action uses the permissions of the database account you provide. Restricted accounts and backups remain the safe choice for production work.

To try the workflow without an external server, install db and sqlite and use the sample shop database in /sandbox/.

install db sqlite
db sqlite | db -c \sandbox\db\shop.sqlite | db -t | db -n products 5
install mysql postgresql redis mongodb
Public

Work with the active file without repeating its path

$ points to the last file you opened, created or wrote to. A filename entered on its own can also be passed to the best installed handler for its extension.

After mf scratch.json, for example, code $, json $ or del $ can continue with the same file. Dedicated format modules take priority over the general editors, and typing a filename never installs a module automatically.

ini, json, xml, yml, toml, conf and properties work directly with structured files; img covers common image inspection, resizing and conversion. Install only the tools you need.

These shortcuts belong to the core. If an older installation does not recognize them, replace its lil.php with the current core; upgrade updates modules but does not replace the core file.

mf scratch.json
code $
app.yml
json $ -f "pass" -k
json $ -w user.password : "Ed1g!fs:13od"
img \sandbox\images\photo.jpg
Public

See the current directory before you type

When the command field is empty, it shows the current working directory as a subtle hint. Password prompts also show a localized hint while keeping the value hidden.

The directory hint updates with the terminal session. After cd or a command sequence changes the working directory, the next empty command field shows the new path immediately. It is only a placeholder and never becomes part of the command or history.

cd \sandbox
pwd
Public

@command: run now, install if missing

Prefix an interactive command with @ and lil-terminal will install its missing module from the default repository, then run the command you asked for.

If the command is already available, it runs immediately without a repository request. Missing commands use the normal public Base package, and aliases such as @read or @download resolve to the module that owns them.

@command is intentionally interactive only. .lil scripts keep their dependencies explicit so automated workflows remain predictable.

@mf notes.txt
@curl https://example.com -I
@read README.md
Public

Save command output to a file with >

The core > operator keeps a result on screen and writes the same text to a file.

dns google.com > save.log appends the result to save.log by default. -a makes append explicit and -r replaces the file. Tables and other structured output are converted to readable text before writing.

history -o recalls the last textual result. On desktop, Cmd/Ctrl+S appends it to history.log and Cmd/Ctrl+Shift+S replaces that file through the same command mechanism.

dns google.com > save.log
dns gmail.com > save.log
dns gmail.com > save.log -r
history -o > history.log -r
Public

Interface features as optional packages

Browser features such as hotkeys and the code editor can be installed and removed independently, keeping the core and Minimum packages small.

include manages named interface packages such as lil, hotkeys and code. Base modules can request the matching browser assets, while Minimum modules remain free of optional interface code.

Each package can be checked, updated or removed on its own, so optional interface features no longer have to live permanently inside the core.

include -lil -v 1.0 -s
include -hotkeys -v 1.0 -s
help hotkeys -off
include -code -v 1.0 -i
include -code -v 1.0 -u