It’s often very useful to automate opening of multi panes with iTerm to execute many commands or getting access to many servers at the same time. This can be done through AppleScript.
You can copy this script and save it as multi-panes.scpt
#! /usr/bin/osascript -- List actions to perform set actions to {¬ {action:"echo 'I am the window 1'"}, ¬ {action:"echo 'I am the window 2'"}, ¬ {action:"echo 'I am the window 3'"}, ¬ {action:"echo 'I am the window 4'"}, ¬ {action:"echo 'I am the window 5'"}, ¬ {action:"echo 'I am the window 6'"}, ¬ {action:"echo 'I am the window 7'"}, ¬ {action:"echo 'I am the window 8'"} ¬ } -- Count number of actions set num_actions to count of actions -- Set cols and lines set num_cols to round (num_actions ^ 0.5) set num_lines to round (num_actions / num_cols) rounding up -- Start iTerm tell application "iTerm" activate # Create new tab tell current window create tab with default profile end tell -- Prepare horizontal panes repeat with i from 1 to num_lines tell session 1 of current tab of current window if i < num_lines then split horizontally with default profile end if end tell end repeat -- Prepare vertical panes set sessid to 1 repeat with i from 1 to num_lines if i is not 1 then set sessid to sessid + num_cols if i is not num_lines or num_actions is num_cols * num_lines then set cols to num_cols - 1 else set cols to (num_actions - ((num_lines - 1) * num_cols)) - 1 end if repeat with j from 1 to (cols) tell session sessid of current tab of current window split vertically with default profile end tell end repeat end repeat -- Execute actions repeat with i from 1 to num_actions tell session i of current tab of current window write text (action of item i of actions) end tell end repeat end tell
Then, you just have to call the script directly:
# osascript multi-panes.scpt
And here is what you’re getting:
Feel free to add/remove/update the actions as needed!