Skip to content

macOS に Cursor をインストールし、Azure OpenAI Service を利用する

ここ最近、ChatGPT 連携機能を (プラグインでは無く) 本体に取り込んでいる Cursor の記事や動画をよく目にします。 ですが、いずれの情報も「OpenAI 社の ChatGPT 利用を前提」にしているものばかりに思えます。 そこで今回は macOS へ Cursor をインストールしつつ、Azure OpenAI Service を利用する為の設定手順をメモしておきます。

前提条件 / 方針

今回は下記の前提や方針で作業をしました。

  1. macOS 14.2 (Sonoma) 上で作業を実施
  2. Azure OpenAI Service のリソースはデプロイ済み
  3. Cursor はゼロから設定する (=VS Code の設定や機能拡張は引き継がない)
  4. CLI からは以下で各々、異なるアプリケーションを実行するように設定する1
    • code で VS Code を実行
    • cursor で Cursor を実行

Azure Portal での事前作業

Cursor インストール後は「Azure OpenAI Service の API キー」を設定することになります。 事前に API キーを確認しておきます。

Step.1

Azure Portal へログインしたら Azure OpenAI のリソースをクリックします。

file

Step.2

キーとエンドポイント をクリックします。

file

Step.3

Azure OpenAI Service を API として利用する為に必要な「API キー」や「エンドポイントの URL」などが表示されます。 後の手順で必要となる為、情報を控えておきます。

file

Step.4

また、Cursor で Azure OpenAI Service の設定を行う際は「デプロイ名」(Deployment Name) も必要になります。 Azure AI Studio へログインし、利用したいモデルのデプロイ名を確認し、こちらも同様に情報を控えておきます。

file

Cursor のインストール

続けて Cursor をインストールします。

Step.5

Cursor の公式サイトからダウンロードします。

file

ダウンロードした .zip を展開すると (アプリケーション形式では無く) インストーラ形式のバイナリが現れます。

file

これをダブルクリックしてインストーラを開始します。 インターネットからダウンロードしたバイナリである為、「実行して良いか?」という確認ダイアログが表示されました。 Open をクリックして続行します。

file

Step.6

インストールオプションが表示されます。 Language は「英語以外の言語で生成 AI へ質問した際、どの言語として扱うか?」を指定するようです。 ここを空欄のままでインストールすると生成 AI へ日本語で問い合わせを行っても、回答が英語になってしまいます。 今回は 日本語 と入力します。

Warning

一度インストーラを終了してしまうと、現状のバージョンでは GUI や設定ファイルから簡単にこの設定を変更することは出来ないように見えましたので、設定は慎重に行います。

また、CLI から cursor を実行した際に「Cursor を実行する」為、Install "cursor" をクリックして次へ進みます。

file

Step.7

アドミン権限で Apple Script をインストールして良いか、確認するダイアログが表示されます。 OK をクリックします。

file

Step.8

更に確認ダイアログが表示されますので OK をクリックします。

file

Step.9

CLI から利用出来る cursor コマンドがインストールされました。 Command LineInstall "cursor"Done 表示に変わっていることが分かります。 OK をクリックします。

Tip

cursor コマンドは /usr/local/bin/cursor にインストールされました。

file

Step.10

Continue をクリックして次へ進みます。

file

Step.11

VSCode の機能拡張を引き継ぐか、確認されます。 今回は上述の通り「引き継がない」方針ですので Start from Scratch をクリックして次へ進みます。

file

Step.12

少なくても現時点の Cursor は「Cursor の有料サービスを利用せず、Azure OpenAI Service」を利用する」としても Cursor アカウントが必須のようです。 既に Cursor アカウントを取得してあれば Log In を、アカウント未取得であれば Sign Up をクリックしてアカウントを取得します。

file

Step.13

Cursor が起動しました。 Azure OpenAI Service の API キーを設定する為、画面右上のギアアイコンをクリックします。

file

Step.14

設定画面が表示されますが、標準状態では (OpenAI API キーの設定は表示されますが) Azure OpenAI Service の API キー設定欄が表示されません。 下部にある Advanced をクリックします。

file

これで Azure OpenAI Service の設定欄が表示されます。 予め Azure Portal / Azure AI Studio で控えてあった情報を入力します。 「設定の保存」のようなボタンは無く、値を入力してウインドウを閉じれば設定は保存されています。

file

これで英語または日本語で Azure OpenAI Service へ問い合わせを実行出来るようになりました。

参考

cursor コマンドのヘルプ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
$ cursor --help
Cursor 0.16.0

Usage: cursor [options][paths...]

To read from stdin, append '-' (e.g. 'ps aux | grep code | cursor -')

Options
  -d --diff <file> <file>                    Compare two files with each other.
  -m --merge <path1> <path2> <base> <result> Perform a three-way merge by providing paths for two modified versions
                                             of a file, the common origin of both modified versions and the output
                                             file to save merge results.
  -a --add <folder>                          Add folder(s) to the last active window.
  -g --goto <file:line[:character]>          Open a file at the path on the specified line and character position.
  -n --new-window                            Force to open a new window.
  -r --reuse-window                          Force to open a file or folder in an already opened window.
  -w --wait                                  Wait for the files to be closed before returning.
  --locale <locale>                          The locale to use (e.g. en-US or zh-TW).
  --user-data-dir <dir>                      Specifies the directory that user data is kept in. Can be used to open
                                             multiple distinct instances of Code.
  --profile <profileName>                    Opens the provided folder or workspace with the given profile and
                                             associates the profile with the workspace. If the profile does not
                                             exist, a new empty one is created.
  -h --help                                  Print usage.

Extensions Management
  --extensions-dir <dir>              Set the root path for extensions.
  --list-extensions                   List the installed extensions.
  --show-versions                     Show versions of installed extensions, when using --list-extensions.
  --category <category>               Filters installed extensions by provided category, when using
                                      --list-extensions.
  --install-extension <ext-id | path> Installs or updates an extension. The argument is either an extension id or a
                                      path to a VSIX. The identifier of an extension is '${publisher}.${name}'.
                                      Use '--force' argument to update to latest version. To install a specific
                                      version provide '@${version}'. For example: 'vscode.csharp@1.2.3'.
  --pre-release                       Installs the pre-release version of the extension, when using
                                      --install-extension
  --uninstall-extension <ext-id>      Uninstalls an extension.
  --enable-proposed-api <ext-id>      Enables proposed API features for extensions. Can receive one or more
                                      extension IDs to enable individually.

Troubleshooting
  -v --version                    Print version.
  --verbose                       Print verbose output (implies --wait).
  --log <level>                   Log level to use. Default is 'info'. Allowed values are 'critical', 'error',
                                  'warn', 'info', 'debug', 'trace', 'off'. You can also configure the log level of
                                  an extension by passing extension id and log level in the following format:
                                  '${publisher}.${name}:${logLevel}'. For example: 'vscode.csharp:trace'. Can
                                  receive one or more such entries.
  -s --status                     Print process usage and diagnostics information.
  --prof-startup                  Run CPU profiler during startup.
  --disable-extensions            Disable all installed extensions. This option is not persisted and is effective
                                  only when the command opens a new window.
  --disable-extension <ext-id>    Disable the provided extension. This option is not persisted and is effective
                                  only when the command opens a new window.
  --sync <on | off>               Turn sync on or off.
  --inspect-extensions <port>     Allow debugging and profiling of extensions. Check the developer tools for the
                                  connection URI.
  --inspect-brk-extensions <port> Allow debugging and profiling of extensions with the extension host being paused
                                  after start. Check the developer tools for the connection URI.
  --disable-gpu                   Disable GPU hardware acceleration.
  --disable-chromium-sandbox      Use this option only when there is requirement to launch the application as sudo
                                  user on Linux or when running as an elevated user in an applocker environment on
                                  Windows.
  --telemetry                     Shows all telemetry events which VS code collects.

Subcommands
  tunnel       Make the current machine accessible from vscode.dev or other machines through a secure tunnel
  serve-web    Run a server that displays the editor UI in browsers.

  1. 設定によっては code または cursor いずれを実行しても「Cursor を実行する」ことも可能