Logo Autocomputing
Call Support
Gridtop Beta Manual › Part IX: Reference › 47. Command Reference

47Command Reference

This chapter gathers every command in one place. Most of Gridtop is worked with the pointer, but two things are worked with words typed in an exact form, and both are listed here in full: the Terminal (chapter 31), where you type commands yourself, and the agent tools, the actions an agent can take on your Gridtop. The agent tools are, taken together, Gridtop's API (application programming interface): the fixed set of named actions, each with its named inputs, through which one program asks another to do something. An agent never touches your Gridtop in any other way.

The chapter ends with a short selection of commands that belong to your hosting rather than to Gridtop: the Linux shell commands of cPanel's own terminal, and the SQL statements that read and change a website's database. They are included because an operator of a Gridtop-hosted site will want them sooner or later, and because several of them pair naturally with Gridtop's own.

Read 47.1 first; it explains how the entries are written. The rest is reference, to be consulted rather than read through.

47.1 How to Read This Chapter

Every command is shown in code, exactly as you type it. Within a command:

Written asMeans
<name>A value you supply in its place. Type the value, not the angle brackets.
Optional: it may be left out.
before, after, …Words given in plain code are typed as they stand. Where several are offered, type one.
...More of the same may follow.
/aA flag: a slash and one letter, which changes what a command does.

Quoting. A command is split into words at its spaces. A name that itself contains spaces must be put in double quotes, so that it is read as one word: new agent "Landotronix Writer". The web command (47.3) also accepts single quotes and backticks, because what it carries often contains double quotes of its own.

Capitals. Commands do not mind capitals: DIR, Dir and dir are the same command. The names of objects on the grid are matched without regard to capitals either. File names on your website's server are another matter: the server runs Linux, where Logo.png and logo.png are two different files.

Examples use Landotronix, the example business of this manual, its website landotronix.com, and an agent called Site Builder.

47.2 The Terminal's Gridtop Tab

The Gridtop tab is the Terminal's first, blue tab. It works on Gridtop itself: your drive, the objects on the grid, their connections and rules. Its prompt shows where you are on your drive, for example A:/Agentic Matrix/Gridtop>, and it opens there.

Moving about and reading the drive

CommandArgumentsWhat it does
cdChanges the current folder. cd .. goes up one folder; cd / goes to the top of the drive; a path may start with A:/. With nothing after it, cd shows where you are.
cd#<Type>:<Name>Locks onto an object on the grid (see Locking onto an object, below).
dir, ls Lists the current folder: its folders (marked <DIR>), its files with their sizes, and then every object on the grid with its type. /a lists only agents; /t only Tasks; /s only Skills; /w only Workflows; /f lists the folder's files without the grid's objects.
treeLists every object on the grid, each with the objects it is connected to.
type, cat<file>Shows the text of a file on your drive.
md, mkdir<name>Makes a folder, inside A:/Agentic Matrix.
copy<file> <destination>Copies a file on your drive.
del, rm<file>Deletes a file from your drive: it goes to the Receptaculum, from which it can be restored (9.3). Objects on the grid are not deleted from the Terminal; use Delete on the grid (9.1).
saveSaves everything on the Terminal's screen, with the list of commands you typed, as a .txt file in A:/Agentic Matrix/Gridtop/Terminal. Without a name, the file is named by the date and time.

Objects, connections and rules

CommandArgumentsWhat it does
new<type> ["<name>"]Creates an object in the first free cell of the grid. The types are agent, task, skill, role, tool, workflow, folder, integration, webfront, blueprint, and, for the inside of a Blueprint (17.4), target, solution and biz (the Business Model). If the name is already taken, the object is given a name of its own.
ren, rename<old name> <new name>Renames an object on the grid.
info, statShows an object's name, type and id, and how many connections and rules it has. Without a name, it shows the object you are locked onto.
link<object> <object>Draws a connection from the first object to the second (7.2).
unlink<object> <object>Removes the connection between the two, whichever way it runs.
set<agent> <key>=<value> ...Sets an agent's provider, model, role (or preset) and temperature (or temp). When you are locked onto the agent, leave out its name: set model=<model>. Other keys are ignored, and the Terminal says so.
chatOpens the agent's chatbox. Replies appear in the chatbox, not in the Terminal.
rulesLists the standing rules (16.7), numbered, each with how many objects use it. When you are locked onto an object, each rule is marked if it applies to that object and if not.
rules<object>Lists the rules applied to one object.
rules add"<rule text>"Adds a rule to the library; when you are locked onto an object, it is applied to that object as well.
rules on, rules off<number>Applies the rule of that number to the object you are locked onto, or takes it away.

The Terminal itself

CommandArgumentsWhat it does
helpLists the commands of the tab you are in.
historyLists the commands you have typed in this tab, numbered.
cls, clearClears the screen.
echo<text>Prints the text.
title<text>Renames the Terminal's window.
verShows the Terminal's version.
exitCloses the Terminal.
cpanel, sqlSends a command to the cPanel or SQL tab, after a yes or no (see Forwarding, below). With nothing after it, switches to that tab.
web(see 47.3)Edits a staged version of a website.
truncatorOpens the Truncator (31.4).
editorOpens the Editor (chapter 23). The older name of the command does the same.
deployPuts the Editor's open website files live, after asking, keeping what they replace. deploy history lists the last ten deployments of the site; deploy restore <number> puts one back, after asking. With no website file open in the Editor, it answers Open a file of the website in the Editor first (or use Deploy on its Web Front).

Runtime and server commands

These reach Gridtop's runtime: the part of the server that does work on your drive's files for you. What it can do depends on what your hosting has installed, so start with runtime.

CommandArgumentsWhat it does
runtimeLists what the runtime can do here, each marked AVAILABLE or not installed: files, ZIP archives, ImageMagick (pictures), FFmpeg and FFprobe (sound and video).
archive<output.zip> <source> [<source> ...]Packs files and folders on your drive into a ZIP archive.
extract<archive.zip> <destination folder>Unpacks a ZIP archive on your drive into a folder.
convert<input> <output>Converts a picture (when the output ends in .png, .jpg, .webp, .gif, .tif, .bmp, .svg, .avif or .heic) with ImageMagick, or a sound or video file with FFmpeg. Works only where runtime reports the engine AVAILABLE.
gateShows your security tier and which kinds of server action are armed for it.
tools, tooltool <name> [--<key> <value> ...]Lists, and calls, the server tools behind the gate.

Three more names, schedule, move and color, are reserved: typed, they answer that they are not yet available. run with an agent's name opens its chatbox.

Locking onto an object

Locking makes one object on the grid the subject of the commands that follow, in the way that cd makes a folder the place they work in. Type cd, a space, #, the object's type, a colon and its name:

cd #Agent:Site Builder … or, with the quotes a name with spaces needs, cd "#Agent:Site Builder"

The prompt now ends with the object, A:/Agentic Matrix/Gridtop/#Agent:Site Builder>. While you are locked on, dir with nothing after it lists the object's connections and the rules applied to it; info, chat, set and rules on / rules off act on it without being told its name; and rules add applies the new rule to it. cd .. releases it. Any other cd releases it too.

The type before the colon is for your own reading; Gridtop finds the object by its name, or by its id.

Forwarding to the cPanel and SQL tabs

From the Gridtop tab you can hand a command to one of the other two tabs without leaving it. Type cpanel or sql and then the command:

cpanel ls public_html

The Terminal asks first: Send to cPanel: ls public_html ? (y/n). Type y (or yes) and the other tab runs it; anything else, and the Terminal answers Not sent. If the other tab is itself waiting for a yes or no, it tells you to answer there first (31.2).

Keys

KeyWhat it does
ENTERRuns the command.
UP ARROW, DOWN ARROWStep back and forward through the commands typed in this tab. Each tab keeps its own list.
ESCClears the line.

47.3 web: Editing a Site from the Terminal

The web command makes the same exact, small changes to a staged version of a website that the Web Editor makes (chapter 27) and that agents make with the website_editor tool (47.6). It is the tool itself, typed: every change you make with web is one step in the version's Undo history, and plays in its preview if the preview is open, as an agent's edits do (27.7).

web works on a staged version, never on the live site. It changes the version showing in the website's preview; if none is, the newest staged version (26.6).

Choosing the site

web use <domain> [<page>]

chooses the website and the page that the commands which follow work on. The page is its address on the site: / (the home page, the default), /about.php, /services/. web use alone tells you what is chosen.

web use landotronix.com /contact.php

The commands

CommandWhat it does
web outlineLists the page's file, the other files it uses, and its numbered sections. Read this first.
web text "<old>" "<new>"Changes one piece of the page's text. old must be written exactly as the page has it. When the same text appears more than once, the first is changed. Text that comes from the site's settings (its name, tagline, email, phone, address) changes everywhere it shows.
web css "<selector>" "<property>: <value>; ..." [file <name>.css] [page] [media "<condition>"]Sets a style rule (see below).
web attr "<selector>" <name>=<value> ...Sets an element's attributes. <name>= with nothing after it removes that attribute.
web html "<selector>" '<html>'Replaces everything inside an element.
web insert <position> "<selector>" '<html>'Inserts new markup: before or after the element, or inside it, first (prepend) or last (append).
web remove "<selector>"Removes an element, and everything inside it.
web move "<selector>" <position> "<target>"Moves an element before or after the target, or inside it, first (prepend) or last (append).
web wrap "<selector>[, <selector> ...]" <tag> [<name>=<value> ...]Puts an element, or several that sit side by side, inside a new element.
web undo, web redoTakes back the last change to this version, or puts it back.
web helpLists these commands.

A selector names the element to change. Section 47.7 explains selectors in full; in short, #id, .class and tag names, as in a stylesheet.

Quoting

Anything that contains spaces is put in quotes. web accepts three kinds, so that what is inside may hold the other two:

Attributes. In attr and wrap, write each attribute as name=value, with no quotes around the value. A value that contains spaces is quoted whole, name and all:

web attr "#crew-photo" "alt=The Landotronix crew at work" loading=lazy

Tip Do not write class="snap" in attr or wrap: the quote marks would become part of the value. Write class=snap, or "class=snap wide" for more than one class.

css in detail

web css changes the rule with that exact selector where it already is, setting the properties you give and leaving the rest; if there is no such rule, it adds one. A property given with an empty value ("color: ") is removed from the rule.

web css ".hero h1" "font-size: 2.6rem; letter-spacing: .02em" web css "nav" "display: none" media "(max-width: 760px)"

What it answers

Each change answers with what it did and in which file, for example Removed <div#promo.banner> "Fall sale" (index.php) v3, so that you can see it found the element you meant. No change. means the page already was as asked. If the change cannot be made, it says why and changes nothing (47.6).

Note web acts with your authority, not an agent's: it asks no permission, and it is not limited by any agent's permissions.

47.4 The cPanel and SQL Tabs

The cPanel tab

The cPanel tab (amber) works on your websites' files on the server, through cPanel. It is not a Linux shell: it understands only the commands below, each carried out for you through cPanel. For a full shell, see 47.8.

Begin with sites, then choose one with site; the prompt then shows where you are, with ~ for your hosting account's home folder, for example cPanel:~/public_html>. Paths may be absolute (/home/...), start from home (~/public_html/img), or be relative to where you are, with .. for the folder above.

CommandArgumentsWhat it does
sitesLists your sites: each domain, its kind if it is not the main one, and its folder.
site<domain>Works in that site, starting in its folder.
pwdShows where you are.
cdChanges folder. Alone, shows where you are.
ls, dirLists a folder: folders marked <DIR>, files with their sizes, and the count.
cat, type<file>Shows a file's text, up to 400 lines.
edit<file>Opens the file in the Editor (chapter 23).
mkdir, md<name>Makes a folder where you are.
mv, move<path> <folder>Moves a file or folder into another folder. If the name is already there, nothing is changed.
cp, copy<path> <folder>Copies a file or folder into another folder, on the same terms.
zip<name> <path> [<path> ...]Packs files and folders into a .zip where you are. If the name is taken, the new archive is given another.
tar.gz<name> <path> [<path> ...]The same, as a .tar.gz.
unzip, extract<archive> [<folder>]Unpacks an archive where you are, or into the folder named.
dnsLists a domain's DNS records as a table: type, name, value and time to live. Change them in Domains ▸ DNS (30.2).
help, history, cls, clear, echo, title, ver, exitAs in the Gridtop tab.

There is no delete command in the cPanel tab. Files on a website are deleted in cPanel itself, or with rm in a shell (47.8).

The SQL tab

The SQL tab (cyan) works on your websites' databases. A database is where a site keeps what it records: its orders, its sign-ups, its messages from the contact form, in tables of rows and columns. SQL (Structured Query Language) is the language in which you ask a database for its rows, or change them.

CommandArgumentsWhat it does
dbs, databasesLists your databases with their sizes. Those marked * are connected to Gridtop.
connect<database>Connects Gridtop to a database, after asking: it adds Gridtop's own database user to it in your cPanel.
use<database>Works in that database. It must be connected first.
tablesLists its tables, with their rows and engine.
desc, describe<table>Lists a table's columns: type, whether it may be empty (Null), key, default and extra.
writeon or offAllows changes, or returns to read-only. Alone, says which it is.
any other lineRuns as SQL.
help, history, cls, clear, echo, title, ver, exitAs in the Gridtop tab.

How SQL is run. Every line that is not one of the commands above is sent to the database as one SQL statement, of up to 20,000 characters; a closing semicolon is optional. Results come back as a table, with the number of rows and the time taken; the first 200 rows are shown.

Read-only until you say otherwise. The tab starts read-only. A statement that begins with SELECT, SHOW, DESCRIBE, DESC, EXPLAIN or WITH reads, and is run in a read-only transaction, so that it cannot change anything even by accident. Any other statement changes the database: the tab refuses it with That changes the database. Type write on first. After write on, the prompt shows (write), and each change still asks Run this change on database ? before it runs. Every change is recorded in your account's security log.

Because use and desc are the tab's own commands, they are not sent as SQL: use them as above.

The Bash tab

In Autocomputing '26, the Bash tab (green) has no commands of its own beyond cls and clear: every other line is run, one at a time, by the shell on your own PC (31.3). It does not reach your hosting.

47.5 Agent Tools: Gridtop's API

An agent works by calling tools. Each tool has a name, a description that tells the agent what it is for, and named parameters, the inputs the agent fills in when it calls it. You do not call these yourself; you ask an agent in plain words, and it chooses the tools. This section lists them so that you know what an agent can do, what it needs from you, and what each step in its tool trace (19.1) means.

Permissions. Each tool needs one of the agent's permissions (15.2), shown in the tables as Read, Edit, Stage, Make Connections or Configure Agents; Integration tools may need Send Outside. A dash means the tool needs no permission of its own. When an agent lacks the permission a tool needs, it asks you in its chat.

Important A tool marked Edit that writes into a website's files on the server needs Server Push / Deploy instead, because writing there puts a change live. The two Editor tools that change an open file (editor_replace, editor_write) are the exception: their changes wait in the Editor for you to save.

Connections give access. Two rules apply on top of permissions (16.8). An agent reaches a website's files only when it is connected to that Web Front by a line, or the file was attached to your message. And it reads, sets up and saves only the Tasks, Roles, Skills and Tools joined to it by a line, including any it made.

Parameters are written name (type): an agent fills a string with text, a number or integer with a number, a boolean with true or false, an array with a list, and an object with named values. Required parameters are marked required.

Files and folders on your drive

ToolWhat it doesParametersPermission
file_readReads a text file anywhere on A:/, including files you attached and staged versions; up to 400 KB a call, continuing from where it stopped.path (string, required); offset (number): where to continueRead
file_writeWrites a text file on A:/. An existing file is never replaced unless overwrite is true. When a PHP file no longer parses, it says so.path, content (strings, required); overwrite (boolean)Edit
list_directoryLists a folder on A:/ or in a website: by path, or by the name of a Folder or Web Front on the grid.path (string, required)Read
create_folderMakes a folder on A:/ and places it on the grid. Folders on the way are made too.name (string, required); parent (string): default Agentic MatrixEdit
rename_file_or_folderRenames a file or folder where it is.path, new_name (strings, required)Edit
move_file_or_folderMoves a file or folder, as dragging does on the grid: from A:/ to a Web Front publishes it to the live site (26.4).source, destination (strings, required); on_conflict: error (the default: nothing is replaced), replace, rename_incoming or rename_previousEdit
copy_file_or_folderCopies within A:/, or from one website folder to another; not between the two.source, destination (strings, required); on_conflict, as aboveEdit
archive_createPacks files and folders on A:/ into a .zip.output (string, required); inputs (array of paths, required); overwrite (boolean)Edit
archive_extractUnpacks a .zip on A:/ into a folder, refusing any entry that would land outside it.archive, destination (strings, required); overwrite (boolean)Edit

The Editor

These work on the file open in the Editor (chapter 23). A staged website file (one in Staging/vn) is saved to the drive as the agent edits it, so the preview shows the change; any other file waits, as unsaved changes, for you to save (23.5).

ToolWhat it doesParametersPermission
editor_openOpens a file in the Editor, as a tab: an A:/ path, or a file in a website the agent is connected to.path (string, required)Read
editor_readReads the open file: its path, its text (up to 60,000 characters), and whether it has unsaved changes. If a staged file's tab holds unsaved changes, the drive's copy comes with it, since that is what the preview shows.noneRead
editor_replaceReplaces an exact piece of the open file's text. The piece must appear once, unless all is true.find (string, required); replace (string); all (boolean)Edit
editor_writeReplaces the open file's whole text.text (string, required)Edit
editor_checkChecks that the open file parses as it stands: JavaScript and JSON, PHP (on our server), the scripts inside an HTML page, and the braces of a stylesheet. Nothing is run.noneRead
webfront_deployPuts the Editor's open files of a website live, keeping what they replace. Every file must parse first. An agent without Server Push / Deploy, or on a site that does not allow agents to deploy, sends them to you as a proposal instead (26.6).note (string, required): one line saying what it changesEdit

Websites

ToolWhat it doesParametersPermission
inspect_webfrontDescribes a Web Front: its domain, its folder on the server, what the site supports, up to 50 entries from its folder, and which of the agent's permissions apply. A preview address is refused: it is not a Web Front.webfront (string, required): its name, domain or idRead
scan_websiteReads the Server app's scan of a site (28.2): its databases, its forms, the file each form posts to, and the tables that file reads or writes. Changes nothing.webfront (string, required); refresh (boolean): scan again, which can take a minuteRead
website_editorMakes small, exact changes to a staged page. See 47.6.see 47.6Stage
preview_inspectShows how an element of the page in your preview really looks (below).selector or text (string)Read
lookSees a picture or video on A:/ through a vision model (15.5) and describes it, answering a question if one is given. Video is seen as frames at even times, each named with its time.path (string, required); question (string); frames (integer, 2 to 16, default 8): video onlyRead

preview_inspect. The files of a site say what a page should look like; this tool reports what it does look like, measured in your open preview. The agent names the element by a CSS selector, or by some of its visible text (the innermost element containing that text is taken). For each element found, up to three, it returns: a selector for it, its tag, id, classes and text; its box (position, width, height, and whether it is on the screen); its computed look (colours as #RRGGBB, fonts and sizes, spacing, border, shadow, display and layout); the background it actually shows, and which element paints it; its inline style and old-style HTML attributes; and every CSS rule that applies to it, up to 40, each with the file it comes from. The page's address, title, window size and stylesheets come with it. When nothing matches, it lists the ids on the page and its landmarks (header, nav, main, sections, footer) to try instead. It reads only, and works only while a preview is open, with a Gridtop panel in it (Add Agent, 27.7).

Databases

An agent reads a database only when you have attached it to the agent, in the Server app: the database's window, its Agents tab (28.3). No agent tool changes a database.

ToolWhat it doesParametersPermission
list_my_databasesLists the databases attached to the agent, and any others on the hosting that are not.noneRead
describe_databaseLists a database's tables with their row counts, or one table's columns and keys.database (string, required); table (string)Read
query_databaseRuns one read-only statement (SELECT, SHOW, DESCRIBE, EXPLAIN or WITH) and returns up to 100 rows.database, sql (strings, required)Read

Gridtop and its objects

ToolWhat it doesParametersPermission
list_gridtop_objectsLists the objects on the grid, with their ids and types; Folders with their paths; Web Fronts with their domains and folders; and the Workflow each nested object is in.none—
create_gridtop_objectCreates an object beside the agent, joined to it by a line. A Task, Role, Skill or Tool can start from a template, and is saved at once.type (string: one of the types new takes, 47.2); name (string); template (string)—
list_templatesLists the templates a new Task, Role, Skill or Tool can start from (16.8).none—
read_objectReads how a Task, Role, Skill or Tool is set up: its settings, its file, whether it is saved, and its connections.object (string, required): its name or id—
configure_objectSets up a Task, Role, Skill or Tool. Only what is given changes. A Task takes prompt, folder and steps; a Role, purpose, instruction and authority; a Skill, description and instructions; a Tool, its function name, description, when to use it and when not, what it returns, its inputs, its behaviour, and whether it is enabled.object (string, required); settings (object, required); save (boolean, default true)—
save_objectSaves a Task, Role, Skill or Tool to its file as it stands.object (string, required)—
connect_objectsDraws a connection line between two objects. Lines an agent draws are silver.from, to (strings, required)Make Connections
place_in_workflowPlaces an object inside a Workflow, as dragging it there does.object, workflow (strings, required)—

Other agents, and you

ToolWhat it doesParametersPermission
instruct_agentSends a message to another agent on the grid and waits for its reply, for up to three minutes.target, message (strings, required)—
set_agent_parametersSets another agent's provider and model, a built-in role (Flat, Developer, Brainstorm, Analyst, Concise or Copywriter), or its generation settings.target (string, required); provider: ethocana, gemini, claude, openai, openrouter, zai or deepseek (only those you have connected; Ethocana always); model; role; temperature, top_p, frequency_penalty, presence_penalty (numbers); top_k, max_tokens (integers)Configure Agents
ask_userAsks you a question in the agent's chat and waits up to an hour for your answer (12.14).question (string, required); kind: single (one choice, the default), multiple or text; options (array of 2 to 8 choices); allow_other (boolean, default true); placeholder (string)—

Media and the runtime

ToolWhat it doesParametersPermission
get_runtime_capabilitiesReports what the runtime can do here, as the Terminal's runtime does (47.2).none—
media_probeReads a picture's or a media file's details.input (string, required)—
image_convertConverts, resizes or compresses a picture with ImageMagick, where installed.input, output (strings, required); resize (for example 1200x1200); quality (1 to 100); strip_metadata, overwrite (booleans)Edit
media_convertConverts sound or video with FFmpeg, where installed: convert, trim, extract_audio or extract_frame.input, output, operation (strings, required); start, duration (seconds); overwrite (boolean)Edit
hardline_jobDoes media work on your own PC, through Autocomputing '26 (24.4): hls (a video prepared for streaming), mp4, mp3, thumb (a still from a video), image, transcribe (a .txt transcript and .srt captions) or imagegen (a picture from a description). Results are saved beside the source file; pictures go to A:/Hardline/Images. It waits up to 90 seconds; a longer job is checked again by its id.kind (required); path; options (object); id (integer)Edit
Note Our hosting servers do not carry FFmpeg, so media_convert and the Terminal's convert for sound and video report it not installed there; sound and video work is done on your PC with hardline_job.

Chess

play_chess (opponent: agent or computer), chess_board (none) and chess_move (move, in UCI notation, for example e7e5) let an agent start a game and play it (19.4). They are offered to an agent only while it is playing, or when your last message mentions chess. None needs a permission.

Tools you make, and Integration tools

A Tool object of your own (16.4) that is connected to an agent becomes one of its tools, under the function name you gave it, with the inputs you defined. A Tool marked to ask first asks before every run.

An agent connected to an Integration set up as a service it can work through gets that service's tools too, named after the kind, the Integration and the tool, for example mcp_… or stripe_…. A tool that only reads needs Read; one that changes things, Edit; one that sends something outside Autocomputing, Send Outside. Sending an invoice or a refund asks you every time. Chapter 32 describes the services.

Tools an outside agent sees

A program connected to your Gridtop with a key from the Harness app (32.3) works through Gridtop's MCP server, with these tools, as far as its key allows: drive_list and drive_read (Read the drive), drive_write (Write to the drive), list_agents, and ask_agent (Message your agents), which puts a question to one of your agents and returns its answer. The drive tools never reach the Receptaculum, refuse blocked file types, and take up to 2 MB a file. A key set to act as one of your agents also takes that agent's permissions, standing rules and lines.

Time limits. A tool that does not finish within 45 seconds is stopped and the agent told so, unless the tool allows itself longer: instruct_agent three minutes, hardline_job two.

47.6 website_editor in Full

website_editor is the tool with which an agent makes exact changes to a staged website: a word here, a colour there, a section moved, a column added. It shares its code with the Web Editor (chapter 27), so a person in the preview and an agent in a chat change a page in the same way, and land in the same Undo history. The Terminal's web command (47.3) types the same tool.

Changes land in the version showing in the preview; if none is, the newest staged version; or the version named. Each change is one step that Undo in the Web Editor, web undo, or the act undo takes back, and each plays in the open preview as it lands (27.7). The tool needs Stage.

Every call names a Web Front and an act. The parameters are these:

ParameterTypeUsed by
webfront (required)stringevery act: the Web Front's domain or name
act (required)stringone of the acts below
pagestringthe page's address: / (the default), /about.php
versionstringv1, v2 …: a version other than the one in the preview
old, new, nthstring, string, integeredit_text
orderarray of integersmove
varsobjectcolors
selectorstringdesign and the structural acts
base, hover, fx, clearobject, object, string, booleandesign
decl, file, mediaobject, string, stringcss_rule
attrsobjectset_attr, wrap
htmlstringset_html, insert_html
positionbefore, after, prepend or appendinsert_html, move_element
tostringmove_element
tagstringwrap
idstringarchive_note
q, regex, onlystring, boolean, stringsearch
rulesarray of {selector, decl, media}css_rule, several rules at once
n, kindsinteger, arraycolumns
screen0, 1024 or 600design: every screen, tablets only, or phones only
lfxobjectdesign: light effects

Reading acts

ActWhat it does
outlineThe page's file; its sections, numbered, each with its kind (hero, cards, gallery, list, table, form, image, text) and heading; its texts, each with how many times it appears; the site's colours and designed elements; and the files the page uses. A page without section markers has no numbered sections, but its texts are listed. For a template site, it also returns the template's own design guidance, which the agent is told to follow. Read this first.
searchFinds a word, colour, class or selector in every text file of the version, answering with each file, line and text. q: what to find; regex: true for a pattern; only: a file pattern such as "*.css".
annotationsThe notes made on the preview (27.3) that are still to do, each with its id, page and element.
archive_noteArchives a note once its change is made, so that no one works it twice. id: the note's id.

Content and layout acts

ActWhat it does
edit_textChanges one piece of text. old is the text exactly as outline lists it; new its replacement, up to 5,000 characters. When the text appears more than once, nth says which, counting from 0. Text the site's settings write (its name, tagline, email, phone, address and description) is changed in the settings, and changes everywhere it shows. Text written by the site's database cannot be changed here.
movePuts the page's sections in a new order. order lists every section number once, in the new order: . Only a page whose sections outline numbers can be rearranged this way; on any other page, use move_element.
colorsSets the site's palette. vars names each colour and its value as #RRGGBB: bg, card, contrast, accent, accent2, accent3, line (the site's colours); fg, muted, heading, link, btn-fg, on-contrast (its text). r is the corner radius of the whole site, for example "8px". A page with stylesheets of its own that do not use the palette is not changed, and the answer says where its colours are instead.
designSets one element's look, as Design does in the Web Editor (27.5). selector: a CSS path to the element. base and hover: the look normally and under the pointer, as {property: value}, from color, background-color, border-color, border-width, border-style, border-radius, box-shadow, text-shadow, filter, transform, transition, padding, opacity, text-decoration, translate, scale, width, height, min-height, max-width and display; an empty value removes one; values may name the palette, as var(--accent). fx: a light effect, rim, spot, both or ""; lfx: the light effects of the Effects dialog (27.5), by kind (gradient, gloss, glint, rays, star, flare, spot), {} removing them all. screen: 1024 or 600 keeps the change for tablets or phones only. clear: true removes the element's design altogether.
undo, redoTakes back the last change to the version, or puts it back. Undo stops at a file that has since been changed some other way.

Structural acts

These change the page's source itself, element by element. Each finds its element with a selector (47.7), and each answers with what it matched, so that the result can be checked.

ActParametersWhat it does
css_ruleselector, decl {property: value}, or rules for several at once; file; mediaSets a style rule, or with rules several, as one step. If a rule with that selector exists (in that @media, when media is given), its properties are set in place and the others kept; otherwise the rule is added. An empty value removes a property. file: a .css file of the version; by default the page's first own stylesheet; "page" for the page's own <style>. media: for example "(max-width: 760px)". 1 to 60 properties at a time.
set_attrselector, attrs {name: value}Sets attributes on one element; an empty value removes one.
set_htmlselector, htmlReplaces everything inside one element.
insert_htmlselector, position, htmlInserts markup before or after one element, or first or last inside it.
remove_elementselectorRemoves one element and everything inside it, and the line it leaves empty.
move_elementselector, to, positionMoves one element before or after another (to), or first or last inside it. An element cannot be moved into itself.
wrapselector, tag, attrsPuts one element, or several side by side, inside a new element. tag is one of div (the default), section, article, header, footer, main, nav, aside, span, figure or a. To wrap several, give a selector list: ".card-a, .card-b". They must share one parent and stand next to one another, with nothing between.
columnsselector (a section), n (1 to 6), kindsDivides a section into columns, each type, media or object. Its content so far stays in the first column; a new text column gets a paragraph to edit, and media and object columns are empty frames. Only empty columns can be taken away.
fillselector (an empty frame), htmlPuts something into an empty frame, such as a picture.
duplicateselectorPlaces a copy of the element right after it.
besideselector (an item in a section row), htmlPlaces a new item right after it in the same row, taking half its width.

What the editor refuses

The structural acts are careful with your page, and refuse rather than guess. Nothing is changed when:

Tip Prefer #id and .class selectors for the structural acts. They are the least likely to match the wrong element, and they still match when the page's other parts are rearranged.

47.7 Selectors the Editor Reads

A selector is a short description of one or more elements on a page, written in the language of stylesheets. h1 means every main heading; #quote-form the one element whose id is quote-form; .price every element of the class price; footer .phone an element of class phone somewhere inside the footer.

The structural acts (47.6) and web (47.3) read this part of the language:

SelectorMatchesExample
tagElements of that kind; * for any kindsection, h2
#idThe element with that id#crew-photo
.classElements with that class; several may be joined.card.featured
Elements that have that attribute
…whose value is exactly v
…whose value contains the word v
…whose value begins with v
…whose value ends with v
…whose value contains v anywhere
:nth-of-type(n)The nth of its kind among its parent's childrenli:nth-of-type(3)
:nth-child(n)The nth of all its parent's children.card:nth-child(2)
:first-of-type, :last-of-typeThe first, or last, of its kindp:first-of-type
:first-child, :last-childThe first, or last, of all its parent's childrenli:last-child
a bb anywhere inside aheader nav a
a > bb directly inside aul.services > li
a, bEither; for wrap, the elements to wrap together.card-a, .card-b

Parts are combined as in a stylesheet: nav#main > a.button[href^="/"]:first-of-type. n is a plain number: odd, even and 2n+1 are not read.

Not read: the sibling signs + and ~, :not(), :hover and the other states, and ::before and ::after. An attribute value with a space in it cannot be matched exactly; match one of its words with ~=, or a part with *=.

Note css_rule is the exception. Its selector is not looked up on the page: it is written into the stylesheet as given, so any selector a browser understands may be used there, and it may match many elements, as a style rule usually does. The selector for design may use letters, digits, #, ., -, _, :, brackets ( ), spaces and >.

47.8 Useful cPanel (Bash) Commands

The commands in this section are not Gridtop's. They are standard Linux shell commands, typed in the shell of your hosting account: a command line on the server itself, where the shell, called Bash, carries out each command you type. Run them in cPanel's own Terminal (in cPanel, Advanced ▸ Terminal) or over SSH. They do not work in the Terminal's cPanel tab (47.4), which knows only its own commands, nor in the Bash tab of Autocomputing '26 (31.3), which runs on your PC, not on the server.

In the shell, ~ is your account's home folder, and a website's files are usually in ~/public_html (the main domain) or a folder of the other domain's name. Change landotronix.com and the file names below for your own.

Finding your way

CommandWhat it does
pwdShows the folder you are in.
cd ~/public_htmlGoes into a folder. cd .. goes up one; cd alone goes home.
ls -laLists a folder in full: hidden files (names starting with a dot, such as .htaccess), permissions, sizes and dates.
`ls -lt \head -20`The twenty most recently changed files, newest first.
find . -name "*.php" -mtime -2PHP files changed in the last two days, here and below.
find . -name error_logEvery PHP error log under this folder.
grep -rn "Landotronix" --include=*.php .Every line of every PHP file that contains Landotronix, with the file and line number.
cat contact.php, less contact.phpShows a file; less a page at a time (SPACE for the next, Q to quit).
head -n 30 index.php, tail -n 30 index.phpThe first, or last, 30 lines of a file.

Space and permissions

CommandWhat it does
du -sh ~/public_htmlHow much space a folder takes.
`du -sh * \sort -h`The size of everything in this folder, smallest first.
ls -l index.phpA file's permissions: who may read, write and run it.
chmod 644 contact.phpThe usual permissions for a website file: you may change it, and the web server may read it.
chmod 755 imgThe usual permissions for a website folder.

Copies, archives and backups

CommandWhat it does
cp contact.php contact.php.bakCopies a file; a habit worth keeping before changing one by hand.
cp -r img img-oldCopies a folder and everything in it.
mv old-name.php new-name.phpRenames, or moves, a file.
mkdir -p backups/2026-10Makes a folder, and any folders on the way.
tar -czf ~/backups/site-2026-10-05.tar.gz public_htmlPacks a whole site into one compressed archive.
tar -tzf site-2026-10-05.tar.gzLists what is in an archive, without unpacking it.
tar -xzf site-2026-10-05.tar.gzUnpacks an archive here.
zip -r site.zip public_html, unzip -l site.zipThe same with .zip: pack a folder; list an archive.
unzip site.zip -d restoreUnpacks a .zip into the folder restore.
Caution mv and cp replace a file of the same name without asking, and tar -x and unzip write over files that are already there. Unpack into an empty folder, and copy across what you need.

PHP, logs and the live site

CommandWhat it does
php -l contact.phpChecks a PHP file for syntax errors without running it: No syntax errors detected, or the line at fault. The same check Gridtop runs (editor_check, 47.5; 27.9).
php -vThe version of PHP the shell uses. It may differ from the version your website runs, which is set in cPanel.
tail -n 50 error_logThe last 50 PHP errors in this folder's log. A PHP error is written to an error_log file in the folder of the page that caused it.
tail -f error_logShows errors as they are written; load the page in another window to watch. CTRL+C stops.
ls ~/logsYour account's own log files, where cPanel keeps them.
curl -I https://landotronix.comAsks your site for its headers only: whether it answers (200), redirects (301, 302) or fails (404, 500).
crontab -lLists your account's scheduled jobs (cron).

Deleting

Caution The shell has no Receptaculum. A file deleted with rm is gone at once, and cannot be restored from Gridtop. Make a copy first, and read the command twice before pressing ENTER.
CommandWhat it does
rm contact.php.bakCaution. Deletes a file, for good.
rm -i *.bakCaution. Deletes files, asking about each one first.
rm -r img-oldCaution. Deletes a folder and everything in it, for good. Never use it on a folder you have not listed first with ls.

Databases from the shell

A database in cPanel is named with your cPanel username in front: landotro_shop, for an account named landotro. To reach one from the shell you need a database user and its password, from cPanel's MySQL Databases; -p makes the shell ask for the password, rather than showing it on the screen.

CommandWhat it does
mysqldump -u landotro_admin -p landotro_shop > ~/backups/shop-2026-10-05.sqlSaves a whole database, its tables and rows, as one .sql file: a backup.
mysqldump -u landotro_admin -p landotro_shop orders > orders.sqlThe same, for one table.
mysql -u landotro_admin -p landotro_shopOpens the database's own command line, where you type SQL (47.9). exit leaves it.
mysql -u landotro_admin -p landotro_shop < shop-2026-10-05.sqlCaution. Loads a .sql file into the database. A backup made by mysqldump replaces the tables it contains, with everything in them. Make a fresh backup first.

47.9 Useful SQL

These statements work in the Terminal's SQL tab (47.4), in the Server app's database window (28.3), and in the mysql command line (47.8). Your hosting's databases are MySQL or MariaDB, which speak the same SQL. Replace the table and column names with your own; tables and desc in the SQL tab show what they are.

Reading

Statements that read change nothing, and the SQL tab runs them without write on.

StatementWhat it does
SHOW TABLESLists the database's tables.
DESCRIBE ordersLists a table's columns, their types and keys. (In the SQL tab, desc orders.)
SHOW CREATE TABLE ordersThe statement that would make the table again, with every column, key and setting.
SELECT COUNT(*) FROM ordersHow many rows a table has.
SELECT * FROM orders LIMIT 20The first twenty rows, every column. Always use LIMIT on a table you do not know.
SELECT id, name, email, created_at FROM contacts ORDER BY id DESC LIMIT 20The twenty newest messages, the columns you name only.
SELECT * FROM contacts WHERE email LIKE '%@landotronix.com'Rows whose email ends in @landotronix.com; % stands for any text.
SELECT status, COUNT(*) FROM orders GROUP BY statusHow many orders are in each status.
SELECT * FROM orders WHERE created_at >= '2026-10-01'Rows from October 2026 on.
SHOW TABLE STATUSEvery table with its row count, size and engine.
SELECT table_name, ROUND((data_length + index_length) / 1048576, 1) AS mb FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY mb DESCEach table's size in megabytes, largest first.
EXPLAIN SELECT * FROM orders WHERE email = '[email protected]'How the database would find those rows, without running the query; a slow query shows here.

Changing

Statements that change a database need write on in the SQL tab, and ask before each one. Before any change, take a backup (mysqldump, 47.8), and run the same WHERE as a SELECT first, to see exactly which rows it will touch.

StatementWhat it does
INSERT INTO services (name, price) VALUES ('Lawn care', 45.00)Adds a row.
UPDATE services SET price = 49.00 WHERE id = 7Caution. Changes the rows the WHERE names; here, one.
UPDATE services SET price = 49.00Caution. With no WHERE, changes every row of the table. Almost never what is meant.
DELETE FROM contacts WHERE id = 412Caution. Deletes the rows the WHERE names, for good.
DELETE FROM contactsCaution. With no WHERE, deletes every row.
ALTER TABLE contacts ADD COLUMN phone VARCHAR(30) NULLCaution. Adds a column to a table. The Form Editor (29.2) does this for a form's table, with Undo.
TRUNCATE TABLE sessionsCaution. Empties a table entirely, at once. It cannot be undone.
DROP TABLE old_ordersCaution. Deletes a table and everything in it, for good.
Caution A database has no Receptaculum and no Undo. A row deleted, a table emptied or a column dropped is gone, unless you have a backup to load. Gridtop's agents cannot change a database (47.5); a change is always your own act.