A type of end-user software for receiving and/or interacting with data from the Bitcoin blockchain. Bitcoin clients function as wallets and can sign transactions. Some clients function as light nodes and others as full nodes.
"Download the official Bitcoin client to get started."
For history, one of the earliest available proof of a running bitcoin-0.1.0 with a human readable debug log. There might have been also (private) earlier client code before 0.1.0 available only to Satoshi Nakamoto. Source
There are several modes which wallets can operate in. They have an inverse relationship with regards to trustlessness and computational requirements:
Full clients verify transactions directly by downloading a full copy of the blockchain (over 150 GB as of January 2018). They are the most secure and reliable way of using the network, as trust in external parties is not required. Full clients check the validity of mined blocks, preventing them from transacting on a chain that breaks or alters network rules. Because of its size and complexity, downloading and verifying the entire blockchain is not suitable for all computing devices.
Lightweight clients consult full nodes to send and receive transactions without requiring a local copy of the entire blockchain (see simplified payment verification – SPV). This makes lightweight clients much faster to set up and allows them to be used on low-power, low-bandwidth devices such as smartphones. When using a lightweight wallet, however, the user must trust full nodes, as it can report faulty values back to the user. Lightweight clients follow the longest blockchain and do not ensure it is valid, requiring trust in full nodes. Source