> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nomo.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# 在 iPhone 上查看 AI 狀態、用量與即時 session

> Nomo 讓你在 iPhone 上盯著自己的編碼代理 — 服務狀態、方案用量，還有能直接回覆的即時 sessions。

export const Screens = ({shots, slide = 240, gap = 24}) => {
  const chevron = back => <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      <polyline points={back ? "15 18 9 12 15 6" : "9 18 15 12 9 6"} />
    </svg>;
  const [i, setI] = useState(0);
  const [zoomed, setZoomed] = useState(false);
  const touch = useRef(null);
  const n = shots.length;
  const go = d => setI(p => Math.min(n - 1, Math.max(0, p + d)));
  useEffect(() => {
    const onKey = e => {
      if (e.key === "Escape") setZoomed(false); else if (e.key === "ArrowRight") go(1); else if (e.key === "ArrowLeft") go(-1); else return;
      e.preventDefault();
    };
    if (!zoomed) return;
    const prev = document.body.style.overflow;
    document.body.style.overflow = "hidden";
    window.addEventListener("keydown", onKey);
    return () => {
      document.body.style.overflow = prev;
      window.removeEventListener("keydown", onKey);
    };
  }, [zoomed, n]);
  const offset = ((n - 1) / 2 - i) * (slide + gap);
  return <div className="carousel" onTouchStart={e => {
    touch.current = e.touches[0].clientX;
  }} onTouchEnd={e => {
    const dx = e.changedTouches[0].clientX - touch.current;
    if (Math.abs(dx) > 40) go(dx < 0 ? 1 : -1);
  }}>
      <div className="carousel-viewport">
        <div className="carousel-track" style={{
    gap: `${gap}px`,
    transform: `translateX(${offset}px)`
  }}>
          {shots.map((s, k) => <button key={s.src} type="button" className={k === i ? "carousel-slide is-active" : "carousel-slide"} style={{
    width: `${slide}px`
  }} onClick={() => k === i ? setZoomed(true) : setI(k)} aria-label={k === i ? `Enlarge: ${s.alt}` : s.alt}>
              <img src={s.src} alt={k === i ? s.alt : ""} draggable="false" />
            </button>)}
        </div>
      </div>

      <div className="carousel-controls">
        <button type="button" onClick={() => go(-1)} disabled={i === 0} aria-label="Previous screenshot">
          {chevron(true)}
        </button>
        <div className="carousel-dots">
          {shots.map((s, k) => <button key={s.src} type="button" className={k === i ? "is-active" : ""} onClick={() => setI(k)} aria-label={`Screenshot ${k + 1} of ${n}`} aria-current={k === i} />)}
        </div>
        <button type="button" onClick={() => go(1)} disabled={i === n - 1} aria-label="Next screenshot">
          {chevron(false)}
        </button>
      </div>

      {zoomed && <div className="carousel-lightbox" role="dialog" aria-modal="true" aria-label={shots[i].alt} onClick={() => setZoomed(false)}>
          {}
          <button type="button" className="carousel-lightbox-close" onClick={e => {
    e.stopPropagation();
    setZoomed(false);
  }} aria-label="Close">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" aria-hidden="true">
              <path d="M18 6 6 18M6 6l12 12" />
            </svg>
          </button>

          <button type="button" className="carousel-lightbox-step is-prev" onClick={e => {
    e.stopPropagation();
    go(-1);
  }} disabled={i === 0} aria-label="Previous screenshot">
            {chevron(true)}
          </button>

          <img src={shots[i].src} alt={shots[i].alt} onClick={e => e.stopPropagation()} />

          <button type="button" className="carousel-lightbox-step is-next" onClick={e => {
    e.stopPropagation();
    go(1);
  }} disabled={i === n - 1} aria-label="Next screenshot">
            {chevron(false)}
          </button>
        </div>}
    </div>;
};

<Note>
  這份中文文件是從英文翻譯而來。若兩邊的說法有出入，一律以[英文版文件](/index)為準。
</Note>

Nomo 是一款 iPhone 應用程式，為那些工作仰賴編碼代理、卻沒辦法整天盯著它的人而做。

<Screens
  shots={[
{ src: "/images/screens/status.jpg", alt: "主畫面上的狀態與用量小工具" },
{ src: "/images/screens/usage.jpg", alt: "用量分頁，顯示 Claude 的 session 與每週上限" },
{ src: "/images/screens/home-screen.jpg", alt: "同樣的小工具在深色模式下的各種尺寸" },
{ src: "/images/screens/alerts.jpg", alt: "鎖定畫面上的通知：一則服務中斷，一則用量達到上限" },
{ src: "/images/screens/sessions.jpg", alt: "動態島裡正在執行的 Claude Code session" },
]}
/>

它分成兩半，而第一半在你裝好的那一刻就能用。

<CardGroup cols={2}>
  <Card title="狀態與用量" href="/zh-Hant/status-usage" icon="signal">
    五家供應商的主畫面小工具，任何一家出狀況、或你快碰到上限時都會通知你。免費。
  </Card>

  <Card title="Sessions" href="/zh-Hant/sessions/overview" icon="mobile-screen">
    在鎖定畫面上看著 Claude Code 和 Codex 跑，也直接在那裡回覆它們的權限請求。
  </Card>
</CardGroup>

## 從這裡開始

<CardGroup cols={2}>
  <Card title="安裝應用程式" href="/zh-Hant/installation" icon="apple">
    到 App Store 下載 Nomo。
  </Card>

  <Card title="新功能" href="/zh-Hant/changelog" icon="clock-rotate-left">
    最近的版本。
  </Card>
</CardGroup>
