Report a problem →

コードのための テキストエディタ

// 現代の開発のための、伝統的なテキストエディタ。

Latest: v0.1.0-b210 · Apple Silicon · macOS 13.2+ · リリース · 変更履歴 · Discord

timer.py
 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    
Line 40, Column 13 qwen2.5-coder:1.5b, glm-5.3-flash:cloud ~/Desktop/focus-timer Python

ゼロレイテンシ入力

Koiは、ファイルが大きくなっても測定可能な低レイテンシの入力性能を実現できるよう最適化されています。

Latency benchmarks →

ローカルファースト

アカウント不要、クラウド不要、テレメトリなし。

Ollama経由でローカルモデルに接続し、コード補完やインラインチャットに利用できます。

複数ビュー、単一ドキュメント

必要な場所でドキュメントを開けます。Koiは、開いているすべてのウィンドウで変更を同期します。

柔軟なワークスペース

ファイルを横に並べて開いたり、水平ペインに分割したり、タブを別ウィンドウに切り離したりできます。

同じファイルを複数のウィンドウで開いていても、すべてのビューが自動的に同期されます。

プライベートなAI補完

Ollamaでローカルモデルを実行し、コードを手元に残したまま、マシンや作業スタイルに合うモデルを選べます。

AIによるコード候補は、高速で邪魔にならず、普段の編集操作に自然に組み込まれるよう設計されています。

インラインシェルとチャット

エディタを離れずにシェルコマンドを実行したり、ローカルAIとチャットしたりできます。現在の選択範囲をプロンプトとして送り、応答をそのままドキュメントへストリームできます。

カスタムエディタコマンド

プラグインフレームワークを学ぶ代わりに、プレーンなPythonでKoiを拡張できます。

エディタコマンドを作成し、ショートカットを割り当てて、組み込み機能のように使えます。

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.

ロードマップ

現在取り組んでいることと、最近リリースしたもの。

Submit feature request →

Find in file optimizations

Tab multi-select

Multi-cursor editing

Multiple views, single document

Inline AI chat

Local code completion

Project-wide search

Context-aware auto-complete

Custom editor commands

Code scroller (minimap)

Emacs-like org mode for notes

In-code shell and Python eval

高速で正確なシンタックスハイライトのために、手作業で調整されたネイティブレクサー。

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

料金

Personal Pre-release

$195 $325

一回払い

1ユーザー

台数無制限

商用利用可

一度購入すれば、ずっと所有

Personalを購入

Teams

$795 /year

最大10ユーザーまで

1ライセンスにつき最大10ユーザー

ユーザーごとに台数無制限

商用利用可

1年で期限切れ

Teamsを購入

Business

$19,995 /year

大規模組織向け

ユーザー数無制限

ユーザーごとに台数無制限

商用利用可

1年で期限切れ

Businessを購入

なぜライセンスを購入する必要がありますか?

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へメールし、購入に関係する情報(メールアドレス、名前、会社名、おおよその購入日時など)を含めてください。