This is a short overview of the agent oriented programming (AOP) framework. AOP can be viewed as an specialization of object-oriented programming. The state of an agent consists of components called beliefs, choices, capabilities, commitments, and possibly others; for this reason the state of an agent is called its mental state. The mental state of agents is captured formally in an extension of standard epistemic logics: beside temporalizing the knowledge and belief operators, AOP introduces operators for commitment, choice and capability. Agents are controlled by agent programs, which include primitives for communicating with other agents. In the spirit of speech-act theory, each communication primitives is of a certain type: informing, requesting, offering, and so on. This paper describes these features in a little more detail, and summarizes recent results and ongoing AOP-related work.