1
2 > How does rumps work in python? Give a small example
3
4 rumps (Ridiculously Uncomplicated Mac os x Python Statusbar) creates macOS menu bar apps.
5
6 Here's a small example:
7
8 import rumps
9
10 class MyApp(rumps.App):
11 def __init__(self):
12 super().__init__("MyApp", icon="icon.png")
13 self.menu = ["Preferences", "About", rumps.separator, "Quit"]
14
15 @rumps.clicked("Preferences")
16 def prefs(self, _):
17 rumps.alert("Preferences clicked!")
18
19 @rumps.clicked("About")
20 def about(self, _):
21 rumps.alert("This is my app!")
22
23 @rumps.clicked("Quit")
24 def quit_app(self, _):
25 rumps.quit_application()
26
27 if __name__ == "__main__":
28 MyApp().run()
29
30
1 # tray timer using rumps
2 import rumps
3 import time
4 from threading import Thread
5
6 class FocusTimer(rumps.App):
7 def __init__(self, duration: int = 1500): [10 lines folded]
18
19 @rumps.clicked("Start")
20 def start(self, _):
21 if self.running:
22 return
23
24 self.running: bool = True
25 Thread(target=self.tick, daemon=True).start()
26
27 @rumps.clicked("Reset")
28 def reset(self, _): [3 lines folded]
32
33 def tick(self):
34 while self.running and self.remaining > 0:
35 minutes: int = self.remaining // 60
36 seconds: int = self.remaining % 60
37 self.title: str = f"{minutes:02d}:{seconds:02d}"
38
39 time.sleep(1)
40 self.remaining = 1
41
42 if self.remaining == 0:
43 self.running = False
44 rumps.notification("Focus timer", "Done", "Time for a break.")
45
46 if __name__ == "__main__":
47 FocusTimer().run()
48
49
ローカルファースト
アカウント不要、クラウド不要、テレメトリなし。
Ollama経由でローカルモデルに接続し、コード補完やインラインチャットに利用できます。
複数ビュー、単一ドキュメント
必要な場所でドキュメントを開けます。Koiは、開いているすべてのウィンドウで変更を同期します。
柔軟なワークスペース
ファイルを横に並べて開いたり、水平ペインに分割したり、タブを別ウィンドウに切り離したりできます。
同じファイルを複数のウィンドウで開いていても、すべてのビューが自動的に同期されます。
プライベートなAI補完
Ollamaでローカルモデルを実行し、コードを手元に残したまま、マシンや作業スタイルに合うモデルを選べます。
AIによるコード候補は、高速で邪魔にならず、普段の編集操作に自然に組み込まれるよう設計されています。
インラインシェルとチャット
エディタを離れずにシェルコマンドを実行したり、ローカルAIとチャットしたりできます。現在の選択範囲をプロンプトとして送り、応答をそのままドキュメントへストリームできます。
Use cases
Zero-latency typing
Koi maintains a measured P95 typing latency of 17.86 ms while editing a 1 million-line Odin source file with syntax highlighting enabled.
Local AI, on your Mac
Koi works directly with local Ollama models, with no account, telemetry, or cloud intermediary. Use local code completion and inline AI while keeping your code and inference on your Mac.
Native macOS code editors
A look at code editors built specifically for macOS, from long-running editors like BBEdit and TextMate to newer alternatives like Nova, CodeEdit, and Koi.
Koi for note taking
Keep notes as ordinary Markdown, plain text, Org Mode, or other files. Open directly into your notes folder, search with ripgrep, and organize everything without a proprietary database.
現在取り組んでいることと、最近リリースしたもの。
Find in file optimizations
Multiple views, single document
Project-wide search
Custom editor commands
Code scroller (minimap)
Emacs-like org mode for notes
高速で正確なシンタックスハイライトのために、手作業で調整されたネイティブレクサー。
Asm
Bash
C
CSS
Clojure
C++
D
Diff
Elixir
Fortran
Gleam
Go
Haskell
HTML
Jai
Java
JavaScript
Julia
JSON
LaTeX
Lua
Makefile
Markdown
MATLAB
Mojo
Nim
OCaml
Odin
Org
Pascal
Perl
PHP
Python
R
Ruby
Rust
SQL
Swift
TOML
TypeScript
WAT
YAML
Zig
ライセンスFAQ。
なぜライセンスを購入する必要がありますか?
Koi Editorは非商用利用では無料です。仕事で使う場合は商用ライセンスが必要です。それが開発資金になります。
非商用利用とは何ですか?
非商用利用には、学習、個人プロジェクト、趣味での利用、評価が含まれます。Koi Editorを有償の仕事、会社の仕事、クライアントワーク、その他の商用活動で使う場合は、商用利用ライセンスが必要です。
どのライセンスを選べばいいですか?
Personalライセンスは個人ユーザー1名向けです。TeamsとBusinessライセンスは、組織や複数ユーザーでの利用向けです。
1人で仕事に使う場合:Personal
小規模グループで購入する場合:Teams
大きな組織を1つのライセンスでカバーする場合:Business
Personalライセンスを仕事で使えますか?
はい。ソフトウェアを使うのがあなた1人であれば、Personalライセンスを商用作業に使えます。複数ユーザーで使う場合は、TeamsまたはBusinessを選んでください。
TeamsではなくBusinessを選ぶべきなのはどんな場合ですか?
Teamsは小規模グループ向けで、1ライセンスにつき最大10ユーザーまで対応します。より多くのユーザーをカバーする必要がある場合は、チェックアウト時にTeamsライセンス数を増やすか、更新時にBusinessへ移行できます。
ライセンスファイルを紛失しました。どこで再取得できますか?
購入後に表示されたSession IDを使って、ライセンスファイルを復旧できます。
ライセンス復旧のお手伝いもできます。koi@hackerman.aiへメールし、購入に関係する情報(メールアドレス、名前、会社名、おおよその購入日時など)を含めてください。