# TeachMyPC: I wanted file automation without giving AI control of my Mac

> Source: <https://dev.to/nohaaaa/teachmypc-i-wanted-file-automation-without-giving-ai-control-of-my-mac-3l95>
> Published: 2026-10-18 19:44:44+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle](https://dev.to/challenges/hacktoberfest-week2-2026-10-12).*

I have a habit of letting files pile up in my Downloads folder. PDFs, screenshots, random documents... and eventually I have to sit down and organize everything.

As a developer, I could write a script for that. But I don't really want to write and maintain a script every time I need something simple.

And not everyone knows how to write scripts in the first place.

So for this week's challenge, I built **TeachMyPC**, a macOS desktop app that lets you describe a file automation task in plain English (or Arabic!) and turn it into a reusable rule.

For example, I can write:

Move every new PDF file from my selected input folder to my selected output folder.

TeachMyPC uses a local AI model to interpret the instruction and prepare a rule. I can then review it, choose the folders, test it, and enable it when I'm ready.

After that, the app watches the selected folder and handles matching files automatically.

The important part for me was making sure that AI doesn't get to do whatever it wants on my computer.

It helps create the rule. It doesn't execute arbitrary commands.

The current version supports:

I also made new rules **disabled by default**. Nothing starts running just because the AI understood an instruction.

I'm thinking of people who work with a lot of repetitive files: freelancers, designers, photographers, and small businesses.

Someone who regularly downloads client PDFs, exports files, or organizes screenshots probably doesn't need a complicated automation platform. They just want those small tasks handled.

My idea would be a simple paid desktop utility, possibly with a one-time license rather than another monthly subscription.

I haven't validated the pricing with real customers yet. That's something I'd like to explore after the challenge.

**Video walkthrough:** [Watch TeachMyPC on YouTube](https://youtu.be/escAJXVs27U)

The walkthrough was recorded from the actual macOS app, with narration generated using ElevenLabs.

Here's the workflow I used for the demo:

The Dry Run part is worth showing because it lets me check the planned action without changing any files.

After Gemma interprets the instruction, TeachMyPC shows the generated rule in an editable form.

In this example, it identified a new-file trigger, a `.pdf` extension filter, and a Move action. I can review everything, change the rule name, or adjust the actions before continuing.

Once the rule is saved, it appears in the Automation Workbench, where I can check its status, authorized folders, and actions.

The screenshot below shows the rule still disabled, with a Dry Run preview for a sample PDF. I can see the planned destination without actually moving the file.

After enabling the rule and adding files to the watched folder, TeachMyPC records the results in Activity.

Each entry shows what happened to a file, whether the operation succeeded, and details like its original and destination paths. This makes it easier to check what the automation actually did.

**GitHub:** [TeachMyPC source code](https://github.com/NohaFahmi/teach-my-pc)

TeachMyPC is currently built and tested as a macOS desktop application. The repository includes the source code, setup instructions, and tests.

I'm mainly a frontend developer, so I started with Angular for the interface and used Tauri to turn it into a desktop app.

The stack is:

The flow is basically:

**Instruction → Local AI → Editable Rule → Validation → Dry Run → Enable → File Automation**

One design decision I spent time on was separating the AI from the execution logic.

Gemma only translates an instruction into structured rule data. The Rust side checks what the rule is allowed to do and performs supported operations.

I didn't want a model generating shell commands and running them directly.

There are also some safeguards:

I spent part of the final day testing the actual macOS app, not just the Angular interface. That included creating a PDF move rule, testing authorized and unauthorized file paths, checking the Dry Run behavior, and enabling and disabling rules.

Getting an AI model to return an answer wasn't the hardest part.

Making sure that answer was safe to use was.

For example, an instruction like "organize all my documents automatically" doesn't really tell the app what to do. What counts as a document? Where should the files go?

In testing, I found that Gemma could sometimes generate a rule for an ambiguous instruction instead of asking for more details.

That's a limitation I still want to improve. For now, the rule remains editable and disabled until the user reviews and explicitly enables it.

I also learned that testing a desktop app is quite different from testing a normal web application. A passing Angular test doesn't necessarily mean file watching and filesystem operations will behave correctly in the packaged app.

For this project, running AI locally made sense from the beginning.

TeachMyPC deals with local folders and personal files. I didn't want people to need a cloud AI account just to organize those files.

With Gemma running through Ollama, the instruction can be interpreted on the user's machine without sending it to a hosted model API.

It also means there's no per-request API cost for interpreting rules, although running the model locally does require resources.

And because the model is open-weight, I can experiment with its prompts and behavior without depending on a closed provider.

I like that the AI part is replaceable, too. The filesystem engine doesn't have to change just because I want to try another model later.

To me, that's the useful part of open AI here: I can use it for understanding natural language while keeping the actual automation under my control.

There's still work to do before I'd consider TeachMyPC a product ready to sell.

I want to improve how it handles vague instructions, make the first-time setup easier, and test it with people who aren't developers.

I'd also like to explore more useful file conditions and rule templates without turning it into an overly complicated automation tool.

For now, I'm happy that I managed to get from a plain-English instruction to an actual file being moved on my Mac.

And yes, my Downloads folder could still use some cleaning.

**Best Use of Gemma**

I used Gemma 3 4B through Ollama to interpret natural-language instructions and turn them into structured file automation rules.

Gemma doesn't execute commands or modify files directly. The generated rule goes through validation and requires user approval before it can run.

**Best Use of ElevenLabs**

I used ElevenLabs with the Lara voice to create the narration for my demo walkthrough.

I wanted the demo to feel like someone explaining a project they built, rather than a promotional video. ElevenLabs helped me put together a narrated walkthrough of the actual macOS application, from creating a rule to watching it work.
