Features (Características)
En esta lección vamos a ver todos los Features de Cursor Settings, cada uno con su video explicativo:
Recuera que en esta lección hay cuatro videos. Recomiendo verlos todos. Comencemos!!!!
– Cursor Tab
Cursor Tab es la función nativa de autocompletado de código en Cursor y en esta sección podemos configurarla
Cursor Tab puede:
- Sugiera ediciones alrededor del proyecto, no solo inserciones de código adicional.
- Modificar varias líneas a la vez.
- Haga sugerencias basadas en sus cambios recientes y errores.
Voy a destacar la función «Auto import» (Importación automática):
En proyectos de TypeScript y Python (beta), Tab puede importar automáticamente módulos y funciones desde otra parte de su proyecto, sin que tengas que escribir manualmente la declaración de importación.
– Chat
Chat es el asistente de IA de Cursor que se encuentra en tu barra lateral y te permite interactuar con tu código fuente mediante lenguaje natural. Puedes hacer preguntas, solicitar modificaciones de código, obtener sugerencias de comandos de terminal y mucho más, todo en el mismo lugar.
Te ayudo a explicar las opciones de configuración del Chat en Cursor y mis recomendaciones para optimizar tu experiencia:
Configuraciones Básicas del Chat
Default new chat mode
- Qué hace: Establece el modo por defecto cuando abres un nuevo chat
- Recomendación: Mantén «Agent» ya que te permite usar herramientas avanzadas y editar múltiples archivos
Chat text size
- Qué hace: Ajusta el tamaño del texto en los mensajes del chat
- Recomendación: «Default» está bien, ajusta según tu preferencia visual
Configuraciones de Comportamiento
Auto-refresh chats ✅
- Qué hace: Crea automáticamente un nuevo chat después de inactividad
- Recomendación: Mantener activado – evita conversaciones muy largas que pueden degradar el rendimiento
Auto-scroll to bottom ✅
- Qué hace: Se desplaza automáticamente al último mensaje generado
- Recomendación: Mantener activado – muy útil para seguir la conversación
Auto-apply to files outside context in Manual mode ✅
- Qué hace: Permite aplicar cambios a archivos fuera del contexto actual en modo manual
- Recomendación: Mantener activado – da más flexibilidad al agente
Configuraciones de Contexto
Include project structure (BETA) ✅
- Qué hace: Incluye un árbol simplificado del directorio para dar contexto al modelo
- Recomendación: Activar – ayuda mucho al AI a entender la estructura de tu proyecto
Full folder contents
- Qué hace: Cuando mencionas una carpeta utilizando
@folder
en el chat, esta función permite que Cursor incluya el contenido completo de todos los archivos dentro de esa carpeta en el contexto de la IA, siempre que sea posible. Esto proporciona una comprensión más profunda del código por parte de la IA, facilitando respuestas más precisas y detalladas. Cursor - Recomendación: Activar si deseas que la IA tenga acceso completo al contenido de las carpetas, especialmente útil en proyectos donde la comprensión del contexto completo es crucial. Sin embargo, ten en cuenta que incluir muchos archivos puede aumentar el uso de tokens y, por ende, el costo de las solicitudes, especialmente si tienes activado el modo Max.
Configuraciones de Automatización
Enable auto-run mode
- Qué hace: Permite al agente ejecutar comandos y escribir archivos sin confirmación
- Recomendación: Usar con precaución – Recomiendo activarlo cuando ya tengas experiencia y configurando Command allowlist
Command allowlist
El Command Allowlist es una característica de seguridad que funciona como una «lista blanca» – SOLO los comandos que específicamente agregues a esta lista podrán ser ejecutados automáticamente por Cursor cuando tengas habilitado el auto-run mode.
Comportamiento:
- ✅ Comandos en la lista: Se ejecutan automáticamente
- ❌ Comandos fuera de la lista: Se bloquean o piden confirmación
Filosofía: «Negar todo por defecto, permitir solo lo específicamente autorizado»
📋 Comandos Recomendados para ALLOWLIST
🟢 NIVEL 1: Ultra Básico (Principiantes)
Comandos completamente seguros, solo lectura y herramientas básicas:
bash# Información y navegación
ls
ls -la
ls -l
pwd
which
echo
cat
head
tail
grep
find
tree
# Git - Solo lectura
git status
git diff
git log
git branch
git show
git remote -v
# Herramientas de desarrollo - Solo lectura
npm --version
node --version
python --version
tsc --version
🟡 NIVEL 2: Desarrollo Básico
Añade herramientas de build y testing:
bash# Todos los del NIVEL 1 +
# NPM/Yarn - Scripts definidos
npm run build
npm run dev
npm run start
npm run test
npm run lint
npm run format
npm run check
npm run preview
# Yarn equivalentes
yarn build
yarn dev
yarn start
yarn test
yarn lint
# PNPM equivalentes
pnpm build
pnpm dev
pnpm test
# Linting y formateo
eslint
eslint --fix
prettier --write
prettier --check
black .
flake8
mypy
🟠 NIVEL 3: Desarrollo Intermedio
Añade gestión de dependencias y operaciones básicas de archivos:
bash# Todos los anteriores +
# Gestión de dependencias
npm install
npm ci
npm install --save
npm install --save-dev
npm update
npm audit
npm audit fix
# Yarn
yarn install
yarn add
yarn add --dev
# PNPM
pnpm install
pnpm add
# Python
pip install
pip install -r requirements.txt
poetry install
poetry add
# Operaciones básicas de archivos
mkdir
mkdir -p
touch
cp
mv
🔴 NIVEL 4: Desarrollo Avanzado
Para desarrolladores experimentados:
bash# Todos los anteriores +
# Docker
docker build
docker build -t
docker images
docker ps
docker logs
docker-compose build
docker-compose up --build
# Testing avanzado
jest
jest --watch
pytest
pytest -v
vitest
mocha
cypress run
playwright test
# Build tools
webpack
vite build
rollup
tsc
tsc --noEmit
babel
# Git básico (con precaución)
git add
git add .
git commit -m
git push
git pull
git checkout
git checkout -b
git merge
git stash
git stash pop
⚡ NIVEL 5: Experto (Usar con extrema precaución)
Solo para desarrolladores muy experimentados:
bash# Todos los anteriores +
# Operaciones más complejas
chmod +x
chmod 755
rsync
scp (con rutas específicas)
curl (solo GET a APIs conocidas)
wget (archivos específicos)
# Database (solo lectura/desarrollo)
psql -c "SELECT"
mysql -e "SELECT"
mongo --eval "db.collection.find()"
# Servicios locales
pm2 start
pm2 stop
pm2 restart
supervisorctl restart
⚙️ Configuración Práctica del Allowlist
Para Proyectos React/Next.js:
bashnpm install
npm run build
npm run dev
npm run start
npm test
npm run lint
eslint --fix
prettier --write
git status
git diff
Para Proyectos Vue/Nuxt:
bashnpm install
npm run build
npm run dev
npm run generate
npm test
eslint --fix
prettier --write
git status
Para Proyectos Python/Django:
bashpip install -r requirements.txt
python manage.py runserver
python manage.py migrate
python manage.py test
black .
flake8
pytest
git status
Para Proyectos Node.js/Express:
bashnpm install
npm run build
npm run dev
npm start
npm test
nodemon
jest
git status
- Qué hace: Controla qué comandos pueden ejecutarse automáticamente
- Recomendación: Configurar cuidadosamente – añade comandos seguros al allowlist
Command denylist
El Command Denylist funciona como una «lista negra» – Cursor puede ejecutar CUALQUIER comando automáticamente, EXCEPTO los que específicamente agregues a esta lista.
Comportamiento:
- ❌ Comandos en la lista: Se bloquean siempre
- ✅ Comandos fuera de la lista: Se ejecutan automáticamente
Filosofía: «Permitir todo por defecto, bloquear solo lo específicamente peligroso»
🚫 Comandos Recomendados para DENYLIST
💀 CRÍTICOS – Nunca permitir:
Destrucción Masiva del Sistema
bash# Eliminación recursiva peligrosa
rm -rf /
rm -rf /*
rm -rf ~/*
rm -rf .*
rm -rf *
sudo rm -rf
rmdir -rf
# Limpieza destructiva
find / -delete
find ~ -delete
xargs rm -rf
# Formateo de discos
mkfs
mkfs.ext4
mkfs.ext3
mkfs.ntfs
mkfs.fat32
fdisk
parted
gparted
cfdisk
# Escritura destructiva
dd if=/dev/zero of=/dev/sda
dd if=/dev/random
dd if=/dev/urandom
dd bs=1M
Control del Sistema
bash# Apagado/Reinicio
shutdown
shutdown -h now
shutdown -r now
reboot
halt
poweroff
init 0
init 6
systemctl poweroff
systemctl reboot
# Modificación de servicios críticos
systemctl stop sshd
systemctl disable NetworkManager
systemctl mask
service sshd stop
service networking stop
Escalada de Privilegios
bash# Sudo peligroso
sudo su
sudo su -
sudo passwd
sudo passwd root
sudo visudo
sudo chown root
sudo chmod 777
sudo chmod -R 777
# Cambio de permisos masivos
chmod 777 /
chmod -R 777 /
chmod -R 755 /
chown -R root /
chgrp -R root /
chattr -R
🌐 REDES – Comandos de red peligrosos:
Transferencias y Conexiones No Autorizadas
bash# Descargas y ejecuciones remotas
curl | bash
curl | sh
curl | sudo sh
wget | sh
wget | bash
bash <(curl
sh <(wget
# Transferencias peligrosas
scp root@
scp * root@
rsync --delete /
rsync -av / root@
nc -e /bin/bash
nc -l -p
# SSH peligroso
ssh root@
ssh -o StrictHostKeyChecking=no
Modificación de Red
bash# Firewall
iptables -F
iptables -X
iptables -t nat -F
ufw --force reset
ufw delete
# Configuración de red
ifconfig down
ifconfig eth0 down
route del default
ip route del
NetworkManager stop
🔧 INSTALACIÓN – Instaladores del sistema:
Gestores de paquetes del sistema
bash# Debian/Ubuntu
apt-get install
apt install
apt-get remove --purge
apt-get autoremove
dpkg -i
dpkg --remove
# Red Hat/CentOS
yum install
yum remove
dnf install
dnf remove
rpm -i
rpm -e
# Arch Linux
pacman -S
pacman -R
pacman -Rns
# macOS
brew install --cask
brew uninstall --force
Instaladores globales peligrosos
bash# Node.js global
npm install -g
npm uninstall -g
yarn global add
yarn global remove
# Python global
pip install --user
pip install --break-system-packages
easy_install
# Otros
gem install
cargo install --force
go install
🗄️ BASE DE DATOS – Comandos destructivos:
Eliminación de datos
bash# MySQL
mysql -e "DROP DATABASE"
mysql -e "DROP TABLE"
mysql -e "DELETE FROM"
mysql -e "TRUNCATE"
mysqldump --all-databases | mysql
# PostgreSQL
psql -c "DROP DATABASE"
psql -c "DROP TABLE"
psql -c "DELETE FROM"
psql -c "TRUNCATE"
pg_dump | psql
# MongoDB
mongo --eval "db.dropDatabase()"
mongo --eval "db.collection.drop()"
mongodump --drop
# Redis
redis-cli FLUSHALL
redis-cli FLUSHDB
redis-cli DEL
🐳 DOCKER – Comandos peligrosos:
Contenedores con privilegios
bash# Ejecución privilegiada
docker run --privileged
docker run --pid=host
docker run --net=host
docker run -v /:/host
docker run --cap-add=ALL
# Limpieza destructiva
docker system prune -a
docker system prune --force
docker container prune -f
docker image prune -a
docker volume prune -f
docker network prune -f
# Parada/eliminación masiva
docker kill $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
⚡ PROCESOS – Control de procesos:
Terminación masiva
bash# Kill masivo
killall
killall -9
pkill
pkill -9
kill -9 -1
kill -KILL
pgrep -f | xargs kill
# Procesos críticos
kill -9 1
kill -9 $(pgrep init)
kill -9 $(pgrep systemd)
kill -9 $(pgrep NetworkManager)
⚙️ Configuración Práctica del Denylist
🎯 Denylist Minimalista (Lo más peligroso)
bashrm -rf
sudo rm -rf
dd if=/dev/zero
mkfs
shutdown
reboot
curl | bash
wget | sh
chmod 777
sudo su
🎯 Denylist Completa (Recomendada)
bash# Destrucción del sistema
rm -rf
sudo rm -rf
dd if=/dev/zero
dd if=/dev/random
mkfs
fdisk
parted
# Control del sistema
shutdown
reboot
halt
poweroff
systemctl stop
systemctl disable
# Privilegios
sudo su
sudo passwd
sudo chmod 777
chmod -R 777
# Red
curl | bash
wget | sh
ssh root@
scp root@
iptables -F
# Instalación
apt-get install
yum install
npm install -g
pip install --user
# Base de datos
mysql -e "DROP
psql -c "DROP
mongo --eval "db.dropDatabase"
redis-cli FLUSHALL
# Docker
docker run --privileged
docker system prune -a
docker kill $(docker ps -q)
# Procesos
killall
pkill -9
kill -9 -1
🤔 ¿Allowlist o Denylist?
Usa ALLOWLIST si:
- ✅ Eres principiante con Cursor
- ✅ Trabajas en proyectos críticos
- ✅ Prefieres máxima seguridad
- ✅ Quieres control granular
- ✅ Tu equipo tiene diferentes niveles de experiencia
Usa DENYLIST si:
- ⚠️ Eres un desarrollador muy experimentado
- ⚠️ Necesitas máxima flexibilidad
- ⚠️ Trabajas en entornos de desarrollo aislados
- ⚠️ Confías completamente en Cursor
- ⚠️ Mantienes backups regulares
💡 Recomendación Final
Para la mayoría de usuarios: ALLOWLIST es la opción más segura. Empieza con comandos básicos y ve añadiendo gradualmente según tus necesidades.
Configuraciones de Protección
Delete file protection ✅
- Qué hace: Previene que el agente elimine archivos automáticamente sin tu confirmación previa
- Recomendación: Mantener activado – protege contra eliminación accidental de archivos importantes
MCP tools protection ✅
- Qué hace: Previene que el agente ejecute automáticamente herramientas MCP (Model Context Protocol) sin tu confirmación previa
- Recomendación: Mantener activado – protege contra ejecución no autorizada de herramientas externas
Dot files protection ✅
- Qué hace: Previene que el agente modifique automáticamente archivos que comienzan con punto (.) sin tu confirmación previa
- Recomendación: Mantener activado – protege archivos de configuración críticos del sistema y proyecto
Outside Workspace Protection ✅
- Qué hace: Restringe a la IA de modificar, eliminar o ejecutar archivos que no estén dentro de la carpeta de trabajo activa. Esto previene cambios accidentales o maliciosos en otras partes del sistema de archivos
- Recomendación: Mantener activado. Es especialmente importante cuando se utiliza el modo «auto-run», ya que proporciona una capa adicional de seguridad al limitar las acciones de la IA al contexto del proyecto actual
Configuraciones Avanzadas
Dialog «Don’t Ask Again» Preferences
- Qué hace: Permite al usuario suprimir futuras confirmaciones en ciertos diálogos, como al editar mensajes anteriores en el chat. Por ejemplo, al editar un mensaje anterior, Cursor puede revertir el código al estado correspondiente a ese punto de la conversación. Si se selecciona «Don’t ask again», esta acción se realizará automáticamente en el futuro sin solicitar confirmación.
- Recomendación: Usar con precaución. Aunque puede agilizar el flujo de trabajo al eliminar confirmaciones repetitivas, puede llevar a cambios automáticos no deseados, como la reversión de código sin aviso. Si se ha activado inadvertidamente y se desea restaurar las confirmaciones, se puede modificar la configuración correspondiente en las preferencias de Cursor.
Collapse Input Box Labels in Panel or Editor
- Qué hace: Reduce visualmente las etiquetas (pills) que aparecen en la caja de entrada del chat, ocultando detalles como nombres de archivos o símbolos de código. Esto ayuda a mantener una interfaz más limpia y enfocada, especialmente en proyectos con múltiples referencias contextuales.
- Recomendación: Activar si prefieres una interfaz más minimalista o si trabajas con muchos elementos contextuales que pueden saturar visualmente el área de entrada. Sin embargo, si necesitas ver constantemente las referencias completas para mayor claridad, es recomendable mantenerlo desactivado.
Iterate on lints ✅
- Qué hace: Permite al agente iterar automáticamente para corregir errores de lint
- Recomendación: Mantener activado – muy útil para mantener código limpio
Hierarchical Cursor Ignore ✅
- Qué hace: Controla si las reglas especificadas en archivos
.cursorignore
ubicados en subcarpetas del proyecto se aplican de manera jerárquica, similar a cómo funcionan los archivos.gitignore
. Cuando esta opción está activada, Cursor considera las reglas de exclusión definidas en cada subcarpeta, permitiendo una gestión más granular de los archivos que deben ser ignorados por las funciones de IA y el indexado del código. - Recomendación: Activar si trabajas en proyectos con estructuras de carpetas complejas o monorepositorios, donde es útil definir reglas de exclusión específicas para diferentes módulos o componentes. Esto facilita una configuración más precisa y evita que la IA procese archivos no relevantes.
Auto-accept diffs ✅
- Qué hace: Acepta automáticamente cambios cuando ya no están en el worktree
- Recomendación: Mantener activado – agiliza el flujo de trabajo
Custom Modes
- Qué hace: Permite crear modos de chat personalizados con herramientas específicas (como
Edit
,Search
,Run
,Codebase
) y comportamientos definidos mediante instrucciones personalizadas. Puedes asignar nombres, íconos y atajos de teclado a cada modo para facilitar su uso. Por ejemplo, puedes crear un modo «Refactor» que solo mejore la estructura del código sin añadir nuevas funcionalidades, o un modo «Plan» que genere planes detallados sin modificar el código directamente. Cursor+1egghead+1 - Recomendación: Activar si deseas adaptar la asistencia de la IA a tareas específicas como refactorización, planificación, investigación o ejecución de pruebas. Es especialmente útil en proyectos complejos o cuando se requiere un control preciso sobre las acciones de la IA. Sin embargo, ten en cuenta que actualmente existe un límite de 5 modos personalizados, lo que puede ser restrictivo para algunos usuarios.
Play Sound on Finish ✅
- Qué hace: Reproduce un sonido breve al completar una tarea de la IA, como una respuesta en el chat. Esto permite al usuario saber que la acción ha finalizado sin tener que observar continuamente la pantalla.
- Recomendación: Activar si sueles trabajar en varias tareas simultáneamente o si las respuestas de la IA tardan en completarse. Esta función mejora la eficiencia al permitirte enfocarte en otras actividades y regresar al IDE cuando escuches la notificación sonora.
Auto Group Changes ✅
- Qué hace: Agrupa las ediciones que la IA realiza en un mismo archivo en conjuntos coherentes, proporcionando un resumen claro de cada grupo de cambios. Esto permite al usuario revisar y aprobar las modificaciones de manera más estructurada y comprensible.
- Recomendación: Activar si deseas una revisión más organizada de las ediciones realizadas por la IA, especialmente en archivos con múltiples cambios. Esta función mejora la claridad y facilita el proceso de aprobación de cambios.
Web Search Tool (BETA) ✅
- Qué hace: Permite al chat buscar información en la web
- Recomendación: Activar – útil para información actualizada y documentación
Configuración de Chat Recomendada para Principiantes
✅ Auto-refresh chats
✅ Auto-scroll to bottom
✅ Auto-apply to files outside context
✅ Include project structure
❌ Full folder contents (hasta que tengas experiencia)
❌ Enable auto-run mode (hasta que confíes más)
✅ Todas las protecciones activadas (Por si acaso):
✅ Delete file protection
✅ MCP tools protection
✅ Dot files protection
✅ Outside Workspace Protection
❌ Dialog "Don't Ask Again" Preferences (hasta que tengas experiencia)
❌ Collapse Input Box Labels in Panel or Editor (hasta que tengas experiencia)
✅ Iterate on lints
✅ Hierarchical Cursor Ignore
✅ Auto-accept diffs
❌ Custom Modes
✅ Play Sound on Finish
✅ Auto Group Changes
✅ Web Search Tool
Esta configuración te dará un buen balance entre funcionalidad y seguridad mientras aprendes a usar el Chat de Cursor.
– Docs
Puedes proporcionar cualquier documentación de tu elección a Cursor para que la tenga presente en su contexto. Por ejemplo, si estás construyendo un proyecto con Supabase y quieres que Cursor AI use documentación actualizada, puedes proporcionar el enlace de la documentación de Supabase: https://supabase.com/docs
– Editor
Show chat/edit tooltip
(Mostrar sugerencia de chat/edición cerca del código seleccionado)
- ✨ Qué hace: Muestra un pequeño botón o sugerencia para chatear o editar cuando seleccionas código en el editor.
- ✅ ¿Activar o no?
- Sí, si estás empezando: Es útil para no olvidar que puedes pedir ayuda a la IA con un clic.
- No, si ya usas atajos de teclado: Puede resultar molesto si ya sabes usar los comandos.
Auto parse inline edit links
(Detectar automáticamente enlaces de edición cuando los pegas)
- ✨ Qué hace: Si pegas un enlace especial (por ejemplo, generado por Cursor para editar algo), lo interpreta automáticamente como una edición.
- ✅ ¿Activar o no?
- Sí, si usas enlaces de edición compartidos (por ejemplo, entre miembros de un equipo).
- No, si trabajas solo o no usas esa función.
Auto select for Ctrl/⌘ + K ✅ (Activado por defecto)
(Selecciona automáticamente la región de código cuando usas Ctrl/⌘ + K)
- ✨ Qué hace: Cuando usas el atajo para editar con IA (
Ctrl/⌘ + K
), selecciona automáticamente la parte del código relevante. - ✅ ¿Activar o no?
- Sí, muy recomendable: Ahorra tiempo y hace más rápida la edición con IA.
Use themed diff backgrounds ✅ (Activado por defecto)
(Usa colores de fondo para mostrar diferencias en el código editado)
- ✨ Qué hace: Cuando la IA cambia algo, se ve con un fondo de color (verde, rojo, etc.), según el tema de Cursor.
- ✅ ¿Activar o no?
- Sí, recomendable: Hace más visual y clara la comparación entre el código anterior y el nuevo.
Use character-level diffs
(Ver diferencias a nivel de letras y caracteres en lugar de líneas completas)
- ✨ Qué hace: En vez de mostrar solo líneas cambiadas, muestra los caracteres exactos que se modificaron.
- ✅ ¿Activar o no?
- Sí, si necesitas ver cambios muy precisos (por ejemplo, en código con pequeños ajustes).
- No, si prefieres simplicidad o recién empiezas.
Recomendación general para ti (si estás aprendiendo):
Activa estas opciones para una experiencia más clara y guiada:
- ✅ Show chat/edit tooltip
- ✅ Auto select for Ctrl/⌘ + K
- ✅ Use themed diff backgrounds
Y puedes dejar desactivadas estas (a menos que las necesites más adelante):
- ❌ Auto parse inline edit links
- ❌ Use character-level diffs
– Terminal
Terminal hint
- ✨ Qué hace: Muestra un texto de ayuda en la parte inferior del terminal, con sugerencias o comandos útiles.
- ✅ ¿Activar o no?
- Si, déjalo activado. Estas pistas te pueden guiar mientras trabajas en el terminal, especialmente si estás aprendiendo.
Show terminal hover hint
- ✨ Qué hace: Muestra sugerencias al pasar el ratón sobre ciertas partes del terminal (por ejemplo, una opción para agregar algo al chat).
- ✅ ¿Activar o no?
- Si, déjalo activado. Te permite interactuar más fácilmente con la IA y aprovechar mejor el entorno de trabajo.
Use preview box for terminal ⌘K
- ✨ Qué hace: Si esta opción está desactivada, los comandos que genere la IA se escribirán directamente en el terminal. Si la activas, primero verás una vista previa del comando antes de ejecutarlo.
- ✅ ¿Activar o no?
- Si eres principiante: Déjalo desactivado, así verás directamente los comandos en el terminal sin pasos extra.
- Si ya tienes algo de experiencia: Puedes activarlo para revisar primero los comandos antes de que se ejecuten automáticamente.
En resumen:
Activa estas opciones:
- ✅ Show terminal hover hint
- ✅ Terminal hint
Y puedes dejar desactivadas esta:
- ❌ Use preview box for terminal ⌘K (Si estás empezando, mejor desactivado para que los comandos se ejecuten directamente sin confirmación previa)