Replicate module provides an API to duplicate / clone an entity.
Basics
Replicate provides a main cloning function, along with several hooks to control exactly how a field is duplicated based on its type, add info after cloning, and supports custom fields and entities. It is intended to developers and does not contain any GUI (for the moment anyway).
The goal is to provide a way to easily clone any entity, and to allow developers to be able to control exactly how entities are replicated, based on their type or the fields they contain, and to be able to easily extend the replication control to custom fields or entities.
But there already is a Node Clone module!
The Node Clone module focus on cloning using the administration interface and is designed only for nodes replication, whereas Replicate can clone any entities (nodes, taxonomy terms, users, ...). Replicate is developer-oriented, and let you manage the cloning process the way you want.
Node Clone has also only one hook to alter cloned nodes, Replicate provides several hooks to be able to work on a specific entity type or field type and thus writing the smallest amount of code required.