Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Project Management with acctl

acctl Command Reference

acctl is the command-line tool for managing AutoCore projects. Here is a complete reference of all commands:

Creating and Cloning Projects

CommandDescription
acctl new <name>Create a new project with the standard template
acctl clone <host> [project]Download a project from a server
acctl clone <host> --listList available projects on a server
# Create a new project
acctl new my_machine

# Clone a project from a remote server
acctl clone 192.168.1.100 my_machine

# List all projects on a server
acctl clone 192.168.1.100 --list

Deploying

CommandDescription
acctl push project [--restart]Upload project.json to server
acctl push control [--start] [--no-build]Build and upload the control program
acctl push www [--source]Upload the web HMI (dist/ by default)
acctl pull [--extract]Download the active project as a zip
acctl upload <file> [--dest PATH]Upload a file to the project directory
# Full deploy workflow
acctl push project
acctl codegen
acctl push control --start
acctl push www

# Download a project from the server
acctl pull --extract

Control Program Lifecycle

CommandDescription
acctl control startStart the control program
acctl control stopStop the control program
acctl control restartRestart the control program
acctl control statusShow control program status

Monitoring

CommandDescription
acctl statusShow server status and project list
acctl logsShow recent control program logs
acctl logs --followStream logs in real time

Code Generation

CommandDescription
acctl codegenRegenerate gm.rs from the server’s project.json
acctl syncCompare and synchronize local/remote project.json

Configuration

CommandDescription
acctl set-target <host> [--port PORT]Set the default server address
acctl switch <project> [--restart]Switch the active project on the server

Variable Management

CommandDescription
acctl export-vars [--output FILE]Export variables to CSV
acctl import-vars [--input FILE]Import variables from CSV
acctl dedup-varsFind and remove duplicate variable links

Sending Commands

CommandDescription
acctl cmd <topic> [args...]Send a command to the server
# Read a variable
acctl cmd gm.read --name motor_speed

# Write a variable
acctl cmd gm.write --name motor_speed_setpoint --value 1500

# Send a command to a module
acctl cmd modbus.status
acctl cmd system.get_domains

# Create a new project on the server
acctl cmd system.new_project --project_name my_machine

Working with Multiple Projects

Each AutoCore server can host multiple projects, but only one is active at a time. Think of it like multiple PLC programs on a single controller — you choose which one runs.

# See all projects and which is active
acctl status

# Switch to a different project
acctl switch other_project --restart

# Create a new project directly on the server
acctl cmd system.new_project --project_name new_machine

Deploying to a Remote Server

If your AutoCore server is on a different machine (e.g., the actual production controller):

# Step 1: Set the target server
acctl set-target 192.168.1.100

# Step 2: Verify the connection
acctl status

# Step 3: Deploy
acctl push project
acctl push control --start
acctl push www

# Step 4: Monitor remotely
acctl logs --follow

All acctl commands after set-target will communicate with the remote server.

To override the target for a single command:

acctl --host 192.168.1.200 status

Importing and Exporting Variables

For large projects, you may find it easier to manage variables in a spreadsheet. acctl can export and import variables as CSV:

# Export current variables to CSV
acctl export-vars --output variables.csv

# Edit the CSV in your spreadsheet application...

# Import the modified variables back
acctl import-vars --input variables.csv

The CSV format has these columns: name, type, direction, link, description, initial.