unsigned57/lomo has 36 GitHub stars and 8 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-14 22:04 UTC. Last push 2026-10-12.
实测星标增长
- 24小时
- +1
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
关于
Lomo is a memos-like application for Android that uses native Markdown and is built on Jetpack Compose and Material 3.
效率工具README_CN.md
原文
Lomo
English | 中文
本地优先的 Android 与 Linux Markdown 备忘录——无云端围栏。
菜单 · 首页 · 详情
功能特性
记录
- 本地纯文本 — 备忘录存为标准 Markdown 文件
- 语音记录 — 快速录入语音备忘
- 桌面小组件 — 主屏幕快速记录与查看最近笔记
整理
- 标签 — 使用
#tags组织笔记,支持嵌套如#tag1/tag2 - 全文搜索 — 本地索引加速检索
- Material 3 — 简洁现代 UI,支持动态取色
- Linux TUI — 终端程序
lomo:时间流、任务、回顾、统计、附件、回收站、设置
回顾
- 热力图 — GitHub 风格的写作习惯贡献图
- 每日回顾 — 回顾「当年今日」你写了什么
同步与分享
- S3 备份(推荐) — 标准对象存储,支持端对端加密
- Git / WebDAV — 可选内置备份方式
- 局域网分享 — 将笔记分享到其他 Lomo 设备
如何同步笔记
笔记完全存储在本地。任选其一:
- S3(推荐) — 唯一支持端对端加密的内置选项;作者日常使用,维护最积极
- 任意文件同步 — Syncthing、Nextcloud 等同步本地文件夹
- Git / WebDAV — 内置备份(WebDAV 目前主要测试了坚果云)
Obsidian / Rclone 说明
Lomo 的 S3 同步兼容 Obsidian 的 Remotely Save 插件。该插件已经很久没有更新维护,安卓间同步时推荐使用 Lomo 的 S3 直接同步 Obsidian 的 vault 根目录。S3 支持自定义文件夹同步;在 Linux 上则更推荐直接使用 Rclone。
为什么开发 Lomo?
Lomo 的灵感来自于许多优秀的前辈,如 Memos、Flomo、Moe-Memos 以及 Obsidian 的 Thino 插件。Lomo 这个名字本身就是 "Local Memo"(本地备忘录)的缩写,或者说是去掉 F(Foreign,外部云服务器) 的 Flomo。
为什么要重复造轮子? 大多数现有的解决方案都需要服务器或网络连接。我想要类似 "Memos" 的体验——轻量级、带时间戳的碎片化记录——但是必须是纯离线的,并且基于本地 Markdown 文件 (markdown 作为一种通用的可迁移的格式显然是最佳选择)。
很长一段时间以来,我一直依赖 Obsidian 中的 Thino 插件。虽然 Thino 满足了基本需求,但 Obsidian 的移动端客户端感觉比较沉重,而且我发现该插件在移动端的 UI/UX 不够流畅和精致。
兼容性:Lomo 完全兼容 Thino 的日记文件格式。你完全可以把它当作是你 Thino 数据的独立原生 Android 客户端。
关于开发的说明:本项目几乎完全由 AI 辅助开发工具构建。由于 Lomo 是根据我的特定需求定制的,只要它还是我日常工具链的一部分,我就会一直维护它。如果你对 AI 生成代码的稳定性有顾虑,欢迎 Fork 并根据你的需求进行修改。
安装
Android
- 从 Releases 下载最新 APK
- 安装到 Android 设备(Min SDK 26)
- 首次启动时,选择一个本地文件夹存放备忘录
桌面 TUI(Linux / macOS / Windows)
- 从 GitHub Releases 下载对应平台的压缩包,校验
.sha256后解出lomo:- Linux x86_64:
lomo-*-x86_64-unknown-linux-gnu.tar.gz(Arch 用户也可在apps/tui/packaging/arch/lomo-bin里执行makepkg -si) - macOS Apple Silicon / Intel:
lomo-*-aarch64-apple-darwin.tar.gz/lomo-*-x86_64-apple-darwin.tar.gz——构建未签名,若被 Gatekeeper 拦截可用xattr -d com.apple.quarantine lomo或在系统设置中放行 - Windows x86_64:
lomo-*-x86_64-pc-windows-msvc.zip——在 Windows Terminal、PowerShell 或控制台中运行lomo.exe - 也可在任意平台从源码运行:
cargo run -p lomo-tui --release --locked
- Linux x86_64:
- 启动时指定目录可将其绑定为工作区:
lomo /path/to/notes。首次运行会在平台配置目录写入config.toml,默认workspace为~/Notes;仍可从config/config.toml.example复制后自行修改:- Linux:
$XDG_CONFIG_HOME/lomo/(通常是~/.config/lomo/) - macOS:
~/Library/Application Support/lomo/ - Windows:
%APPDATA%\lomo\
- Linux:
- 将
workspace指到笔记目录。编辑器优先级为该配置,其次$VISUAL,再次$EDITOR(绝不默认 vim) - Linux 必须设置
$XDG_RUNTIME_DIR;macOS 与 Windows 回退到私有run目录。缺少剪贴板或播放器时失败封闭,不伪造成功。媒体打开器默认 Linux 用xdg-open、macOS 用open、Windows 经 PowerShell 调Start-Process——可在config.toml用player = [...]覆盖 - 诊断:
LOMO_LOG=debug lomo把lomo.log写进状态目录(Linux 为$XDG_STATE_HOME/lomo/,macOS 为~/Library/Application Support/lomo/,Windows 为%LOCALAPPDATA%\lomo\);崩溃时恢复终端并把报告写到<state>/crash/
主界面是居中的单列正文流。
Enter阅读全文,Esc恢复阅读位置n展开可恢复的多行速记,Ctrl+S保存,Ctrl+E将草稿交给外部编辑器,e在外部编辑器修改已有记录/搜索(Ctrl+F切换全文/模糊拼音);:打开分组命令面板(当前项、筛选、页面、全局);.只显示当前项的操作;emd直接编辑、置顶、移入回收站Esc每次只退回一层,提示行始终写明它接下来会做什么- 支持图片协议的终端可在全文页显示图片
本轮桌面 TUI 不含内置 Git/WebDAV/S3 同步与局域网分享;跨端交换请复制 Markdown 工作区(含 .lomo)或使用外部文件同步。
从源码构建见下方 构建指南。
赞助
如果 Lomo 对你有帮助,可以在这里支持项目:赞助页面。
技术栈
- 语言: Kotlin + Rust(Rust 原生核心通过 JNI 接入)。桌面 TUI 是无 JNI 的宿主二进制
- UI: Android 为 Jetpack Compose(Material 3);桌面为 Ratatui 终端界面
- 架构: Android 为 MVVM + Clean Architecture(Domain / Data / UI);桌面为 TEA 组合根
- 依赖注入: Koin(Android)
- 异步: Coroutines & Flow(Android)
- 数据:
- Android 通过 Storage Access Framework 管理 Markdown 工作区,桌面使用宿主文件系统
- Rust 管理的 SQLite 派生索引与耐久
.lomo状态
构建指南
前置要求: Rustup、just,以及 app 模块 声明的 JDK 和 Android SDK 版本。 版本与路径的唯一来源见构建输入。
# 安装固定版本的 Rust 工具、targets 与 Android NDK
just bootstrap
# 构建并校验 Debug APK
just android debug
# 运行 TUI
cargo run -p lomo-tui --release --locked
# 工作树迭代门禁(加 --tests-only 跳过静态分析)
just dev
# 代码移交 / 合并门禁(适用范围见 Quality)
just check
just ci
native-bindings/src 与 native .so 都是可再生、被忽略的构建产物。构建必须支持干净检出,
也支持并保留已有本地编辑。签名 release 使用 just android release,必须提供发布规范中的 keystore 配置。
生产 FFI 身份为 native-bindings / com.lomo.nativebridge / liblomo_native_jni.so。
能力测试材料见 fixtures,模块权威以架构规范为准。
文档索引列出了各文档的唯一职责。
Android Studio 仍可用于编辑和设备调试,但仓库门禁与 native 生成必须使用上述命令。
许可证
本项目采用 GNU General Public License v3.0 许可证。