0부터 3개의 병합된 PR까지: Python CLI 레시피를 BasedHardware/OMI에 제공

작성자

카테고리:

← 피드로
DEV Community · Adrian · 2026-09-23 개발(SW)

Adrian

Over the past few weeks, I’ve been contributing to BasedHardware/omi, the open-source AI wearable project. As of this week, all three of my pull requests have been officially approved and merged into main by core maintainers and Omi’s founder Nik Shevchenko (@kodjima33).

Here is a quick recap of the journey, the recipes built, and 3 key engineering lessons learned along the way.

🚀 What We Built: The Python CLI Recipe Trilogy

The goal was to enable Omi users to seamlessly export and structure their conversational data without needing complex setups or external dependencies.

  1. PR #13701: Conversations to Markdown

    • Built a lightweight CLI recipe to convert raw conversation JSON dumps into structured Markdown compatible with Obsidian, Notion, and local notes.
    • Handled UTF-8 character encoding and atomic file writing to prevent corrupt exports.
  2. PR #14458: Memories Export with Categorization

    • Created an exporter for Omi’s memory stream, organizing insights by date and category tags.
  3. PR #13960: Action Items to Markdown with Full Unit Tests

    • The most rigorous of the three! This recipe extracts action items and checklists into formatted task lists.
    • When maintainer Aryan Gupta noted that earlier attempts had messy merge commits and no tests, I went back to the drawing board:
      • Implemented 9 comprehensive unit tests using Python’s standard unittest (all 9 passed in 0.05s).
      • Executed a clean linear git rebase on origin/main to eliminate redundant commits.
      • Result: Received quick approval from @kodjima33 and was merged directly into the core repo.

💡 3 Key Lessons Learned

1. Zero External Dependencies Win Every Time

In open-source CLI tools, relying on third-party libraries introduces dependency bloat and breaking changes across user environments. Writing scripts purely with Python’s standard library (urllib.request, json, datetime, argparse) guarantees that anyone can run the recipe out of the box with zero setup pain.

2. Welcome Tough Maintainer Feedback

When a maintainer asks for tests or calls a branch dirty, don’t get discouraged — treat it as free mentorship. Adding automated tests not only got the PR merged, but it also made the code unbreakable against future regressions.

3. Keep Git History Squeaky Clean

Interactive rebasing and keeping commits atomic is a superpower. A clean, single-commit PR with passing CI makes a maintainer’s job 10x easier to review and click “Merge”.

🔮 What’s Next?

I’m currently looking into extending these recipes to support direct third-party REST API payloads (like Todoist tasks and Notion blocks).

Contributing to active AI hardware/software projects is one of the fastest ways to level up real-world software engineering skills.

Have you contributed to open-source recently? What was your biggest takeaway from working with repository maintainers? Let’s discuss below! 👇

원문에서 계속 ↗