Using iTerm 2, log into the machine you want to work with. This can be your local machine or a remote server over ssh. Start a new tmux session using the -CC option.
You will see a message saying tmux mode started with a Command Menu.
With this setup iTerm is your window manager. So if you're going to open new tabs, split panes, or open new windows you do so using all of the shortcuts you may be familiar with:
cmd + t: open a new tab cmd + n: open a new window cmd + d: split vertically cmd + shift + d: split horizontally
You can choose whether you want to do this using the same profile or not. If you choose to use the same profile, iTerm will use tmux to create virtual windows.
When you're done working and you're ready to detach you can simply close the tab or window. iTerm will ask you whether you want to detach tmux or kill the windows. Clicking Detach tmux Session will cleanly detach and allow you to re-attach in the future.
If you've got a tmux session already running and you want to attach, simply use:
tmux -CC attach
If you're familiar with Python's keyword-only arguments, then you've probably wondered why the same constraint doesn't exist for positional arguments. This changes with Python 3.