  Given a group $G$ and a subset $X \subset G$, an element $g \in G$ is called
quasi-positive if it is equal to a product of conjugates of elements in the
semigroup generated by $X$. This notion is important in the context of braid
groups, where it has been shown that the closure of quasi-positive braids
coincides with the geometrically defined class of $\mathbb{C}$-transverse
links. We describe an algorithm that recognizes whether or not an element of a
free group is quasi-positive with respect to a basis. Spherical cancellation
diagrams over free groups are used to establish the validity of the algorithm
and to determine the worst-case runtime.
