惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
罗磊的独立博客
S
SegmentFault 最新的问题
V
V2EX
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
D
Docker
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
M
Microsoft Research Blog - Microsoft Research
Martin Fowler
Martin Fowler
S
Secure Thoughts
B
Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
T
True Tiger Recordings
GbyAI
GbyAI
P
Proofpoint News Feed
P
Privacy International News Feed
Jina AI
Jina AI
The Cloudflare Blog
I
Intezer
AWS News Blog
AWS News Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Security Archives - TechRepublic
NISL@THU
NISL@THU
The Register - Security
The Register - Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
S
Schneier on Security
L
LINUX DO - 热门话题
C
CXSECURITY Database RSS Feed - CXSecurity.com
Security Latest
Security Latest
C
Cybersecurity and Infrastructure Security Agency CISA

DEV Community

How to audit what your IDE extension actually sends to the cloud I Migrated 23 Make.com Scenarios to n8n and Cut My Bill by 60% — Complete Migration Guide (2026) Solving a Logistics Problem Using Genetic Algorithms Claude Code Skills Explained: What They Are & When to Use Them (2026) Maintaining Apache Iceberg Tables: Compaction, Expiry, and Cleanup Zero-Idle Local LLMs: Running Llama 3 in AWS Lambda Containers We scanned 8 B2B SaaS companies across 5 categories. ChatGPT named the same 12 brands in every answer. How To "Market" Yourself As A Tech Pro We scanned 500 MCP servers on Smithery. Here is what we found. HTML Basics for Beginners – Markup Language, Elements and Types of CSS DiffWhisperer: How I Turned Cryptic Git Diffs into Architectural Stories with Gemma 4 I built a version manager for llama.cpp using nothing but vibe coding. Unit Testing vs System Testing: Key Differences, Use Cases, and Best Practices for 2026 A game design textbook explains why products with fewer features win How to Build a Raydium Launchpad Bonding Curve in 5 Minutes with forgekit How to turn an AI prototype into a production system How Data Lake Table Storage Degrades Over Time Partition and Sort Keys on DynamoDB: Modeling data for batch-and-stream convergence Auto-Generate Optimized GitHub Actions Workflows For Any Stack With This New CLI Tool Unchaining the African Creator Economy The Treasure Hunt Engine Gotcha - A Lesson in Constrained Performance great_cto v2.17 - no more tambourine dance When Catalogs Are Embedded in Storage SafeMind AI: Instant Health & Safety Intelligence What Is PKCE, How It Works & Flow Examples AI Agent Failure Modes Beyond Hallucination Fastest Way to Understand Stryker Solana Accounts Explained to a Web2 Developer TV Yayın Akışı Sitesi Geliştirirken Öğrendiğim Teknik Dersler $500 Challenge Drop My First Look at Google's Gemma 4: A Quick Introduction How I use an LLM as a translation judge Best Calendar and Scheduling API for Developers — 2026 Comparison Agentic AI in Travel: Why UCP Isn't Travel-Ready Yet — and What We Measured I Finished Machine Learning. And Then Changed The Plan. The Five-Thousand-Line File The AI Whirlwind: Why Your Local Agent Matters More Than Ever I Built an Oracle DBA That Lives in Telegram. It Cut a 500K-Row Scan to 5 - After Asking Permission. The Day 2 Reality of Running a Kubernetes Lab on Your Mac: Stop/Start, CKS Scenarios, and What I Learned Building It. n8n for Airtable Power Users: 5 Automations That Take Your Base to the Next Level Validating Gemma 4 for Industrial IoT: A Governance Pattern VS Code Now Credits Copilot on Every Commit by Default Astro and Islands Architecture: Why Your Portfolio Doesn't Need React for Everything Booting from FAT12: How I added file reading to my x86 kernel Unity’s AI agent went public: the developers of a static analysis tool on what that means for code quality Anna's Archive publica un llms.txt para los LLMs que rastrean su catálogo CRDTs for Offline-First Mobile Sync Why I Built Mneme HQ: Preventing AI Agent Architectural Drift Google Antigravity 2.0 Is the I/O 2026 Announcement You Should Actually Care About I Built a Pay-Per-Call Crypto Signal API with x402 — Heres the Architecture JWT Token Refresh Patterns in React 19: Avoiding the Silent Auth Death Spiral 🚀 “From Prompts to Autonomous Agents: What Google I/O 2026 Changed” The Power of Distributed Consensus in Autonomous SOCs Sixteen TUI components, copy-paste, no dependency The Boring Reliability Layer Every Autonomous Agent Needs Nven - Secret manager Building Multi-Tenant Row-Level Security in PostgreSQL: A Production Pattern The Hardest Part of Being a Developer Isn't Coding Building Vylo — Looking for Collaborators, Partners & Early Support I Thought Memory Fades With Time. It Actually Fades With Information. ORA-00064 오류 원인과 해결 방법 완벽 가이드 I registered an AI agent at 1 AM and something cracked open in my head Pitch: Nven - Sync secrets. Ship faster. Why y=mx+b is the heart of AI From Routines to a Crew — Building a System That Plans Its Own Work & executes it 25 React Interview Questions 2026 (With Answers) — Hooks, React 19, Concurrent Mode An open source LLM eval tool with two independent quality signals Using Dashboard Filtering to Get Customer Usage in Seconds from TBs of Data Skills, Java 17, And Theme Accents 4 Hard Lessons on Optimizing AI Coding Agents Arctype: Cross-Platform Database GUI for LLM Artifacts Your robots.txt says GPTBot is welcome. Your server says 403. Organizing How to Use AWS Glue Workflow 5 n8n Automations Every Digital Agency Should Be Running (Bill More, Work Less) Getting Started with TorchGeo — Remote Sensing with PyTorch Designing a Scalable Cross-Platform Appium Framework Google Antigravity 2.0 & Slash Commands Building a Unified Adaptive Learning Intelligence with Gemma 4, Flutter, and Multi-Model Orchestration Looking for beta testers for a £60 server management application The Disk-Pressure Incident That Taught Me to Always Set LimitRanges and Other Lessons from Mirroring EKS Locally. Why AI Should Not Write SQL Against ERP Databases Vibe coding works until it doesn't. The debt is real. Shipping at the Edge: Migrating a Coffee Subscription Platform to Cloudflare Workers Stop Tab-Switching: A Developer's Guide to Color Tools That Actually Fit the Workflow DevOps vs MLOps vs AIOps: What Changes, What Stays, and a Simple Roadmap to Get Started Run Powerful AI Coding Locally on a Normal Laptop 5 n8n Automations Every WooCommerce Store Needs (Save 10+ Hours/Week) What I Learned Building My Own AI Harness Hytale Servers Will Fail Treasure Hunts Until We Fix Our Event Handling Redux in React: Managing Global State Like a Pro Unfreezing Your GitHub Actions: Troubleshooting Stuck Deployments and Protecting Your Git Repo Statistics Unlocking Project Discoverability on GHES: A Key to Software Engineering Productivity When the Cleanup Code Becomes the Project Rockpack 8.0 - A React Scaffolder Built for the Age of AI-Assisted Development Mismanaging the Treasure Hunt Engine in Hytale Servers Will Get You Killed Stop Calling It an AI Assistant. It’s Already Managing Your Company Why Hardcoded Automations Fail AI Agents Why I built a post-quantum signing API (and why JWT is on borrowed time) Weekend Thought: Frontend Build Tools Suffer From Work Amnesia A 10-Line Playwright Trick That Saved Me Hours on Every Sephora Run
Cursor as a shared environment for the customer and the developer
Nikita · 2026-05-13 · via DEV Community

Table of contents


Google poured $40 billion into Anthropic, Cursor "built" a browser with GPT-5.2, and I started writing code together with a customer.

Today I want to talk about a new experience in software development. Or rather, this story is more about organizing work and communication. The idea itself is fairly obvious given how quickly development is changing, but I still think it is useful to explain the technical details, describe the problems, and show the ways around them.

What if you showed the customer how to work with Cursor and use AI agents?

A client came to us who, like many people in recent years, is inspired by the AI revolution and wants to get as much value as possible from what neural networks can now offer. He has been building an offline real estate business for several years and is looking for ways to make life easier for his colleagues and counterparties through an online application. Our client had already gone through the classic development flow with a team of developers, and it did not produce the result he wanted. Then he tried no-code tools and AI tools for building an application from scratch. They give you quick prototypes and a strong start. They let a CEO validate a hypothesis very quickly and feel the interface with his own hands. But they have a ceiling. At some point, questions appear that can no longer be solved by dragging blocks around. This is where the engineering part has to enter the process: engineering support and engineering supervision.

One of the main problems in building business applications is that the client always knows how everything should work, but does not know how to implement it. The developer, on the other hand, has the implementation skills, but often has no real idea what the client actually wants. The result of this communication usually ends up scattered across separate documents or stored in someone's memory. Advanced LLMs do not really solve this problem either, because at minimum they are working with different context.


The first layer of the experiment is not code, but the environment

At the very beginning we decided not to take the simple route. The most obvious option would be to suggest that the client use an agent in Cursor to create tasks for developers. But why not go further and build a system that can operate as effectively as possible? The main question became this: how do we build a scalable environment where specialists with different profiles, the client's team, and AI agents work together in one flow without getting in each other's way? A system where every participant complements the work of the others instead of replacing it or breaking it.

Technically, but in plain terms, I built one connected setup: a shared project directory lives on a VDS, Cursor opens it through Remote SSH, each participant logs in as their own Linux user, and code, documentation, tasks, and supporting materials all live in one workspace. Order there is maintained by a combination of OS-level permissions, groups and ACLs, GitHub access boundaries, and the normal branch and pull request cycle.


SSH: first you need to agree where development actually lives

If we want all participants to work in the same context, a local folder on my computer is a poor candidate for the center of the system. So the basic idea is simple. There is a remote server. The project workspace lives there. Cursor connects to that server through Remote SSH. For the user, it feels almost like normal IDE work: you open Cursor, connect to the server, and see files, terminal, git, documentation, and tasks. But in reality, the code and the environment are not on the local machine; they are on the VDS.

There is an important organizational detail here. Cursor, as a product, lives on the user's side: each person has the app, an account, settings, models, and access to agents. In our case, on the client side, one corporate Cursor account (PRO+) is used by him and members of his team. Technically, this is convenient: people can connect from different devices and get a single entry point into the tool. On the development side, the approach is different. Each specialist has their own Cursor account and their own familiar settings. They connect to the project as professional development participants, not as users of the customer's corporate account.

Cursor with AI agents is an editor that can read the project, modify files, run commands, create new artifacts, and sometimes act with too much confidence. If several people connect to one workspace, and each of them can make changes to project files, there is an obvious risk that someone accidentally changes other people's files. That is why SSH access by itself does not solve the problem. After that, you still need to decide exactly where a person is allowed to go, what they can read, what they can edit, and which actions should be impossible for them even by accident.


Linux users and ACLs. Order should not depend on promises

The next layer is ordinary, boring, and very useful Linux mechanics. Every participant gets a separate user on the server. Then permissions are built at the OS level. If a user on the server is allowed to write a file, the agent in Cursor can potentially write it too. If not, the agent cannot magically bypass that.

For this kind of scenario, groups and ACLs are convenient. Groups give you a coarse model: for example, you can separate permissions for the development team and the client team. ACLs give you more precise control at the level of an individual user. In our project, for the most part, each employee got write access to their own repository and to the shared docs repository (.cursor), which contains a set of materials for AI agents. Other people's repositories are read-only. In practice, this is especially important because of agents. A person may not understand which files the agent is about to change. If permissions are configured correctly, some of those mistakes will be stopped not by human attentiveness, but by the file system.

At this design level, the first problem appears. Even if permissions are configured, people and AI still need to live somewhere inside the shared project context. You need a structure where it is clear where code lives, where documents live, where instructions live, where agent rules live, and where personal and shared tasks live. Otherwise, we simply have a server with folders, not a working environment. This is how the need to organize the workspace appears.


Workspace is not just a folder, but the shared context of the project

The concept of a "workspace" is easy to underestimate. It may look like just a directory opened in Cursor. But in this experiment, the workspace becomes a much more important entity. It includes the shared context:

  • Cursor commands, skills, and agents
  • application repositories
  • architecture documents
  • meeting materials
  • AI instructions and rules
  • task directories
  • solution drafts
  • review artifacts, and so on

This is the place where business context and technical context finally exist next to each other, in one structure available to both a human and an AI agent. In Cursor this is especially interesting, because part of AI behavior can be defined at the workspace level. The project can contain shared rules, commands, skills, subagents, and instructions that apply to everyone who opens that workspace. This starts to look less like a repository with code and more like a project operating system.

It is worth noting that Cursor provides two levels for this kind of configuration. The first is the workspace level, whose role I described above. The second is the user level. A specific person can have their own local Cursor settings, preferences, commands, or extensions. They live on that person's device and do not have to become shared project rules.

Unfortunately, the workspace does not solve all the original problems. In our setup, there is still a physical limitation. If two team members edit the same files on the server at the same time, they will get in each other's way. This is not Figma, where several cursors move around a design. A codebase and Markdown documents in a shared directory do not automatically become a convenient real-time collaborative environment. The same is true for two agents editing one file at the same time. One of them can overwrite the other's work. In other words, the workspace gives us shared context, but it does not remove the need to isolate changes. In other words, we ran into the next problem. And yes, of course, the most correct solution is GitHub.


GitHub. A shared workspace does not replace branches

A shared workspace solves the context problem, but it does not solve the problem of parallel development. In our project, GitHub brings the normal engineering model back, but in a new reading. A separate branch is created for each task, and changes live in isolation. The result is packaged as a pull request. CI and peer review check that it can be merged into the main branch, which remains an integration branch, not a sandbox for everyone at once.

In this model, participants can work in different ways. For example, the customer or someone on the customer's team works on the remote server through Cursor, because most likely this person is hearing about GitHub for the first time and is not required to know how to use it. A backend or frontend developer can work locally in their usual git flow. This is especially important when areas of responsibility overlap. If the customer uses AI to make a small interface change while a frontend developer is refactoring components in parallel, they should not work in the same working tree. One can use the remote workspace as the task and verification environment; the other can use a local branch and their own dev setup. GitHub will then reconcile the changes through a pull request, diff, review, and conflicts if there are any.


To sum up

As a result, we get the following model:

  • the workspace is needed for shared context and AI work
  • Linux permissions are needed so people and agents do not go where they should not
  • GitHub is needed so parallel changes do not turn into a fight over files
  • the PR is needed so engineering review remains a required layer before integration

Anticipating the questions of the reader who made it this far, I want to return to the role of the client and the members of his team. Even if he has Cursor, access to the workspace, and an AI agent, that is still not enough. He needs a clear scenario for working in a session with an AI agent. How to start a task, what to ask the agent, how to make the agent write a plan first, where to store the result, how not to work in dev, what to do with a pull request. Otherwise the whole setup will slide back into chaos, only now a more technological kind of chaos.

So the next step became an instruction for the customer to work with the AI agent. Not just a prompt like "do the task", but a full procedure: from checking git state and creating a branch to planning, implementation, tests, preview, and PR. That will be the topic of my next post. Spoiler: there is far more than one way to provide this kind of flow for agent work. Right now I am experimenting with subagents and skills in Cursor.