Para el caché, estarías mirando NSURLCache
y los métodos removeAllCachedResponses
y removeCachedResponseForRequest
Para LocalStorage, no parece haber una API para hablar directamente con Safari LocalStorage, excepto a través de JS.
Encontré este AppleScript sin embargo, que básicamente elude la API y elimina las bases de datos SQLite directamente, obviamente reemplaza USERNAME con tu nombre de usuario.
decirle a la aplicación "Finder"
select every item of folder "LocalStorage" of folder "Safari" of folder "Library" of folder "USERNAME" of folder "Users" of startup disk
move selection to the trash
end tell
Finalmente, hay un proyecto en SourceForge llamado SafariCleaner que hace todo lo que estás tratando de hacer en un conjunto de AppleScripts.