SpyBara
Go Premium

overview.md 2026-05-02 18:14 UTC to 2026-05-04 22:58 UTC

875 added, 0 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

Descripción general de Claude Code

Claude Code es una herramienta de codificación agencial que lee tu base de código, edita archivos, ejecuta comandos e integra con tus herramientas de desarrollo. Disponible en tu terminal, IDE, aplicación de escritorio y navegador.

export const InstallConfigurator = ({defaultSurface = 'terminal'}) => { const TERM = { mac: { label: 'macOS / Linux', cmd: 'curl -fsSL https://claude.ai/install.sh | bash' }, win: { label: 'Windows' }, brew: { label: 'Homebrew', cmd: 'brew install --cask claude-code' }, winget: { label: 'WinGet', cmd: 'winget install Anthropic.ClaudeCode' } }; const WIN_VARIANTS = { ps: 'irm https://claude.ai/install.ps1 | iex', cmd: 'curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd' }; const TABS = [{ key: 'terminal', label: 'Terminal' }, { key: 'desktop', label: 'Desktop' }, { key: 'vscode', label: 'VS Code' }, { key: 'jetbrains', label: 'JetBrains' }]; const ALT_TARGETS = { desktop: { name: 'Desktop', tagline: 'The full agent in a native app for macOS and Windows.', installLabel: 'Download the app', installHref: 'https://claude.com/download?utm_source=claude_code&utm_medium=docs&utm_content=configurator_desktop_download', guideHref: '/en/desktop-quickstart' }, vscode: { name: 'VS Code', tagline: 'Review diffs, manage context, and chat without leaving your editor.', installLabel: 'Install from Marketplace', installHref: 'https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code', altCmd: 'code --install-extension anthropic.claude-code', guideHref: '/en/vs-code' }, jetbrains: { name: 'JetBrains', tagline: 'Native plugin for IntelliJ, PyCharm, WebStorm, and other JetBrains IDEs.', installLabel: 'Install from Marketplace', installHref: 'https://plugins.jetbrains.com/plugin/27310-claude-code-beta-', guideHref: '/en/jetbrains' } }; const PROVIDERS = [{ key: 'anthropic', label: 'Anthropic' }, { key: 'bedrock', label: 'Amazon Bedrock' }, { key: 'foundry', label: 'Microsoft Foundry' }, { key: 'vertex', label: 'Google Vertex AI' }]; const PROVIDER_NOTICE = { bedrock: <> Configure your AWS account first. Running on Bedrock requires model access enabled in the AWS console and IAM credentials.{' '} Bedrock setup guide → </>, vertex: <> Configure your GCP project first. Running on Vertex AI requires the Vertex API enabled and a service account with the right permissions.{' '} Vertex setup guide → </>, foundry: <> Configure your Azure resources first. Running on Microsoft Foundry requires an Azure subscription with a Foundry resource and model deployments provisioned.{' '} Foundry setup guide → </> }; const iconCheck = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"> ; const iconCopy = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"> ; const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"> ; const iconArrowUpRight = (size = 14) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"> ; const iconInfo = (size = 16) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true"> ; const [target, setTarget] = useState(defaultSurface); const [team, setTeam] = useState(false); const [provider, setProvider] = useState('anthropic'); const [pkg, setPkg] = useState(() => (/Win/).test(navigator.userAgent) ? 'win' : 'mac'); const [winCmd, setWinCmd] = useState(false); const [copied, setCopied] = useState(null); const copyTimer = useRef(null); const handleCopy = async (text, key) => { try { await navigator.clipboard.writeText(text); } catch { const ta = document.createElement('textarea'); ta.value = text; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); document.body.removeChild(ta); } clearTimeout(copyTimer.current); setCopied(key); copyTimer.current = setTimeout(() => setCopied(null), 1800); }; const cardBodyCmd = (cmd, prompt) => { const on = copied === 'term'; return <div className="cc-ic-card-body"> <span className="cc-ic-prompt">{prompt || '$'} <div className="cc-ic-cmd">{cmd}

<button type="button" className={'cc-ic-copy' + (on ? ' cc-ic-copied' : '')} onClick={() => handleCopy(cmd, 'term')}> {on ? iconCheck(13) : iconCopy(13)} {on ? 'Copied' : 'Copy'}
; }; const isWinInstaller = pkg === 'win'; const isWinPrompt = pkg === 'win' || pkg === 'winget'; const terminalCmd = isWinInstaller ? WIN_VARIANTS[winCmd ? 'cmd' : 'ps'] : TERM[pkg].cmd; const alt = ALT_TARGETS[target]; const showNotice = team && provider !== 'anthropic'; const STYLES = ` .cc-ic { --ic-slate: #141413; --ic-clay: #d97757; --ic-clay-deep: #c6613f; --ic-gray-000: #ffffff; --ic-gray-150: #f0eee6; --ic-gray-550: #73726c; --ic-gray-700: #3d3d3a; --ic-border-subtle: rgba(31, 30, 29, 0.08); --ic-border-default: rgba(31, 30, 29, 0.15); --ic-border-strong: rgba(31, 30, 29, 0.3); --ic-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Courier New', monospace; font-family: 'Anthropic Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; line-height: 1.5; color: var(--ic-slate); margin: 8px 0 32px; } .dark .cc-ic { --ic-slate: #f0eee6; --ic-gray-000: #262624; --ic-gray-150: #1f1e1d; --ic-gray-550: #91908a; --ic-gray-700: #bfbdb4; --ic-border-subtle: rgba(240, 238, 230, 0.08); --ic-border-default: rgba(240, 238, 230, 0.14); --ic-border-strong: rgba(240, 238, 230, 0.28); } .dark .cc-ic-check { background: transparent; } .dark .cc-ic-card { border: 0.5px solid var(--ic-border-subtle); } .dark .cc-ic-p-pill.cc-ic-active { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .cc-ic *, .cc-ic *::before, .cc-ic *::after { box-sizing: border-box; } .cc-ic a { text-decoration: none; } .cc-ic a:not([class]) { color: inherit; } .cc-ic button { font-family: inherit; cursor: pointer; }

.cc-ic-tab-strip { display: inline-flex; gap: 2px; padding: 4px; background: var(--ic-gray-150); border-radius: 10px; overflow-x: auto; max-width: 100%; } .cc-ic-tab { appearance: none; background: none; border: none; padding: 10px 18px; font-size: 15px; font-weight: 430; color: var(--ic-gray-550); border-radius: 7px; white-space: nowrap; transition: color 0.12s, background-color 0.12s; } .cc-ic-tab:hover { color: var(--ic-gray-700); } .cc-ic-tab.cc-ic-active { color: var(--ic-slate); font-weight: 500; background: var(--ic-gray-000); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } .dark .cc-ic-tab.cc-ic-active { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }

.cc-ic-team-wrap { padding: 16px 0 20px; } .cc-ic-team-toggle { display: flex; align-items: center; gap: 12px; font-family: inherit; padding: 12px 16px; font-size: 14px; font-weight: 430; color: var(--ic-gray-700); cursor: pointer; user-select: none; width: fit-content; background: var(--ic-gray-150); border: 0.5px solid var(--ic-border-subtle); border-radius: 8px; transition: border-color 0.15s; } .cc-ic-team-toggle:hover { border-color: var(--ic-border-default); } .cc-ic-team-toggle.cc-ic-checked { background: rgba(217, 119, 87, 0.08); border-color: rgba(217, 119, 87, 0.25); } .cc-ic-check { width: 16px; height: 16px; border: 1px solid var(--ic-border-strong); border-radius: 4px; background: var(--ic-gray-000); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .cc-ic-check svg { color: #fff; display: none; } .cc-ic-team-toggle.cc-ic-checked .cc-ic-check { background: var(--ic-clay-deep); border-color: var(--ic-clay-deep); } .cc-ic-team-toggle.cc-ic-checked .cc-ic-check svg { display: block; }

.cc-ic-team-reveal { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; } .cc-ic-sales { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; background: var(--ic-gray-000); border: 0.5px solid var(--ic-border-default); border-radius: 8px; flex-wrap: wrap; } .cc-ic-sales-text { font-size: 13px; color: var(--ic-gray-700); line-height: 1.5; flex: 1; min-width: 200px; } .cc-ic-sales-text strong { font-weight: 550; color: var(--ic-slate); } .cc-ic-sales-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .cc-ic-btn-clay { display: inline-flex; align-items: center; gap: 8px; background: var(--ic-clay-deep); color: #fff; border: none; border-radius: 8px; padding: 8px 14px; font-size: 13px; font-weight: 500; transition: background-color 0.15s; white-space: nowrap; } .cc-ic-btn-clay:hover { background: var(--ic-clay); } .cc-ic-btn-ghost { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--ic-gray-700); border: 0.5px solid var(--ic-border-default); border-radius: 8px; padding: 8px 14px; font-size: 13px; font-weight: 500; } .cc-ic-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

.cc-ic-provider-bar { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--ic-gray-150); border-radius: 8px; font-size: 13px; flex-wrap: wrap; } .cc-ic-provider-bar .cc-ic-label { color: var(--ic-gray-550); flex-shrink: 0; } .cc-ic-provider-pills { display: flex; gap: 4px; flex-wrap: wrap; } .cc-ic-p-pill { appearance: none; border: none; background: transparent; padding: 6px 12px; border-radius: 6px; font-size: 13px; font-weight: 430; color: var(--ic-gray-700); white-space: nowrap; } .cc-ic-p-pill:hover { background: rgba(0, 0, 0, 0.04); } .cc-ic-p-pill.cc-ic-active { background: var(--ic-gray-000); color: var(--ic-slate); font-weight: 500; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .cc-ic-provider-notice { display: flex; padding: 16px 18px; background: var(--ic-gray-000); border: 0.5px solid var(--ic-border-default); border-radius: 8px; gap: 14px; align-items: flex-start; } .cc-ic-provider-notice > svg { color: var(--ic-gray-550); margin-top: 2px; flex-shrink: 0; } .cc-ic-provider-notice-body { font-size: 14px; line-height: 1.55; color: var(--ic-gray-700); } .cc-ic-provider-notice-body strong { font-weight: 550; color: var(--ic-slate); } .cc-ic-provider-notice-body a { color: var(--ic-clay-deep); font-weight: 500; } .cc-ic-provider-notice-body a:hover { text-decoration: underline; }

.cc-ic-card { background: #141413; border-radius: 12px; overflow: hidden; } .cc-ic-subtabs { display: flex; align-items: center; background: #1a1918; border-bottom: 0.5px solid rgba(255, 255, 255, 0.08); padding: 0 8px; overflow-x: auto; } .cc-ic-subtab { appearance: none; background: none; border: none; padding: 12px 16px; font-size: 12px; color: rgba(255, 255, 255, 0.5); position: relative; white-space: nowrap; } .cc-ic-subtab:hover { color: rgba(255, 255, 255, 0.75); } .cc-ic-subtab.cc-ic-active { color: #fff; } .cc-ic-subtab.cc-ic-active::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: -0.5px; height: 2px; background: var(--ic-clay); } .cc-ic-shell-switch { display: inline-flex; gap: 2px; margin: 14px 26px 0; padding: 3px; background: rgba(255, 255, 255, 0.06); border: 0.5px solid rgba(255, 255, 255, 0.08); border-radius: 8px; font-family: inherit; } .cc-ic-shell-option { font: inherit; font-size: 12px; font-weight: 500; padding: 5px 12px; border-radius: 6px; background: transparent; border: none; color: rgba(255, 255, 255, 0.55); cursor: pointer; user-select: none; white-space: nowrap; transition: color 120ms ease, background-color 120ms ease; } .cc-ic-shell-option:hover { color: rgba(255, 255, 255, 0.85); } .cc-ic-shell-option.cc-ic-active { background: rgba(255, 255, 255, 0.12); color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25); }

.cc-ic-card-body { padding: 24px 26px; display: flex; align-items: flex-start; gap: 14px; } .cc-ic-prompt { color: var(--ic-clay); font-family: var(--ic-font-mono); font-size: 17px; user-select: none; padding-top: 2px; } .cc-ic-cmd { flex: 1; font-family: var(--ic-font-mono); font-size: 17px; color: #f0eee6; line-height: 1.55; white-space: pre-wrap; word-break: break-word; } .cc-ic-copy { display: inline-flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, 0.08); border: 0.5px solid rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.85); padding: 7px 13px; border-radius: 8px; font-size: 13px; font-weight: 500; flex-shrink: 0; } .cc-ic-copy:hover { background: rgba(255, 255, 255, 0.14); } .cc-ic-copy.cc-ic-copied { background: var(--ic-clay-deep); border-color: var(--ic-clay-deep); color: #fff; }

.cc-ic-below { margin-top: 12px; font-size: 13px; color: var(--ic-gray-550); display: flex; gap: 16px; flex-wrap: wrap; align-items: baseline; } .cc-ic-below a { color: var(--ic-gray-700); border-bottom: 0.5px solid var(--ic-border-default); } .cc-ic-below a:hover { color: var(--ic-clay-deep); border-bottom-color: var(--ic-clay-deep); } .cc-ic-handoff { padding: 22px 24px; background: linear-gradient(180deg, #faf9f4 0%, #f3f1e9 100%); border: 0.5px solid var(--ic-border-default); border-radius: 12px; box-shadow: 0 1px 2px rgba(31, 30, 29, 0.04), 0 6px 16px -4px rgba(31, 30, 29, 0.06); } .dark .cc-ic-handoff { background: linear-gradient(180deg, #262624 0%, #1f1e1d 100%); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 16px -4px rgba(0, 0, 0, 0.4); } .cc-ic-handoff-title { font-size: 16px; font-weight: 550; color: var(--ic-slate); letter-spacing: -0.01em; margin-bottom: 4px; } .cc-ic-handoff-sub { font-size: 14px; line-height: 1.5; color: var(--ic-gray-700); margin-bottom: 18px; } .cc-ic-handoff-actions { display: flex; gap: 10px; flex-wrap: wrap; } .cc-ic-handoff-alt { margin-top: 12px; font-size: 12px; color: var(--ic-gray-550); } .cc-ic-handoff-alt code { font-family: var(--ic-font-mono); font-size: 11px; background: var(--ic-gray-150); padding: 2px 6px; border-radius: 4px; color: var(--ic-gray-700); } .cc-ic-copy-sm { appearance: none; border: none; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-left: 4px; vertical-align: middle; background: var(--ic-gray-150); color: var(--ic-gray-550); border-radius: 4px; transition: color 0.1s, background-color 0.1s; } .cc-ic-copy-sm:hover { color: var(--ic-gray-700); background: var(--ic-border-default); } .cc-ic-copy-sm.cc-ic-copied { background: var(--ic-clay-deep); color: #fff; }

@media (max-width: 720px) { .cc-ic-tab { padding: 12px 14px; font-size: 14px; } .cc-ic-sales-actions { width: 100%; } .cc-ic-card-body { padding: 20px; } .cc-ic-cmd { font-size: 15px; } } `; return <div className="cc-ic not-prose">

  {}
  <div className="cc-ic-tab-strip" role="tablist">
    {TABS.map(t => <button key={t.key} type="button" role="tab" aria-selected={target === t.key} className={'cc-ic-tab' + (target === t.key ? ' cc-ic-active' : '')} onClick={() => setTarget(t.key)}>
        {t.label}
      </button>)}
  </div>

  {}
  <div className="cc-ic-team-wrap">
    <button type="button" role="switch" aria-checked={team} className={'cc-ic-team-toggle' + (team ? ' cc-ic-checked' : '')} onClick={() => setTeam(!team)}>
      <span className="cc-ic-check">{iconCheck(11)}</span>
      <span>
        I’m buying for a team or company (SSO, AWS/Azure/GCP, central billing)
      </span>
    </button>
  </div>

  {}
  {team && <div className="cc-ic-team-reveal">
      <div className="cc-ic-sales">
        <div className="cc-ic-sales-text">
          <strong>Set up your team:</strong> self-serve or talk to sales.
        </div>
        <div className="cc-ic-sales-actions">
          <a href="https://claude.ai/upgrade?initialPlanType=team&amp;utm_source=claude_code&amp;utm_medium=docs&amp;utm_content=configurator_team_get_started" className="cc-ic-btn-ghost">
            Get started
          </a>
          <a href="https://www.anthropic.com/contact-sales?utm_source=claude_code&amp;utm_medium=docs&amp;utm_content=configurator_team_contact_sales" className="cc-ic-btn-clay">
            Contact sales {iconArrowRight()}
          </a>
        </div>
      </div>

      <div className="cc-ic-provider-bar">
        <span className="cc-ic-label">Run on</span>
        <div className="cc-ic-provider-pills" role="radiogroup" aria-label="Provider">
          {PROVIDERS.map(p => <button key={p.key} type="button" role="radio" aria-checked={provider === p.key} className={'cc-ic-p-pill' + (provider === p.key ? ' cc-ic-active' : '')} onClick={() => setProvider(p.key)}>
              {p.label}
            </button>)}
        </div>
      </div>

      {showNotice && <div className="cc-ic-provider-notice">
          {iconInfo()}
          <div className="cc-ic-provider-notice-body">
            {PROVIDER_NOTICE[provider]}
          </div>
        </div>}
    </div>}

  {}
  {target === 'terminal' && <div className="cc-ic-card">
      <div className="cc-ic-subtabs" role="tablist" aria-label="Install method">
        {Object.keys(TERM).map(k => <button key={k} type="button" role="tab" aria-selected={pkg === k} className={'cc-ic-subtab' + (pkg === k ? ' cc-ic-active' : '')} onClick={() => setPkg(k)}>
            {TERM[k].label}
          </button>)}
      </div>
      {isWinInstaller && <div className="cc-ic-shell-switch" role="tablist" aria-label="Shell">
          {[{
k: 'ps',
label: 'PowerShell'

}, { k: 'cmd', label: 'CMD' }].map(({k, label}) => { const active = k === 'cmd' === winCmd; return <button key={k} type="button" role="tab" aria-selected={active} className={'cc-ic-shell-option' + (active ? ' cc-ic-active' : '')} onClick={() => setWinCmd(k === 'cmd')}> {label} ; })}

} {cardBodyCmd(terminalCmd, isWinPrompt ? '>' : '$')} }

  {}
  {target === 'terminal' && <div className="cc-ic-below">
      {isWinInstaller && <span>
          <a href="https://git-scm.com/downloads/win" target="_blank" rel="noopener">
            Git for Windows
          </a>{' '}
          recommended. PowerShell is used if Git Bash is absent.
        </span>}
      {(pkg === 'brew' || pkg === 'winget') && <span>
          Does not auto-update. Run{' '}
          <code>{pkg === 'brew' ? 'brew upgrade claude-code' : 'winget upgrade Anthropic.ClaudeCode'}</code>{' '}
          periodically.
        </span>}
      <a href="/anthropic/claude-code/history/docs/en/2026-05-02-1814..2026-05-04-2258/troubleshoot-install/">Installation troubleshooting</a>
    </div>}

  {alt && <div className="cc-ic-handoff">
      <div className="cc-ic-handoff-title">Claude Code for {alt.name}</div>
      <div className="cc-ic-handoff-sub">{alt.tagline}</div>
      <div className="cc-ic-handoff-actions">
        <a href={alt.installHref} className="cc-ic-btn-clay" {...alt.installHref.startsWith('http') ? {
target: '_blank',
rel: 'noopener'

} : {}}> {alt.installLabel} {iconArrowUpRight(13)} <a href={alt.guideHref} className="cc-ic-btn-ghost"> {alt.name} guide {iconArrowRight(12)} {alt.altCmd && <div className="cc-ic-handoff-alt"> or run {alt.altCmd} <button type="button" className={'cc-ic-copy-sm' + (copied === 'alt' ? ' cc-ic-copied' : '')} onClick={() => handleCopy(alt.altCmd, 'alt')} aria-label="Copy command"> {copied === 'alt' ? iconCheck(11) : iconCopy(11)} } } ; };

export const Experiment = ({flag, treatment, children}) => { const VID_KEY = 'exp_vid'; const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']); const fnv1a = s => { let h = 0x811c9dc5; for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24); } return h >>> 0; }; const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment'; const [decision] = useState(() => { const params = new URLSearchParams(location.search); const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')]; const force = params.get('gb-force'); if (force) { for (const p of force.split(',')) { const [k, v] = p.split(':'); if (k === flag) return { variant: v || 'treatment', track: false }; } } if (navigator.globalPrivacyControl) { return { variant: 'control', track: false }; } const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/); if (prefsMatch) { try { if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) { return { variant: 'control', track: false }; } } catch { return { variant: 'control', track: false }; } } else { const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1]; if (!country || CONSENT_COUNTRIES.has(country)) { return { variant: 'control', track: false }; } } let vid; try { const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/); if (ajsMatch) { vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, ''); } else { vid = localStorage.getItem(VID_KEY); if (!vid) { vid = crypto.randomUUID(); } document.cookie = ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000; } try { localStorage.setItem(VID_KEY, vid); } catch {} } catch { return { variant: 'control', track: false }; } const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid); return { variant, track: true, vid }; }); useEffect(() => { if (!decision.track) return; fetch('https://api.anthropic.com/api/event_logging/v2/batch', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-service-name': 'claude_code_docs' }, body: JSON.stringify({ events: [{ event_type: 'GrowthbookExperimentEvent', event_data: { device_id: decision.vid, anonymous_id: decision.vid, timestamp: new Date().toISOString(), experiment_id: flag, variation_id: decision.variant === 'treatment' ? 1 : 0, environment: 'production' } }] }), keepalive: true }).catch(() => {}); }, []); return decision.variant === 'treatment' ? treatment : children; };

Claude Code es un asistente de codificación impulsado por IA que te ayuda a construir características, corregir errores y automatizar tareas de desarrollo. Entiende tu base de código completa y puede trabajar en múltiples archivos y herramientas para lograr las cosas.

} />

Comenzar

Elige tu entorno para comenzar. La mayoría de las superficies requieren una suscripción a Claude o una cuenta de Anthropic Console. La CLI de Terminal y VS Code también admiten proveedores de terceros.

La CLI completa para trabajar con Claude Code directamente en tu terminal. Edita archivos, ejecuta comandos y gestiona tu proyecto completo desde la línea de comandos.

To install Claude Code, use one of the following methods:

macOS, Linux, WSL:

curl -fsSL https://claude.ai/install.sh | bash

Windows PowerShell:

irm https://claude.ai/install.ps1 | iex

Windows CMD:

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

If you see The token '&&' is not a valid statement separator, you're in PowerShell, not CMD. If you see 'irm' is not recognized as an internal or external command, you're in CMD, not PowerShell. Your prompt shows PS C:\ when you're in PowerShell and C:\ without the PS when you're in CMD.

Git for Windows is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.

You can also install with [apt, dnf, or apk](/anthropic/claude-code/history/docs/en/2026-05-02-1814..2026-05-04-2258/setup/#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.

Luego inicia Claude Code en cualquier proyecto:

```bash theme={null}
cd your-project
claude
```

Se te pedirá que inicies sesión en el primer uso. ¡Eso es todo! [Continúa con la Guía de inicio rápido →](/anthropic/claude-code/history/docs/es/2026-05-02-1814..2026-05-04-2258/quickstart/)

<Tip>
  Consulta [configuración avanzada](/anthropic/claude-code/history/docs/es/2026-05-02-1814..2026-05-04-2258/setup/) para opciones de instalación, actualizaciones manuales o instrucciones de desinstalación. Visita [solución de problemas de instalación](/anthropic/claude-code/history/docs/es/2026-05-02-1814..2026-05-04-2258/troubleshoot-install/) si encuentras problemas.
</Tip>

La extensión de VS Code proporciona diffs en línea, menciones @, revisión de planes e historial de conversación directamente en tu editor.

O busca "Claude Code" en la vista de Extensiones (Cmd+Shift+X en Mac, Ctrl+Shift+X en Windows/Linux). Después de instalar, abre la Paleta de comandos (Cmd+Shift+P / Ctrl+Shift+P), escribe "Claude Code" y selecciona Abrir en Nueva Pestaña.

Comenzar con VS Code →

Una aplicación independiente para ejecutar Claude Code fuera de tu IDE o terminal. Revisa diffs visualmente, ejecuta múltiples sesiones lado a lado, programa tareas recurrentes e inicia sesiones en la nube.

Descarga e instala:

Después de instalar, lanza Claude, inicia sesión y haz clic en la pestaña Code para comenzar a codificar. Se requiere una suscripción de pago.

Obtén más información sobre la aplicación de escritorio →

Ejecuta Claude Code en tu navegador sin configuración local. Inicia tareas de larga duración y vuelve cuando estén listas, trabaja en repositorios que no tienes localmente o ejecuta múltiples tareas en paralelo. Disponible en navegadores de escritorio y la aplicación Claude iOS.

Comienza a codificar en claude.ai/code.

Comenzar en la web →

Un plugin para IntelliJ IDEA, PyCharm, WebStorm y otros IDEs de JetBrains con visualización de diff interactiva y compartición de contexto de selección.

Instala el plugin Claude Code desde el Marketplace de JetBrains y reinicia tu IDE.

Comenzar con JetBrains →

Lo que puedes hacer

Aquí hay algunas de las formas en que puedes usar Claude Code:

Claude Code maneja las tareas tediosas que consumen tu día: escribir pruebas para código sin probar, corregir errores de lint en un proyecto, resolver conflictos de fusión, actualizar dependencias y escribir notas de lanzamiento.
```bash theme={null}
claude "write tests for the auth module, run them, and fix any failures"
```
Construye características y corrige errores

Describe lo que quieres en lenguaje natural. Claude Code planifica el enfoque, escribe el código en múltiples archivos y verifica que funcione.

Para errores, pega un mensaje de error o describe el síntoma. Claude Code rastrea el problema a través de tu base de código, identifica la causa raíz e implementa una corrección. Consulta flujos de trabajo comunes para más ejemplos.

Crea commits y solicitudes de extracción

Claude Code funciona directamente con git. Prepara cambios, escribe mensajes de commit, crea ramas y abre solicitudes de extracción.

claude "commit my changes with a descriptive message"

En CI, puedes automatizar la revisión de código y la clasificación de problemas con GitHub Actions o GitLab CI/CD.

Conecta tus herramientas con MCP

El Protocolo de Contexto de Modelo (MCP) es un estándar abierto para conectar herramientas de IA a fuentes de datos externas. Con MCP, Claude Code puede leer tus documentos de diseño en Google Drive, actualizar tickets en Jira, extraer datos de Slack o usar tu propia herramienta personalizada.

Personaliza con instrucciones, skills y hooks

CLAUDE.md es un archivo markdown que añades a la raíz de tu proyecto que Claude Code lee al inicio de cada sesión. Úsalo para establecer estándares de codificación, decisiones de arquitectura, librerías preferidas y listas de verificación de revisión. Claude también construye memoria automática mientras trabaja, guardando aprendizajes como comandos de compilación e insights de depuración en sesiones sin que escribas nada.

Crea comandos personalizados para empaquetar flujos de trabajo repetibles que tu equipo pueda compartir, como /review-pr o /deploy-staging.

Hooks te permiten ejecutar comandos de shell antes o después de acciones de Claude Code, como formateo automático después de cada edición de archivo o ejecución de lint antes de un commit.

Ejecuta equipos de agentes y construye agentes personalizados

Genera múltiples agentes de Claude Code que trabajen en diferentes partes de una tarea simultáneamente. Un agente líder coordina el trabajo, asigna subtareas y fusiona resultados.

Para flujos de trabajo completamente personalizados, el Agent SDK te permite construir tus propios agentes impulsados por las herramientas y capacidades de Claude Code, con control total sobre orquestación, acceso a herramientas y permisos.

Canaliza, secuencia y automatiza con la CLI

Claude Code es componible y sigue la filosofía de Unix. Canaliza registros en él, ejecútalo en CI o encadénalo con otras herramientas:

# Analiza la salida de registros recientes
tail -200 app.log | claude -p "Slack me if you see any anomalies"

# Automatiza traducciones en CI
claude -p "translate new strings into French and raise a PR for review"

# Operaciones en masa en archivos
git diff main --name-only | claude -p "review these changed files for security issues"

Consulta la referencia de CLI para el conjunto completo de comandos y banderas.

Programa tareas recurrentes

Ejecuta Claude en un horario para automatizar el trabajo que se repite: revisiones de PR matutinas, análisis de fallos de CI durante la noche, auditorías de dependencias semanales o sincronización de documentos después de que se fusionen los PR.

  • Routines se ejecutan en infraestructura administrada por Anthropic, por lo que siguen ejecutándose incluso cuando tu computadora está apagada. También pueden activarse en llamadas de API o eventos de GitHub. Créalas desde la web, la aplicación de escritorio o ejecutando /schedule en la CLI.
  • Tareas programadas de escritorio se ejecutan en tu máquina, con acceso directo a tus archivos y herramientas locales
  • /loop repite un prompt dentro de una sesión de CLI para sondeo rápido
Trabaja desde cualquier lugar

Las sesiones no están vinculadas a una única superficie. Mueve el trabajo entre entornos a medida que cambia tu contexto:

  • Aléjate de tu escritorio y sigue trabajando desde tu teléfono o cualquier navegador con Remote Control
  • Envía un mensaje a Dispatch con una tarea desde tu teléfono y abre la sesión de escritorio que crea
  • Inicia una tarea de larga duración en la web o aplicación iOS, luego extráela a tu terminal con claude --teleport
  • Transfiere una sesión de terminal a la aplicación de escritorio con /desktop para revisión visual de diff
  • Enruta tareas desde el chat del equipo: menciona @Claude en Slack con un informe de error y obtén una solicitud de extracción de vuelta

Usa Claude Code en todas partes

Cada superficie se conecta al mismo motor subyacente de Claude Code, por lo que tus archivos CLAUDE.md, configuración y servidores MCP funcionan en todos ellos.

Más allá de los entornos Terminal, VS Code, JetBrains, Desktop y Web anteriores, Claude Code se integra con flujos de trabajo de CI/CD, chat y navegador:

Quiero... Mejor opción
Continuar una sesión local desde mi teléfono u otro dispositivo Remote Control
Enviar eventos desde Telegram, Discord, iMessage o mis propios webhooks a una sesión Channels
Iniciar una tarea localmente, continuar en móvil Web o aplicación Claude iOS
Ejecutar Claude en un horario recurrente Routines o Tareas programadas de escritorio
Automatizar revisiones de PR y clasificación de problemas GitHub Actions o GitLab CI/CD
Obtener revisión de código automática en cada PR GitHub Code Review
Enrutar informes de errores de Slack a solicitudes de extracción Slack
Depurar aplicaciones web en vivo Chrome
Construir agentes personalizados para tus propios flujos de trabajo Agent SDK

Próximos pasos

Una vez que hayas instalado Claude Code, estas guías te ayudan a profundizar.