This document describes the design of PNaCl (pronounced "pinnacle"), a suite of tools for building, testing, and distributing Native Client programs in an instruction-set neutral format. PNaCl uses the Low-Level Virtual Machine (LLVM) bitcode format to represent ISA- neutral portable executables compiled from code written in a variety of languages including C and C++.