telekinesis 0.2.17

AI coding agent TUI — rx4 harness + crepuscularity-tui, pi-first UX
div w-full h-fit flex-col
  if {show_header}
    div h-fit flex-col px-1
      span text-xs text-zinc-600
        "Telekinesis v{version} · press f1 for help"
      if {busy}
        span w-fit text-xs text-amber-400
          "{spinner}"

  div h-fit flex-col px-1
    for message in {messages}
      if {is_tool}
        div h-fit flex-col
          span text-xs text-zinc-500
            "| {tool_name}"
          for line in {lines}
            span text-xs text-zinc-500
              "  {text}"
      else if {is_user}
        div h-fit flex-col
          for line in {lines}
            span text-sm text-blue-400
              "{text}"
      else
        div h-fit flex-col
          for line in {lines}
            span text-sm text-zinc-200
              "{text}"
          if {is_streaming}
            span text-sm text-zinc-400
              "{cursor}"

  if {permission_prompt}
    div h-fit border-t border-amber-700 flex-col px-1
      span text-sm text-amber-400
        "Permission required: {permission_tool}"
      span text-xs text-zinc-500
        "[y] allow  [n] deny  [a] always"

  div h-fit flex-col px-1
    if {selecting_model}
      div h-fit flex-col
        span text-sm text-indigo-400
          "model · ‹ {selected_provider} › · search: {input}{cursor}"
        for model in {model_rows}
          if {selected}
            span text-sm text-indigo-300
              "  › {model_id}"
          else
            span text-xs text-zinc-500
              "    {model_id}"
        span text-xs text-zinc-600
          "←/→ provider · ↑/↓ model · enter apply · esc cancel"
    else
      span text-sm text-{input_color}
        "{prompt_char} {input}{cursor}"

  div h-fit flex-col px-1
    div flex-row gap-2
      span w-fit text-xs text-zinc-600
        "${cost}"
      span w-fit text-xs text-zinc-600
        "· {project} ({branch})"
    div flex-row gap-2
      span w-fit text-xs text-indigo-400
        "{model} · {effort}"
      span w-fit text-xs text-{context_color}
        "{context_pct}%/{context_window}"
    if {has_running_subagents}
      for subagent in {running_subagents}
        span text-xs text-zinc-500
          "↳ {name}"