In the uppermost ~3–5 km of continental strike-slip faults, a significant fraction of the total slip is typically accommodated by stable sliding, or fault creep. Creep can be continuous or episodic, lasting only a few hours, and varies throughout the earthquake cycle and from one fault to another. The most commonly used mechanical model attributes episodic creep events to the transition from unconsolidated sediments to lithified rocks at depth. However, this model cannot explain the wide variability in observed shallow creep characteristics on strike-slip faults in California. Here, we use numerical simulations to examine a range of alternative mechanical models that can reproduce the variability of shallow creep behaviour in both postseismic and interseismic periods. We find that geodetic observations of creep behaviour on a number of significant fault segments in California are matched when an additional unstable layer is embedded within the shallow, stable zone. This layer may result from fine-scale lithological heterogeneities within the stable zone, frictional behaviour varies with lithology, generating the instability. Our model suggests that the displacement of and interval between creep events are dependent on the thickness, stress and frictional properties of the shallow, unstable layer. We also suggest that such frictional heterogeneity may be the mechanism responsible for slow slip events in many subduction zones.