> sudo anka --help
Usage: anka [OPTIONS] COMMAND [ARGS]...
Options:
--machine-readable Output a machine readable format (JSON)
--log-level [debug|info|error]
--debug
-l, --login TEXT Specify the vm policy user (if configured)
--help Display usage information
Commands:
attach Attach USB device(s) to a running VM
clone Clone a suspended or stopped VM
config Manage the CLI configuration
cp Copy files in and out of the VM and host
create Creates a VM
delete Delete a VM(s)
describe Show a VM's configuration
detach Detach USB device(s) from a VM
license Control Licensing
list List the current user's VM Template library
modify Modify a VM's configuration
mount Mounts a host directory into the VM
reboot Restart a running VM(s)
registry Configure and control the Anka Cloud Registry
run Run a command inside of a VM (will start VM...
show Show a VM's runtime properties
start Start or resume a stopped or suspended VM
stop Shut down a VM(s)
suspend Suspend a running VM(s)
unmount Unmount the mounted host directory
usb Manage USB devices
version Output the Anka version
view Open VM in Anka Viewer
> sudo anka attach --help
Usage: anka attach [OPTIONS] VMID [DEVID]...
Attach USB device(s) to a running VM
Options:
--help Display usage information
> sudo anka clone --help
Usage: anka clone [OPTIONS] VM_ID [NEW_VM_NAME]...
Clone a suspended or stopped VM
Options:
-c, --copy Create an independent copy (disables caching and consumes more disk space)
--help Display usage information
> sudo anka config --help
Usage: anka config [OPTIONS] [PARAM]...
Manage the CLI configuration
Options:
-l, --list List parameter(s)
-r, --reset Reset parameter(s) back to default
-s, --sorted / -S, --unsorted Sort the output in alphabetical order
--help Display usage information
> sudo anka cp --help
Usage: anka cp [OPTIONS] [SRC]... DST
Copy files in and out of the VM and host
Options:
-R copy the src and its entire subtree to the dst
-L all symbolic links are followed
-H symbolic links in the command are followed
-P do not follow a symbolic links (default)
-f remove and create the dst file on open failure
-n do not overwrite an existing file.
-p preserve the source file attributes
-a same as -pPR options
--help Display usage information
❯ time anka cp ~/VirtualBox\ VMs/cloud-client-side-ha-1/cloud-client-side-ha-1.vdi 10.15.6:/Users/anka/
anka --debug cp 10.15.6:/Users/anka/ 0.86s user 20.60s system 4% cpu 8:53.85 total
Compare the ~9 minutes it takes for anka cp
to how much it takes to transfer the same file with scp
:
❯ time scp -P 10000 -v ~/VirtualBox\ VMs/cloud-client-side-ha-1/cloud-client-side-ha-1.vdi anka@192.168.0.110:/Users/anka/
scp -P 10000 -v anka@192.168.0.110:/Users/anka/ 110.61s user 60.88s system 22% cpu 12:46.30 total
> sudo anka create --help
Usage: anka create [OPTIONS] VMNAME
Creates a VM
Options:
-m, --ram-size TEXT Set the RAM size (including 'G' or 'M' on the end)
-c, --cpu-count INTEGER Set the number of CPU cores
-d, --disk-size TEXT Set the disk size when creating a new disk (including 'G' or 'M' on the end)
-a, --app PATH Path to the macOS installer .app
-p, --pkg PATH Include additional packages to be installed
-s, --postinstall PATH Include the script to run with root credentials on initial boot
-P, --profile PATH Include a configuration profile(s) to install alongside the macOS installation
--interactive Perform default interactive installation instead of the automated one
--help Display usage information
If you leave out
--ram-size
and--cpu-count
, Anka will choose for you based on your total CPU and RAM. It will try to halve the total CPU and RAM values, but has a min of 2CPU/4GB and a max of 8CPU/8GB
We recommend naming your initial VM after the version of macOS
Be aware of the user you're executing Anka CLI commands as. If you create VMs as root, they won't be available (when running
anka list
) to other users on the system and vice versa
By default
anka create
creates a VM Template with the usernameanka
and passwordadmin
. Environment variable are available to change these:ANKA_DEFAULT_USER
andANKA_DEFAULT_PASSWD
(be sure to usesudo -E
when issuing the create command)
The VM creation should take around 30 minutes
Anka Develop licenses default your VM in a stopped state (the only available state)
Anka Build licenses default your VM in a suspended state
Catalina and lower VMs are created with SIP/Kext Consent disabled by default. It's strongly advised to keep these settings for optimal Anka performance. If you need to re-enable SIP/Kext Consent, then use this command
anka modify {vmNameOrUUID} set custom-variable sys.csr-active-config 0
sudo anka create --ram-size 8G --cpu-count 4 --disk-size 80G \
--app /Applications/Install\ macOS\ Catalina.app 10.15.6
> sudo anka delete --help
Usage: anka delete [OPTIONS] [VMID]...
Delete a VM(s)
Options:
--yes Avoid asking of confirmation
-a, --all Delete all vms in library
--help Display usage information
> sudo anka describe --help
Usage: anka describe [OPTIONS] VM_ID
Show a VM's configuration
Options:
--help Display usage information
> sudo anka detach --help
Usage: anka detach [OPTIONS] VMID [DEVID]...
Detach USB device(s) from a VM
Options:
-a, --all Detach all devices from the vm
--help Display usage information
> sudo anka license --help
Usage: anka license [OPTIONS] COMMAND [ARGS]...
Control Licensing
Options:
--help Display usage information
Commands:
accept-eula Accept EULA (requires root privileges)
activate Activate license key (requires root...
remove Remove the current license (requires root...
show Show license information
validate Validate the current license
> sudo anka license accept-eula --help
Usage: anka license accept-eula [OPTIONS]
Accept EULA (requires root privileges)
Options:
--help Display usage information
> sudo anka license activate --help
Usage: anka license activate [OPTIONS] KEY
Activate license key (requires root privileges)
Options:
-f, --force Silently override the current license
--cid TEXT Submit the CustomerID
--help Display usage information
> sudo anka license remove --help
Usage: anka license remove [OPTIONS]
Remove the current license (requires root privileges)
Options:
--help Display usage information
> sudo anka license show --help
Usage: anka license show [OPTIONS]
Show license information
Options:
-k, --key TEXT Get key information
--help Display usage information
> sudo anka license validate --help
Usage: anka license validate [OPTIONS]
Validate the current license
Options:
--help Display usage information
> sudo anka list --help
Usage: anka list [OPTIONS] [VMID]...
List the current user's VM Template library
Options:
-r, --running Show only running vms
-s, --stopped Show only stopped vms
-f, --field TEXT Change the fields displayed for the VM. Supported fields: name, version, uuid, creation_date,
status, stop_date, description, policy, cpu_cores, cpu_frequency, cpu_htt, ram, display.
--help Display usage information
> sudo anka modify --help
Usage: anka modify [OPTIONS] VM_ID COMMAND [ARGS]...
Modify a VM's configuration
Options:
--help Display usage information
Commands:
add
delete
set
show
> sudo anka modify 11.1.0 add --help
Usage: anka modify add [OPTIONS] COMMAND [ARGS]...
Options:
--help Display usage information
Commands:
hard-drive
network-card
optical-drive
port-forwarding
usb-device
> sudo anka modify 11.1.0 add hard-drive --help
Usage: anka modify add hard-drive [OPTIONS] ARGUMENT
Options:
-f, --file Path to an external image or device
-s, --size The size (default: 80G)
--help Display usage information
> sudo anka modify 11.1.0 add network-card --help
Usage: anka modify add network-card [OPTIONS]
Options:
-t, --type [shared|host|bridge|disconnected]
[default: shared]
-b, --bridge TEXT Host interface name to bridge with (Wi-Fi not supported)
-m, --mac TEXT Assign to a fixed MAC address
--help Display usage information
> sudo anka modify 11.1.0 add optical-drive --help
Usage: anka modify add optical-drive [OPTIONS] ISO
Options:
-f, --file Path to an external image or device (required)
--help Display usage information
> sudo anka modify 11.1.0 add port-forwarding --help
Usage: anka modify add port-forwarding [OPTIONS] RULE_NAME
Options:
-p, --host-port INTEGER The host port to listen on
-g, --guest-port INTEGER The port inside of the VM that the host-port connects to [required]
-l, --host-ip TEXT The IP to bind the host port with (defaults to 0.0.0.0)
--guest-ip TEXT The IP to bind to inside of the VM
--help Display usage information
❯ sudo anka modify 10.15.4 add port-forwarding --guest-port 22 ssh
❯ sudo anka describe 10.15.4
. . .
port_forwarding_rules
+------------+--------------+-------------+------------+-----------+-------------+
| net_card | guest_port | rule_name | protocol | host_ip | host_port |
+============+==============+=============+============+===========+=============+
| 0 | 22 | ssh | tcp | 0 | 0 |
+------------+--------------+-------------+------------+-----------+-------------+
❯ sudo anka start 10.15.4
. . .
port_forwarding
+--------------+-------------+------------+--------+-----------+
| guest_port | host_port | protocol | name | host_ip |
+==============+=============+============+========+===========+
| 22 | 10000 | tcp | ssh | 0.0.0.0 |
+--------------+-------------+------------+--------+-----------+
❯ ssh anka@localhost -p 10000
Password:
Last login: Mon Apr 6 12:45:50 2020
Mac-mini:~ anka
> sudo anka modify 11.1.0 add usb-device --help
Usage: anka modify add usb-device [OPTIONS] [DEVICE]...
Options:
-f, --force Skip device validation
--help Display usage information
> sudo anka modify 11.1.0 delete --help
Usage: anka modify delete [OPTIONS] COMMAND [ARGS]...
Options:
--help Display usage information
Commands:
custom-variable
hard-drive
network-card
optical-drive
policy
port-forwarding
usb-device
> sudo anka modify 11.1.0 delete custom-variable --help
Usage: anka modify delete custom-variable [OPTIONS] KEY
Options:
--help Display usage information
> sudo anka modify 11.1.0 delete hard-drive --help
Usage: anka modify delete hard-drive [OPTIONS] [INDEX]...
Options:
--help Display usage information
> sudo anka modify 11.1.0 delete network-card --help
Usage: anka modify delete network-card [OPTIONS] [INDEX]...
Options:
--help Display usage information
> sudo anka modify 11.1.0 delete optical-drive --help
Usage: anka modify delete optical-drive [OPTIONS] [INDEX]...
Options:
--help Display usage information
> sudo anka modify 11.1.0 delete policy --help
Usage: anka modify delete policy [OPTIONS]
Options:
--help Display usage information
> sudo anka modify 11.1.0 delete port-forwarding --help
Usage: anka modify delete port-forwarding [OPTIONS] RULE_NAME
Options:
--help Display usage information
> sudo anka modify 11.1.0 delete usb-device --help
Usage: anka modify delete usb-device [OPTIONS] [DEVICE]...
Options:
--help Display usage information
> sudo anka modify 11.1.0 set --help
Usage: anka modify set [OPTIONS] COMMAND [ARGS]...
Options:
--help Display usage information
Commands:
cpu Set number of cpu cores and frequency
custom-variable Set custom nvram & smb variables (Example: .
description Set description of the VM
display Configure displays
hard-drive Modify hard drive settings
name Set new template name for the VM
nested Enable nested virtualization
network-card Modify network card settings
policy Enable VM access management
ram Set RAM size and parameters
> sudo anka modify 11.1.0 set cpu --help
Usage: anka modify set cpu [OPTIONS] [NCPU]...
Set number of cpu cores and frequency
Options:
-c, --cores INTEGER Set the number of cores
-h, --htt / --no-htt Enable/disable hyper-threading
-f, --frequency INTEGER Set the base CPU frequency (Hz)
--help Display usage information
> sudo anka modify 11.1.0 set custom-variable --help
Usage: anka modify set custom-variable [OPTIONS] KEY VALUE
Set custom nvram & smb variables (Example: . . . set custom-variable hw.serial "<SERIAL>"
Options:
--help Display usage information
sudo anka modify {vmNameOrUUID} set custom-variable hw.UUID "GUID"
sudo anka modify {vmNameOrUUID} set custom-variable hw.serial 'MySerial'
> sudo anka modify 11.1.0 set description --help
Usage: anka modify set description [OPTIONS] TEXT
Set description of the VM
Options:
--help Display usage information
> sudo anka modify 11.1.0 set display --help
Usage: anka modify set display [OPTIONS]
Configure displays
Options:
-n, --count INTEGER Configure number of displays (2 max)
--headless same as --count 0
-p, --password Prompt for VNC password
-v, --vnc TEXT Configure VNC
--no-vnc Disable VNC access to the VM
-d, --dpi INTEGER Set DPI (default is 72)
-r, --resolution TEXT Set resolution, e.g. 1024x768 or 'default' to reset to default
-c, --controller [fbuf|pg] Set video controller
--host-gpu-location TEXT Specify location of the host GPU to use, or 'any'
--host-gpu-name TEXT Specify name of the host GPU to use, or 'any'
--features INTEGER Specify extended features flags as a bit mask
--help Display usage information
> sudo anka modify 11.1.0 set hard-drive --help
Usage: anka modify set hard-drive [OPTIONS] [INDEX]...
Modify hard drive settings
Options:
-c, --controller [ablk|virtio-blk|sata]
Set controller
-s, --size TEXT Set disk size
-e, --enc [aes-128|aes-192|aes-256|none]
Set OTFE algorithm
--help Display usage information
It's currently impossible to downsize a VM's hard-drive. We suggest creating your initial VM Template with a smaller amount of available disk and then increase in subsequent Tags.
Post-modify, you need to tell disk utility to modify the VM's disk to consume the new free space:
anka run --no-volume {vmNameOrUUID} diskutil apfs resizeContainer disk1 0
> sudo anka modify 11.1.0 set name --help
Usage: anka modify set name [OPTIONS] NAME
Set new template name for the VM
Options:
--help Display usage information
> sudo anka modify 11.1.0 set nested --help
Usage: anka modify set nested [OPTIONS] NESTED
Enable nested virtualization
Options:
--help Display usage information
> sudo anka modify 11.1.0 set network-card --help
Usage: anka modify set network-card [OPTIONS] [INDEX]...
Modify network card settings
Options:
-t, --type [shared|host|bridge|disconnected]
-b, --bridge TEXT host interface name to bridge with
-m, --mac TEXT specify fixed MAC address
-n, --no-mac deassign fixed MAC address
-v, --vlan INTEGER assign VLAN ID
-c, --controller [anet|virtio-net]
set controller
--help Display usage information
--vlan
is useful if using a VLAN and bridged mode
[INDEX] is always 0 since Anka doesn’t support more than 1 NIC per VM.
WiFi interfaces are not supported yet
❯ anka describe 11.0.1
. . .
network_cards
+------------+--------+--------+-----------+
| pci_slot | type | mode | pci_id |
+============+========+========+===========+
| 28 | anet | shared | 538975646 |
+------------+--------+--------+-----------+
. . .
❯ anka modify 11.0.1 set network-card 0 -t bridge
❯ anka describe 11.0.1
. . .
network_cards
+------------+--------+--------+-----------+
| pci_slot | type | mode | pci_id |
+============+========+========+===========+
| 28 | anet | bridge | 538975646 |
+------------+--------+--------+-----------+
. . .
> sudo anka modify 11.1.0 set policy --help
Usage: anka modify set policy [OPTIONS] [FILE]...
Enable VM access management
Options:
--help Display usage information
> sudo anka modify 11.1.0 set ram --help
Usage: anka modify set ram [OPTIONS] [SIZE]...
Set RAM size and parameters
Options:
--prefetch / --no-prefetch Enable/disable prefetch logic
--help Display usage information
> sudo anka modify 11.1.0 show --help
Usage: anka modify show [OPTIONS] COMMAND [ARGS]...
Options:
--help Display usage information
Commands:
custom-variables Display custom nvmram & smb variables
> sudo anka modify 11.1.0 show custom-variables --help
Usage: anka modify show custom-variables [OPTIONS]
Display custom nvmram & smb variables
Options:
--help Display usage information
> sudo anka mount --help
Usage: anka mount [OPTIONS] VMID [DIR]...
Mounts a host directory into the VM
Options:
--help Display usage information
> sudo anka reboot --help
Usage: anka reboot [OPTIONS] [VMID]...
Restart a running VM(s)
Options:
-f, --force Forcefully stop the VM
-a, --all Reboot all running vms
--help Display usage information
> sudo anka registry --help
Usage: anka registry [OPTIONS] COMMAND [ARGS]...
Configure and control the Anka Cloud Registry
Options:
-r, --remote TEXT Set the registry name (instead of 'default')
-a, --registry-path TEXT Set the registry URL (instead of 'default')
-c, -i, --cert, --pem PATH Path to your node certificate (if certificate authentication is enabled)
-k, --key PATH Path to your node certificate key if the client/node certificate doesn't contain one
--cacert, --root-cert PATH Path to a CA Root certificate
--insecure Skip TLS verification
--help Display usage information
Commands:
add Add a registry
check-download-size Return the size of the template and tag
delete Remove the registry from your configuration
describe Show a VM template description and tags
list List VMs in registry
list-repos List registries you have configured
pull Pull the specified VM template (and latest...
push Push a VM template (and tag) to the Cloud...
set Set default registry
> sudo anka registry add --help
Usage: anka registry add [OPTIONS] REG_NAME REG_URL
Add a registry
Options:
--help Display usage information
> sudo anka registry check-download-size --help
Usage: anka registry check-download-size [OPTIONS] VM_ID
Return the size of the template and tag
Options:
-t, --tag TEXT
-v, --version INTEGER
--help Display usage information
> sudo anka registry delete --help
Usage: anka registry delete [OPTIONS] [REMOTE]...
Remove the registry from your configuration
Options:
-a, --all Forget all registries
--help Display usage information
> sudo anka registry describe --help
Usage: anka registry describe [OPTIONS] VM_ID
Show a VM template description and tags
Options:
-t, --tag TEXT
-v, --version INTEGER
--help Display usage information
> sudo anka registry list --help
Usage: anka registry list [OPTIONS] [VMID]...
List VMs in registry
Options:
--help Display usage information
> sudo anka registry list-repos --help
Usage: anka registry list-repos [OPTIONS]
List registries you have configured
Options:
-d, --default show only the default registry
--help Display usage information
> sudo anka registry pull --help
Usage: anka registry pull [OPTIONS] VM_ID
Pull the specified VM template (and latest tag) from the registry
Options:
-t, --tag TEXT
-v, --version INTEGER
-l, --local Avoid pulling the tag from the registry if it already exists on the current machine
-s, --shrink Remove all other local tags to optimize disk usage
--help Display usage information
> sudo anka registry push --help
Usage: anka registry push [OPTIONS] VM_ID [TAGNAME]...
Push a VM template (and tag) to the Cloud Registry
Options:
-t, --tag TEXT Set the tag name to push
-d, --description TEXT Set the description of the tag
-v, --remote-vm TEXT The name of a registry template you want to push the local template (and tag) onto
-l, --local Assign a tag to your local template and avoid pushing to the Registry
-f, --force Forcefully push, regardless of a tag already existing
--help Display usage information
> sudo anka registry set --help
Usage: anka registry set [OPTIONS] REG_NAME
Set default registry
Options:
--help Display usage information
> sudo anka run --help
Usage: anka run [OPTIONS] VM_NAME COMMAND [ARGS]...
Run a command inside of a VM (will start VM if suspended or stopped)
Options:
-w, --workdir PATH Working directory inside the VM
-v, --volumes-from, --volume PATH
Mount a host directory into VM (defaults to current directory)'--volumes-from' is
deprecated form
-n, --no-volumes-from, --no-volume
Use this flag to prevent implicit mounting of current folder(see --volume option).
'--no-volumes-from' is deprecated form
-E, -e, --env Inherit environment variables ('-e' is the deprecated form)
-f, --env-file PATH Provide environment variables from file
-N, --wait-network Delay execution until guest network interface is fully up
-T, --wait-time Delay execution until guest time syncs
--help Display usage information
> sudo anka show --help
Usage: anka show [OPTIONS] VM_ID [PROPERTY]...
Show a VM's runtime properties
Options:
--help Display usage information
> sudo anka start --help
Usage: anka start [OPTIONS] VM_ID
Start or resume a stopped or suspended VM
Options:
-u, --update-addons, --update Run the guest addons update procedure (previous version of the addons should already
be installed)
-f, --force Start VM with minimum checks
-v, --view Open VM in an Anka Viewer window
-o, --optical-drive TEXT Path to an ISO file or device
-d, --usb TEXT Attach a USB device by Name, Vendor ID, Location, or Claim Name (device must be
claimed)
--help Display usage information
> sudo anka stop --help
Usage: anka stop [OPTIONS] [VMID]...
Shut down a VM(s)
Options:
-f, --force Forcefully stop the VM
-a, --all Shutdown all running vms
--help Display usage information
> sudo anka suspend --help
Usage: anka suspend [OPTIONS] [VMID]...
Suspend a running VM(s)
Options:
-a, --all Suspend all running vms
--help Display usage information
> sudo anka unmount --help
Usage: anka unmount [OPTIONS] VMID [DIR]...
Unmount the mounted host directory
Options:
-a, --all Unmount all mounted directories
--help Display usage information
> sudo anka usb --help
Usage: anka usb [OPTIONS] COMMAND [ARGS]...
Manage USB devices
Options:
--help Display usage information
Commands:
claim Make a device(s) available for attaching to a...
list List available usb devices
release Release a device(s) back to host
> sudo anka usb claim --help
Usage: anka usb claim [OPTIONS] [DEVID]...
Make a device(s) available for attaching to a vm
Options:
-n, --claim-name TEXT Set the claim name / alternative name (can be reused and assigned to multiple devices for
grouping
--help Display usage information
> sudo anka usb list --help
Usage: anka usb list [OPTIONS] [DEVID]...
List available usb devices
Options:
--help Display usage information
> sudo anka usb release --help
Usage: anka usb release [OPTIONS] [DEVID]...
Release a device(s) back to host
Options:
-a, --all Release all devices
--help Display usage information
> sudo anka version --help
Usage: anka version [OPTIONS]
Output the Anka version
Options:
--help Display usage information
> sudo anka view --help
Usage: anka view [OPTIONS] VM_ID
Open VM in Anka Viewer
Options:
-d, --display INTEGER Specify the displays to view
--screenshot Make png screenshot
--click Send HDI events
--click-rec Record HID events
--help Display usage information
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.