SGX-LKL is a library OS designed to run unmodified Linux binaries inside SGX enclaves. It uses the Linux Kernel Library (LKL) (https://github.com/lkl/linux) to provide mature system support for complex applications within the enclave. A modified version of musl (https://www.musl-libc.org) is used as C standard library implementation. SGX-LKL has support for in-enclave user-level threading, signal handling, and paging. System calls are handled within the enclave by LKL when possible, and asynchronous system call support is provided for the subset of system calls that require direct access to external resources and are therefore processed by the host OS. The goal of SGX-LKL is to provide system support for complex applications and managed runtimes such as the JVM with minimal or no modifications and minimal reliance on the host OS. SGX-LKL has been tested on Ubuntu 16.04 and 18.04. To run SGX-LKL in SGX enclaves, the Intel SGX driver (available at https://github.com/01org/linux-sgx-driver and https://01.org/intel-software-guard-extensions/downloads) is required. We have tested SGX-LKL with driver versions 1.9 and 2.0. SGX-LKL also provides a simulation mode for which no SGX-enabled CPU is needed. Furthermore the following packages are required to build SGX-LKL: make, gcc, bc, python, xutils-dev (for makedepend), bison, flex.