@@ -83,7 +83,7 @@ impl DirectoryShare {
83 if parts.len() < 2 || parts.len() > 3 {
83 if parts.len() < 2 || parts.len() > 3 {
84 return Err(format!("Invalid mount spec: {spec}").into());
84 return Err(format!("Invalid mount spec: {spec}").into());
86− let host = PathBuf::from(parts[0]);
86+ let host = expand_tilde_path(parts[0]);
87 let guest = PathBuf::from(parts[1]);
87 let guest = PathBuf::from(parts[1]);
88 let read_only = if parts.len() == 3 {
88 let read_only = if parts.len() == 3 {
89 match parts[2] {
89 match parts[2] {
@@ -117,6 +117,19 @@ impl DirectoryShare {
120+fn expand_tilde_path(value: &str) -> PathBuf {
121+ if let Some(stripped) = value.strip_prefix("~/") {
122+ if let Ok(home) = env::var("HOME") {
123+ return PathBuf::from(home).join(stripped);
125+ } else if value == "~" {
126+ if let Ok(home) = env::var("HOME") {
127+ return PathBuf::from(home);
130+ PathBuf::from(value)
120pub struct VmArg {
133pub struct VmArg {
121 pub cpu_count: usize,
134 pub cpu_count: usize,
122 pub ram_bytes: u64,
135 pub ram_bytes: u64,
@@ -206,17 +219,6 @@ where
208 directory_shares.push(mise_directory_share);
221 directory_shares.push(mise_directory_share);
210− // Add default shares, if they exist
212− DirectoryShare::new(home.join(".codex"), "/usr/local/codex".into(), false),
213− DirectoryShare::new(home.join(".claude"), "/usr/local/claude".into(), false),
218− directory_shares.push(share)
222 directory_shares.extend(extra_directory_shares);
224 directory_shares.extend(extra_directory_shares);