provide both interactive and batch CLI