---
title: CLI 레퍼런스
description: Firma는 Claude 중심으로 설계돼 있어서 대부분은 초기 설치 후 CLI를 자주 건드릴 일이 없습니다. 그래도 모든 MCP 도구에는 대응되는 firma 명령어가 있어서 자동화, 스크립팅, 직접 터미널 작업이 필요할 때 바로 쓸 수 있습니다. 모든 read 명령은 --json도 지원합니다.
---

export const setupRows = [
  { cmd: <code>firma config set finnhub-key &lt;key&gt;</code>, desc: 'Finnhub API 키 설정 (finnhub.io에서 무료 발급)' },
  { cmd: <code>firma config set fred-key &lt;key&gt;</code>,    desc: 'FRED API 키 설정 (fred.stlouisfed.org에서 무료 발급)' },
  { cmd: <code>firma config set currency &lt;CODE&gt;</code>,    desc: '표시용 홈 통화 설정 (KRW, USD, JPY, EUR 등)' },
  { cmd: <code>firma config get [key]</code>,                    desc: '설정값 확인' },
  { cmd: <code>firma mcp install</code>,                         desc: 'Claude Desktop 설정에 MCP 서버를 등록' },
  { cmd: <code>firma doctor</code>,                              desc: '설치 상태를 점검합니다. 키, 데이터, FX 캐시를 확인하고 문제가 있으면 해결 방법을 제안합니다.' },
  { cmd: <code>firma profile</code>,                             desc: '목표 인터랙티브 등록 (5개 항목, 모두 선택 입력)' },
];

export const portfolioRows = [
  { cmd: <code>firma show portfolio</code>,           desc: '보유 종목, 손익, 평균 단가, 시가' },
  { cmd: <code>firma show txns [ticker]</code>,       desc: '평균 단가 누적 변화가 포함된 거래 내역' },
  { cmd: <code>firma show dividend</code>,            desc: '연간 배당 추정 + 종목별 배당 수익률' },
  { cmd: <code>firma show concentration</code>,       desc: '티커, 통화, 섹터, 국가별 HHI 집중도' },
  { cmd: <code>firma show snapshot [ticker]</code>,   desc: <>포트폴리오 가치 이력. <code>--from</code>/<code>--to</code>로 기간 지정</> },
  { cmd: <code>firma show benchmark</code>,           desc: <>SPY/QQQ 대비 수익률. <code>-b</code>로 사용자 지정 벤치마크 사용</> },
  { cmd: <code>firma show risk</code>,                desc: '변동성, 드로다운, Sharpe, Sortino, 베타. 스냅샷 이력 필요' },
  { cmd: <code>firma show profile</code>,             desc: '저장된 목표 (출생 연도, 은퇴 목표, 목표 순자산 등)' },
];

export const balanceFlowRows = [
  { cmd: <code>firma add balance [-p YYYY-MM]</code>, desc: '월별 자산 & 부채 스냅샷 입력 위저드' },
  { cmd: <code>firma add flow [-p YYYY-MM]</code>,    desc: '월별 수입 & 지출 입력 위저드' },
  { cmd: <code>firma add monthly [-p YYYY-MM]</code>, desc: '자산과 현금흐름을 한 세션에서 함께 입력. 월말 정산에 잘 맞습니다.' },
  { cmd: <code>firma show balance [-p YYYY-MM]</code>,desc: '저장된 자산 항목 조회' },
  { cmd: <code>firma show flow [-p YYYY-MM]</code>,   desc: '저장된 현금흐름 항목 조회' },
  { cmd: <code>firma report</code>,                   desc: '순자산 추세 + 현금흐름 차트 (통합)' },
  { cmd: <code>firma report balance / flow / settle</code>, desc: <>개별 리포트. <code>-c USD</code>로 임의 통화 표시</> },
];

export const txnSnapshotRows = [
  { cmd: <code>firma add txn</code>,           desc: '거래 1건 기록 — 9개 시장의 주식, 또는 비-주식 자산(크립토·원자재·부동산). 유형: 매수, 매도, 입고, 배당, 세금' },
  { cmd: <code>firma add price [name] [value]</code>, desc: '비-주식 보유 자산의 현재가 입력 — 시세 피드가 없어 직접 최신화합니다' },
  { cmd: <code>firma edit txn [id]</code>,     desc: '거래 수정 (자산 종류, 날짜, 수량, 가격, 사유)' },
  { cmd: <code>firma delete txn [id]</code>,   desc: '거래 삭제' },
  { cmd: <code>firma add snapshot</code>,      desc: '가격을 동기화하고 오늘의 포트폴리오 스냅샷 기록' },
  { cmd: <code>firma edit snapshot</code>,     desc: '스냅샷 항목 수정 (인터랙티브 선택)' },
  { cmd: <code>firma delete snapshot [date]</code>, desc: '특정 날짜의 모든 스냅샷 항목 삭제' },
];

export const briefSyncRows = [
  { cmd: <code>firma brief</code>,    desc: <>변동 종목, 뉴스, 실적 발표, 거시경제, 원자재 가격, 배당 캘린더, 세계 거시경제, 재난 경보를 보여줍니다. 일별로 캐시되며, 오늘 스냅샷이 없으면 자동으로 기록합니다. <code>--refresh</code>로 다시 생성할 수 있습니다.</> },
  { cmd: <code>firma sync</code>,     desc: '최신 주가 (Finnhub) + 환율 이력 (FRED) 가져오기' },
  { cmd: <code>firma sync fx</code>,  desc: '환율 이력만 갱신. 증분 백필 방식' },
];

export const macroRows = [
  { cmd: <code>firma show macro</code>,         desc: 'FRED 지표 8개 + 경제 스트레스 지수 + 거시경제 레짐 편향을 한 화면에' },
  { cmd: <code>firma show world-intel</code>,   desc: 'World Bank 거시경제 + GDACS 재난 경보. API 키 불필요' },
  { cmd: <code>firma show fx [currency]</code>, desc: <>캐시된 환율 이력. <code>--from</code>/<code>--to</code>/<code>--limit</code></> },
];

export const researchRows = [
  { cmd: <code>firma show news &lt;ticker&gt;</code>,       desc: '최근 기업 뉴스' },
  { cmd: <code>firma show insider &lt;ticker&gt;</code>,    desc: '내부자 매매 거래' },
  { cmd: <code>firma show financials &lt;ticker&gt;</code>, desc: 'SEC 보고 분기 재무제표' },
  { cmd: <code>firma show valuation &lt;ticker&gt;</code>,  desc: 'SEC 공시 8개 분기 기반 PEG ratio, P/S, FCF yield' },
  { cmd: <code>firma show earnings [ticker]</code>,         desc: '실적 발표 캘린더 + EPS 이력' },
];

export const tips = [
  {
    icon: 'json',
    title: <>모든 read 명령에 <code>--json</code> 사용 가능</>,
    desc: 'Firma 출력을 jq, 스크립트, 다른 도구로 넘길 수 있습니다. Claude가 보는 데이터와 같은 형태, 같은 필드명입니다.',
  },
  {
    icon: 'rm',
    title: <><code>firma rm</code>은 <code>firma delete</code>의 별칭</>,
    desc: '삭제 명령에 짧은 형태를 사용할 수 있습니다.',
  },
  {
    icon: 'db',
    title: <><code>~/.firma/firma.db</code>의 로컬 SQLite</>,
    desc: '모든 데이터는 단일 파일에 저장됩니다. 백업, 다른 컴퓨터로 복사, 또는 임의의 SQLite 클라이언트로 직접 열기가 가능합니다.',
  },
];

<Section label="초기 설정">
  <CommandTable rows={setupRows} />
</Section>

<Section label="포트폴리오">
  <CommandTable rows={portfolioRows} />
</Section>

<Section label="자산 & 현금흐름">
  <CommandTable rows={balanceFlowRows} />
</Section>

<Section label="거래 & 스냅샷">
  <CommandTable rows={txnSnapshotRows} />
</Section>

<Section label="데일리 브리핑 & 동기화">
  <CommandTable rows={briefSyncRows} />
</Section>

<Section label="거시경제">
  <CommandTable rows={macroRows} />
</Section>

<Section label="리서치">
  <CommandTable rows={researchRows} />
</Section>

<Section label="팁">
  <FeatureList items={tips} />
</Section>
