apt is a command-line utility for annotation processing. It includes a set of reflective APIs and supporting infrastructure to process program annotations. These reflective APIs provide a build-time, source-based, read-only view of program structure. They are designed to cleanly model the JavaTM programming language's type system after the addition of generics.

apt first runs annotation processors that can produce new source code and other files. Next, apt can cause compilation of both original and generated source files, thus easing the development cycle.