A local-first private AI assistant for everyday use. Runs on-device models with encrypted P2P sync, and supports sharing chats publicly on ATProto.
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #4 from tileshq/cursor/TIL-10-fix-mlx-runner-file-not-found-error-45f0

Fix mlx runner file not found error

authored by

Anandu Pavanan and committed by
GitHub
b0d8431a 4bf12368

+43 -7
+23
.coderabbit.yml
··· 1 + language: "en-US" 2 + early_access: false 3 + reviews: 4 + profile: "chill" 5 + request_changes_workflow: false 6 + high_level_summary: false 7 + poem: false 8 + auto_review: 9 + enabled: true 10 + drafts: false 11 + review_status: true 12 + commit_status: true 13 + collapse_walkthrough: true 14 + changed_files_summary: false 15 + sequence_diagrams: true 16 + assess_linked_issues: true 17 + related_issues: true 18 + path_instructions: 19 + - path: "**/*.{rs,toml}" 20 + instructions: 21 + "Review the Rust code for conformity with best practices in Rust, 22 + Systems programming. Highlight any deviations." 23 +
+1
memgpt.modelfile
··· 1 + FROM driaforall/mem-agent
+2 -2
src/core/modelfile.rs
··· 249 249 } 250 250 } 251 251 252 - fn parse_file(input: &str) -> IResult<&str, Vec<(&str, Output)>> { 252 + fn parse_file(input: &str) -> IResult<&str, Vec<(&str, Output<'_>)>> { 253 253 separated_list1(multispace0, parse_command).parse(input) 254 254 } 255 255 256 - fn parse_command(input: &str) -> IResult<&str, (&str, Output)> { 256 + fn parse_command(input: &str) -> IResult<&str, (&str, Output<'_>)> { 257 257 pair( 258 258 delimited(multispace0, parse_instruction, multispace0), 259 259 alt((
+17 -5
src/runner/mlx.rs
··· 38 38 args.push("--adapter-path".to_owned()); 39 39 args.push(adapter_path); 40 40 } 41 - let mut mlx = Command::new("mlx_lm.chat") 42 - .args(args) 43 - .spawn() 44 - .expect("mlx runner failed"); 41 + let mut mlx = match Command::new("mlx_lm.chat").args(args).spawn() { 42 + Ok(child) => child, 43 + Err(e) => { 44 + if e.kind() == std::io::ErrorKind::NotFound { 45 + eprintln!("❌ Error: mlx_lm.chat command not found"); 46 + eprintln!("💡 Hint: Install mlx-lm by running: pip install mlx-lm"); 47 + eprintln!("📝 Note: mlx-lm is only available on macOS with Apple Silicon"); 48 + std::process::exit(1); 49 + } else { 50 + eprintln!("❌ Error: Failed to spawn mlx_lm.chat: {}", e); 51 + std::process::exit(1); 52 + } 53 + } 54 + }; 45 55 46 - mlx.wait().expect("wait failed"); 56 + if let Err(err) = mlx.wait() { 57 + eprintln!("❌ Error: Failed to wait for mlx_lm: {}", err); 58 + } 47 59 }