The CANable is a small open-source USB to CAN adapter. The CANable shows up as a virtual serial port on your computer and acts as a serial-line to CAN interface.
Check out the getting started page for more information on getting a CANable up and running.
On Linux the CANable works natively with slcand, so you can use all of the standard can-utils command-line utilities and even Wireshark to interact with the bus.
On Windows and Mac, the CANable works with cantact-app. This is a simple Java application that shows CAN traffic in real-time and allows you to transmit messages on the bus.
For even more flexibility, the canard library allows you to directly talk to the CAN bus from Python. The library is cross-platform and can connect directly to a CANable's virtual serial port interface. With only a couple lines of code you can decode traffic on the bus, send messages, and more.
Check out the getting started page for more information.
The CANable is a hardware clone of Eric Evenchick's CANtact project, an open-hardware USB to CAN adapter compatible with socketcan. I took his design and reworked the hardware to be a bit more suitable for my personal needs, with a screw terminal instead of a DB9 connector and a much smaller PCB.