From ab14a07f65ac76251cd4e6800a101751d734e2f0 Mon Sep 17 00:00:00 2001 From: Yixing Lao Date: Fri, 24 Apr 2026 21:40:23 +0800 Subject: [PATCH] feat(docs): add logo and improve setup instructions (#5) --- README.md | 34 ++++++++++++++++---------------- assets/logo.png | Bin 0 -> 26183 bytes assets/logo.svg | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 assets/logo.png create mode 100644 assets/logo.svg diff --git a/README.md b/README.md index d237730..d85b8dc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# deepseek-cursor-proxy +

deepseek-cursor-proxy logo deepseek-cursor-proxy

Compatibility proxy connecting Cursor to DeepSeek thinking models (`deepseek-v4-pro` and `deepseek-v4-flash`). @@ -6,7 +6,7 @@ Compatibility proxy connecting Cursor to DeepSeek thinking models (`deepseek-v4- - ✅ Caches DeepSeek `reasoning_content` from regular and streamed responses, then restores it on later tool-call turns when Cursor omits it. See [DeepSeek docs](https://api-docs.deepseek.com/guides/thinking_mode#tool-calls) for more details. - ✅ Mirrors streamed `reasoning_content` into Cursor-visible `...` text so that thinking tokens are shown in Cursor's UI. For BYOK/proxy mode, Cursor renders this as normal text, not as a native collapsible thinking block. -- ✅ Starts an ngrok tunnel so Cursor can reach the local proxy. +- ✅ Starts an ngrok tunnel so Cursor can reach the local proxy through a public HTTPS URL. - ✅ Provides other compatibility fixes to make DeepSeek models run well in Cursor. ## Why This Exists @@ -32,9 +32,11 @@ Provider returned error: ### Step 1: Set Up ngrok -Create an ngrok account, visit ngrok's Dashboard: https://dashboard.ngrok.com +Cursor blocks non-public API URLs such as `localhost`, so the proxy needs a public HTTPS URL. [ngrok](https://ngrok.com/) can expose the local proxy to Cursor without opening router ports. Alternatively, you may use [Cloudflare Tunnel](https://developers.cloudflare.com/tunnel/setup/). -![ngrok dashboard showing the public URL](assets/ngrok_dashboard.png) +Create an ngrok account, then visit ngrok's Dashboard: https://dashboard.ngrok.com + +![ngrok dashboard](assets/ngrok_dashboard.png) Then, install and authenticate ngrok once: @@ -69,14 +71,16 @@ Note: you can toggle the custom API on and off with: Install and run the proxy: ```bash -# Or, use your favourite Python package manager +# Or, use your favourite Python env manager conda create -n dcp python=3.10 -y conda activate dcp # Install +git clone https://github.com/yxlao/deepseek-cursor-proxy.git +cd deepseek-cursor-proxy pip install -e . -# Run in normal mode +# Run deepseek-cursor-proxy ``` @@ -84,23 +88,19 @@ The proxy creates `~/.deepseek-cursor-proxy/config.yaml` on first run. This will also print the ngrok public URL. If it differs from the one in Cursor, update it in Cursor's Base URL field. -Normal mode prints startup info, the ngrok URL, and safe request summaries. It does not print prompts, code, API keys, or request bodies. - -For more request lifecycle metadata, use verbose mode: - -```bash -deepseek-cursor-proxy --verbose -``` - -Verbose mode adds client/path/upstream metadata and full payload logs. It may print prompts and code to the terminal, so keep it off for normal use. - ### Step 4: Chat with DeepSeek in Cursor Select `deepseek-v4-pro` in Cursor and use chat or agent mode as usual. ![Chatting with DeepSeek in Cursor](assets/cursor_chat.png) -## Debugging and Development +## Debugging + +Run with verbose output: + +```bash +deepseek-cursor-proxy --verbose +``` Run without ngrok for local curl testing: diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4129eafac262e38e312f60e2b20c6cece5750696 GIT binary patch literal 26183 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 TZkGeU21}u>u8*p?Z4>oB(t7Tx literal 0 HcmV?d00001 diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..5cf44cb --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + +