Hashkat (http://hashkat.org) is a free, open source, agent-based simulation software package designed to simulate large-scale online social networks (e.g., Twitter, Facebook, LinkedIn). It allows for dynamic agent generation, edge creation, and information propagation. The purpose of hashkat is to study the growth of online social networks and how information flows within them. Like real-life online social networks, hashkat incorporates user relationships, information diffusion, and trending topics. Hashkat was implemented in C++ and was designed with extensibility in mind. The software includes Bash and Python scripts for easy installation and usability. In this report, we describe all of the algorithms and features integrated into hashkat before moving on to example use cases. In general, hashkat can be used to understand the underlying topology of social networks, validate sampling methods of such networks, develop business strategy for advertising on online social networks, and test new features of an online social network before going into production.