<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cursor on Peter Fulop</title><link>https://peterfulop.tech/tags/cursor/</link><description>Recent content in Cursor on Peter Fulop</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Peter Fulop</copyright><lastBuildDate>Tue, 07 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://peterfulop.tech/tags/cursor/index.xml" rel="self" type="application/rss+xml"/><item><title>Creating a Cursor rule to keep Python workflows on uv</title><link>https://peterfulop.tech/p/creating-a-cursor-rule-to-keep-python-workflows-on-uv/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://peterfulop.tech/p/creating-a-cursor-rule-to-keep-python-workflows-on-uv/</guid><description>&lt;img src="https://peterfulop.tech/p/creating-a-cursor-rule-to-keep-python-workflows-on-uv/cursor-uv-first-workflow-new.png" alt="Featured image of post Creating a Cursor rule to keep Python workflows on uv" /&gt;&lt;p&gt;Not long ago, I wrote about setting up a &lt;code&gt;uv&lt;/code&gt;-first Python workflow for
Claude Code and Codex.&lt;/p&gt;
&lt;p&gt;Since then, I added the Cursor version to the same repo:&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/ipeterfulop/coding-agents-uv-setup" target="_blank" rel="noopener"
&gt;github.com/ipeterfulop/coding-agents-uv-setup&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The goal is still narrow and practical: if a project uses &lt;code&gt;uv&lt;/code&gt;, I want
the agent to stay inside that workflow when it installs dependencies,
runs scripts, or reaches for Python as a helper tool during a task.&lt;/p&gt;
&lt;p&gt;For Claude Code and Codex, that meant local instruction files. For
Cursor, the setup is a little different.&lt;/p&gt;
&lt;p&gt;Instead of dropping a single project instruction file into the repo
root, the Cursor flow here is to create a rule from the bundled
&lt;code&gt;.codex/AGENTS.md&lt;/code&gt; using &lt;code&gt;/create-rule&lt;/code&gt;. The repo now includes both the
ready-made rule at &lt;code&gt;.cursor/rules/python-uv-enforcement.mdc&lt;/code&gt; and a short
guide in &lt;code&gt;.cursor/README.md&lt;/code&gt; that shows how to create it.&lt;/p&gt;
&lt;p&gt;The policy itself is the same as before. The point is to make commands
like these the default:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv add httpx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv sync
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv run python script.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uv run pytest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uvx ruff check .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;And to avoid the usual drift back to things like &lt;code&gt;pip install&lt;/code&gt;, raw
&lt;code&gt;python&lt;/code&gt;, or manual dependency edits when the project is already meant to
run on &lt;code&gt;uv&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;What changed is not the Python workflow. What changed is that I now have
the same workflow expressed in a format Cursor can apply directly.&lt;/p&gt;
&lt;p&gt;That was the missing piece I wanted: one small repo, with one consistent
policy, adapted for Claude Code, Codex, and now Cursor as well.&lt;/p&gt;</description></item></channel></rss>