diff --git a/src/cli/components/AgentInfoBar.tsx b/src/cli/components/AgentInfoBar.tsx index 57c413a..c46148f 100644 --- a/src/cli/components/AgentInfoBar.tsx +++ b/src/cli/components/AgentInfoBar.tsx @@ -22,6 +22,7 @@ export const AgentInfoBar = memo(function AgentInfoBar({ serverUrl, conversationId, }: AgentInfoBarProps) { + const isTmux = Boolean(process.env.TMUX); // Check if current agent is pinned const isPinned = useMemo(() => { if (!agentId) return false; @@ -31,6 +32,10 @@ export const AgentInfoBar = memo(function AgentInfoBar({ }, [agentId]); const isCloudUser = serverUrl?.includes("api.letta.com"); + const adeUrl = + agentId && agentId !== "loading" + ? `https://app.letta.com/agents/${agentId}${conversationId && conversationId !== "default" ? `?conversation=${conversationId}` : ""}` + : ""; const showBottomBar = agentId && agentId !== "loading"; if (!showBottomBar) { @@ -77,13 +82,12 @@ export const AgentInfoBar = memo(function AgentInfoBar({ {" "} - {isCloudUser && ( - + {isCloudUser && adeUrl && !isTmux && ( + Open in ADE ↗ )} + {isCloudUser && adeUrl && isTmux && Open in ADE: {adeUrl}} {isCloudUser && {" · "}} {isCloudUser && ( diff --git a/src/cli/components/MemoryTabViewer.tsx b/src/cli/components/MemoryTabViewer.tsx index 77ff697..d627a8d 100644 --- a/src/cli/components/MemoryTabViewer.tsx +++ b/src/cli/components/MemoryTabViewer.tsx @@ -37,6 +37,7 @@ export function MemoryTabViewer({ }: MemoryTabViewerProps) { const terminalWidth = useTerminalWidth(); const solidLine = SOLID_LINE.repeat(Math.max(terminalWidth, 10)); + const isTmux = Boolean(process.env.TMUX); const adeUrl = `https://app.letta.com/agents/${agentId}?view=memory${conversationId ? `&conversation=${conversationId}` : ""}`; const [selectedTabIndex, setSelectedTabIndex] = useState(0); @@ -256,9 +257,12 @@ export function MemoryTabViewer({ {" "}←→/Tab switch · ↑↓ scroll · - - Edit in ADE - + {!isTmux && ( + + Edit in ADE + + )} + {isTmux && Edit in ADE: {adeUrl}} · Esc cancel