Cobra uses single pulse time series data to search for and time pulsars, performing a fully phase coherent timing analysis. The GPU-accelerated Bayesian analysis package, written in Python, incorporates models for both isolated and accelerated systems, as well as both Keplerian and relativistic binaries. Cobra builds a model pulse train that incorporates effects such as aliasing, scattering and binary motion and a simple Gaussian profile and compares this directly to the data; the software can thus combine data over multiple frequencies, epochs, or even across telescopes.