Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added desktop/public/runtime-icons/devin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 34 additions & 1 deletion desktop/src-tauri/src/managed_agents/discovery.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ const CLAUDE_CODE_AVATAR_URL: &str = "https://anthropic.gallerycdn.vsassets.io/e
const CODEX_AVATAR_URL: &str = "https://openai.gallerycdn.vsassets.io/extensions/openai/chatgpt/26.5313.41514/1773706730621/Microsoft.VisualStudio.Services.Icons.Default";
const BUZZ_AGENT_AVATAR_URL: &str =
"https://raw.githubusercontent.com/block/buzz/refs/heads/main/crates/buzz-agent/buzz-agent.png";
const DEVIN_AVATAR_URL: &str =
"https://avatars.githubusercontent.com/u/158243242?s=200&v=4";

fn common_binary_paths() -> &'static [PathBuf] {
static PATHS: OnceLock<Vec<PathBuf>> = OnceLock::new();
Expand Down Expand Up @@ -188,6 +190,37 @@ const KNOWN_ACP_RUNTIMES: &[KnownAcpRuntime] = &[
login_hint: None,
auth_probe_args: None,
},
KnownAcpRuntime {
id: "devin",
label: "Devin CLI",
commands: &["devin"],
aliases: &["devin-cli"],
avatar_url: DEVIN_AVATAR_URL,
mcp_command: None,
mcp_hooks: false,
underlying_cli: Some("devin"),
cli_install_commands: &["curl -fsSL https://devin.ai/install.sh | bash"],
cli_install_commands_windows: &[],
adapter_install_commands: &[],
install_instructions_url: "https://devin.ai",
cli_install_hint: "Install the Devin CLI via the official install script.",
adapter_install_hint: "",
skill_dir: Some(".devin/skills"),
supports_acp_model_switching: false,
model_env_var: None,
provider_env_var: None,
provider_locked: true,
default_env: &[],
config_file_path: None,
config_file_format: None,
supports_acp_native_config: false,
thinking_env_var: None,
max_tokens_env_var: None,
context_limit_env_var: None,
required_normalized_fields: &[],
login_hint: Some("Run `devin auth` to complete authentication."),
auth_probe_args: Some(&["devin", "auth", "status"]),
},
];

/// Skill discovery directories declared by known runtimes.
Expand Down Expand Up @@ -342,7 +375,7 @@ pub use overrides::{apply_agent_command_update, create_time_agent_command_overri

fn default_agent_args(command: &str) -> Option<Vec<String>> {
match normalize_command_identity(command).as_str() {
"goose" => Some(vec!["acp".to_string()]),
"goose" | "devin" => Some(vec!["acp".to_string()]),
"codex" | "codex-acp" | "claude-agent-acp" | "claude-code-acp" | "claude-code"
| "claudecode" | "buzz-agent" => Some(Vec::new()),
_ => None,
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions desktop/src/features/onboarding/ui/RuntimeIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ import { useTheme } from "@/shared/theme/ThemeProvider";
import { BuzzMark } from "@/shared/ui/buzz-logo/BuzzMark";
import chatgptLogoUrl from "../assets/harness-logos/chatgpt.png?inline";
import claudeLogoUrl from "../assets/harness-logos/claude.png?inline";
import devinLogoUrl from "../assets/harness-logos/devin.png?inline";
import gooseLogoUrl from "../assets/harness-logos/goose.png?inline";

const RUNTIME_LOGOS: Record<string, string> = {
claude: claudeLogoUrl,
codex: chatgptLogoUrl,
devin: devinLogoUrl,
goose: gooseLogoUrl,
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { AcpRuntimeCatalogEntry } from "@/shared/api/types";

export const ONBOARDING_RUNTIME_ORDER = ["claude", "codex"];
export const ONBOARDING_RUNTIME_ORDER = ["claude", "codex", "devin"];

const VISIBLE_ONBOARDING_RUNTIME_IDS = new Set<string>(
ONBOARDING_RUNTIME_ORDER,
Expand Down
2 changes: 2 additions & 0 deletions desktop/src/features/settings/ui/DoctorSettingsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,15 @@ const RUNTIME_LOGO_URLS: Record<string, string> = {
"buzz-agent": "/app-icon@2x.png",
claude: "/runtime-icons/claude.png",
codex: "/runtime-icons/codex.png",
devin: "/runtime-icons/devin.png",
goose: "/runtime-icons/goose.svg",
};

const RUNTIME_LOGO_SCALE: Record<string, string> = {
"buzz-agent": "scale-110",
claude: "scale-110",
codex: "scale-110",
devin: "scale-110",
goose: "scale-125",
};

Expand Down