hanzo-mcp 0.8.11__py3-none-any.whl → 0.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of hanzo-mcp might be problematic. Click here for more details.
- hanzo_mcp/__init__.py +1 -3
- hanzo_mcp/analytics/posthog_analytics.py +3 -9
- hanzo_mcp/bridge.py +9 -25
- hanzo_mcp/cli.py +6 -15
- hanzo_mcp/cli_enhanced.py +5 -14
- hanzo_mcp/cli_plugin.py +3 -9
- hanzo_mcp/config/settings.py +6 -20
- hanzo_mcp/config/tool_config.py +1 -3
- hanzo_mcp/core/base_agent.py +88 -88
- hanzo_mcp/core/model_registry.py +238 -210
- hanzo_mcp/dev_server.py +5 -15
- hanzo_mcp/prompts/__init__.py +2 -6
- hanzo_mcp/prompts/project_todo_reminder.py +3 -9
- hanzo_mcp/prompts/tool_explorer.py +1 -3
- hanzo_mcp/prompts/utils.py +7 -21
- hanzo_mcp/server.py +2 -6
- hanzo_mcp/tools/__init__.py +26 -27
- hanzo_mcp/tools/agent/__init__.py +2 -1
- hanzo_mcp/tools/agent/agent.py +10 -30
- hanzo_mcp/tools/agent/agent_tool.py +22 -15
- hanzo_mcp/tools/agent/claude_desktop_auth.py +3 -9
- hanzo_mcp/tools/agent/cli_agent_base.py +7 -24
- hanzo_mcp/tools/agent/cli_tools.py +75 -74
- hanzo_mcp/tools/agent/code_auth.py +1 -3
- hanzo_mcp/tools/agent/code_auth_tool.py +2 -6
- hanzo_mcp/tools/agent/critic_tool.py +8 -24
- hanzo_mcp/tools/agent/iching_tool.py +12 -36
- hanzo_mcp/tools/agent/network_tool.py +7 -18
- hanzo_mcp/tools/agent/prompt.py +1 -5
- hanzo_mcp/tools/agent/review_tool.py +10 -25
- hanzo_mcp/tools/agent/swarm_alias.py +1 -3
- hanzo_mcp/tools/agent/unified_cli_tools.py +38 -38
- hanzo_mcp/tools/common/batch_tool.py +15 -45
- hanzo_mcp/tools/common/config_tool.py +9 -28
- hanzo_mcp/tools/common/context.py +1 -3
- hanzo_mcp/tools/common/critic_tool.py +1 -3
- hanzo_mcp/tools/common/decorators.py +2 -6
- hanzo_mcp/tools/common/enhanced_base.py +2 -6
- hanzo_mcp/tools/common/fastmcp_pagination.py +4 -12
- hanzo_mcp/tools/common/forgiving_edit.py +9 -28
- hanzo_mcp/tools/common/mode.py +1 -5
- hanzo_mcp/tools/common/paginated_base.py +3 -11
- hanzo_mcp/tools/common/paginated_response.py +10 -30
- hanzo_mcp/tools/common/pagination.py +3 -9
- hanzo_mcp/tools/common/path_utils.py +34 -0
- hanzo_mcp/tools/common/permissions.py +14 -13
- hanzo_mcp/tools/common/personality.py +983 -701
- hanzo_mcp/tools/common/plugin_loader.py +3 -15
- hanzo_mcp/tools/common/stats.py +6 -18
- hanzo_mcp/tools/common/thinking_tool.py +1 -3
- hanzo_mcp/tools/common/tool_disable.py +2 -6
- hanzo_mcp/tools/common/tool_list.py +2 -6
- hanzo_mcp/tools/common/validation.py +1 -3
- hanzo_mcp/tools/compiler/__init__.py +8 -0
- hanzo_mcp/tools/compiler/sandboxed_compiler.py +681 -0
- hanzo_mcp/tools/config/config_tool.py +7 -13
- hanzo_mcp/tools/config/index_config.py +1 -3
- hanzo_mcp/tools/config/mode_tool.py +5 -15
- hanzo_mcp/tools/database/database_manager.py +3 -9
- hanzo_mcp/tools/database/graph.py +1 -3
- hanzo_mcp/tools/database/graph_add.py +3 -9
- hanzo_mcp/tools/database/graph_query.py +11 -34
- hanzo_mcp/tools/database/graph_remove.py +3 -9
- hanzo_mcp/tools/database/graph_search.py +6 -20
- hanzo_mcp/tools/database/graph_stats.py +11 -33
- hanzo_mcp/tools/database/sql.py +4 -12
- hanzo_mcp/tools/database/sql_query.py +6 -10
- hanzo_mcp/tools/database/sql_search.py +2 -6
- hanzo_mcp/tools/database/sql_stats.py +5 -15
- hanzo_mcp/tools/editor/neovim_command.py +1 -3
- hanzo_mcp/tools/editor/neovim_session.py +7 -13
- hanzo_mcp/tools/environment/__init__.py +8 -0
- hanzo_mcp/tools/environment/environment_detector.py +594 -0
- hanzo_mcp/tools/filesystem/__init__.py +28 -26
- hanzo_mcp/tools/filesystem/ast_multi_edit.py +14 -43
- hanzo_mcp/tools/filesystem/ast_tool.py +3 -0
- hanzo_mcp/tools/filesystem/base.py +20 -12
- hanzo_mcp/tools/filesystem/content_replace.py +7 -12
- hanzo_mcp/tools/filesystem/diff.py +2 -10
- hanzo_mcp/tools/filesystem/directory_tree.py +285 -51
- hanzo_mcp/tools/filesystem/edit.py +10 -18
- hanzo_mcp/tools/filesystem/find.py +312 -179
- hanzo_mcp/tools/filesystem/git_search.py +12 -24
- hanzo_mcp/tools/filesystem/multi_edit.py +10 -18
- hanzo_mcp/tools/filesystem/read.py +14 -30
- hanzo_mcp/tools/filesystem/rules_tool.py +9 -17
- hanzo_mcp/tools/filesystem/search.py +1160 -0
- hanzo_mcp/tools/filesystem/watch.py +2 -4
- hanzo_mcp/tools/filesystem/write.py +7 -10
- hanzo_mcp/tools/framework/__init__.py +8 -0
- hanzo_mcp/tools/framework/framework_modes.py +714 -0
- hanzo_mcp/tools/jupyter/base.py +6 -20
- hanzo_mcp/tools/jupyter/jupyter.py +4 -12
- hanzo_mcp/tools/llm/consensus_tool.py +8 -24
- hanzo_mcp/tools/llm/llm_manage.py +2 -6
- hanzo_mcp/tools/llm/llm_tool.py +17 -58
- hanzo_mcp/tools/llm/llm_unified.py +18 -59
- hanzo_mcp/tools/llm/provider_tools.py +1 -3
- hanzo_mcp/tools/lsp/lsp_tool.py +621 -481
- hanzo_mcp/tools/mcp/mcp_add.py +1 -3
- hanzo_mcp/tools/mcp/mcp_stats.py +1 -3
- hanzo_mcp/tools/mcp/mcp_tool.py +9 -23
- hanzo_mcp/tools/memory/__init__.py +10 -27
- hanzo_mcp/tools/memory/conversation_memory.py +636 -0
- hanzo_mcp/tools/memory/knowledge_tools.py +7 -25
- hanzo_mcp/tools/memory/memory_tools.py +6 -18
- hanzo_mcp/tools/search/find_tool.py +12 -34
- hanzo_mcp/tools/search/unified_search.py +24 -78
- hanzo_mcp/tools/shell/__init__.py +16 -4
- hanzo_mcp/tools/shell/auto_background.py +2 -6
- hanzo_mcp/tools/shell/base.py +1 -5
- hanzo_mcp/tools/shell/base_process.py +5 -7
- hanzo_mcp/tools/shell/bash_session.py +7 -24
- hanzo_mcp/tools/shell/bash_session_executor.py +5 -15
- hanzo_mcp/tools/shell/bash_tool.py +3 -7
- hanzo_mcp/tools/shell/command_executor.py +26 -79
- hanzo_mcp/tools/shell/logs.py +4 -16
- hanzo_mcp/tools/shell/npx.py +2 -8
- hanzo_mcp/tools/shell/npx_tool.py +1 -3
- hanzo_mcp/tools/shell/pkill.py +4 -12
- hanzo_mcp/tools/shell/process_tool.py +2 -8
- hanzo_mcp/tools/shell/processes.py +5 -17
- hanzo_mcp/tools/shell/run_background.py +1 -3
- hanzo_mcp/tools/shell/run_command.py +1 -3
- hanzo_mcp/tools/shell/run_command_windows.py +1 -3
- hanzo_mcp/tools/shell/run_tool.py +56 -0
- hanzo_mcp/tools/shell/session_manager.py +2 -6
- hanzo_mcp/tools/shell/session_storage.py +2 -6
- hanzo_mcp/tools/shell/streaming_command.py +7 -23
- hanzo_mcp/tools/shell/uvx.py +4 -14
- hanzo_mcp/tools/shell/uvx_background.py +2 -6
- hanzo_mcp/tools/shell/uvx_tool.py +1 -3
- hanzo_mcp/tools/shell/zsh_tool.py +12 -20
- hanzo_mcp/tools/todo/todo.py +1 -3
- hanzo_mcp/tools/vector/__init__.py +97 -50
- hanzo_mcp/tools/vector/ast_analyzer.py +6 -20
- hanzo_mcp/tools/vector/git_ingester.py +10 -30
- hanzo_mcp/tools/vector/index_tool.py +3 -9
- hanzo_mcp/tools/vector/infinity_store.py +7 -27
- hanzo_mcp/tools/vector/mock_infinity.py +1 -3
- hanzo_mcp/tools/vector/node_tool.py +538 -0
- hanzo_mcp/tools/vector/project_manager.py +4 -12
- hanzo_mcp/tools/vector/unified_vector.py +384 -0
- hanzo_mcp/tools/vector/vector.py +2 -6
- hanzo_mcp/tools/vector/vector_index.py +8 -8
- hanzo_mcp/tools/vector/vector_search.py +7 -21
- {hanzo_mcp-0.8.11.dist-info → hanzo_mcp-0.9.0.dist-info}/METADATA +2 -2
- hanzo_mcp-0.9.0.dist-info/RECORD +191 -0
- hanzo_mcp/tools/agent/agent_tool_v1_deprecated.py +0 -645
- hanzo_mcp/tools/agent/swarm_tool.py +0 -718
- hanzo_mcp/tools/agent/swarm_tool_v1_deprecated.py +0 -577
- hanzo_mcp/tools/filesystem/batch_search.py +0 -900
- hanzo_mcp/tools/filesystem/directory_tree_paginated.py +0 -350
- hanzo_mcp/tools/filesystem/find_files.py +0 -369
- hanzo_mcp/tools/filesystem/grep.py +0 -467
- hanzo_mcp/tools/filesystem/search_tool.py +0 -767
- hanzo_mcp/tools/filesystem/symbols_tool.py +0 -515
- hanzo_mcp/tools/filesystem/tree.py +0 -270
- hanzo_mcp/tools/jupyter/notebook_edit.py +0 -317
- hanzo_mcp/tools/jupyter/notebook_read.py +0 -147
- hanzo_mcp/tools/todo/todo_read.py +0 -143
- hanzo_mcp/tools/todo/todo_write.py +0 -374
- hanzo_mcp-0.8.11.dist-info/RECORD +0 -193
- {hanzo_mcp-0.8.11.dist-info → hanzo_mcp-0.9.0.dist-info}/WHEEL +0 -0
- {hanzo_mcp-0.8.11.dist-info → hanzo_mcp-0.9.0.dist-info}/entry_points.txt +0 -0
- {hanzo_mcp-0.8.11.dist-info → hanzo_mcp-0.9.0.dist-info}/top_level.txt +0 -0
|
@@ -1,50 +1,70 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Complete enhanced tool personality system with 112+ personalities."""
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
|
-
from typing import Set, Dict, List, Optional
|
|
5
|
-
from dataclasses import dataclass
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@dataclass
|
|
9
|
-
class ToolPersonality:
|
|
10
|
-
"""Represents a programmer personality with tool preferences."""
|
|
11
|
-
|
|
12
|
-
name: str
|
|
13
|
-
programmer: str
|
|
14
|
-
description: str
|
|
15
|
-
tools: List[str]
|
|
16
|
-
environment: Optional[Dict[str, str]] = None
|
|
17
|
-
philosophy: Optional[str] = None
|
|
18
|
-
|
|
19
|
-
def __post_init__(self):
|
|
20
|
-
"""Validate personality configuration."""
|
|
21
|
-
if not self.name:
|
|
22
|
-
raise ValueError("Personality name is required")
|
|
23
|
-
if not self.tools:
|
|
24
|
-
raise ValueError("Personality must include at least one tool")
|
|
4
|
+
from typing import Set, Dict, List, Optional, Any
|
|
5
|
+
from dataclasses import dataclass, field
|
|
25
6
|
|
|
26
7
|
|
|
27
8
|
class PersonalityRegistry:
|
|
28
|
-
"""Registry for tool personalities."""
|
|
9
|
+
"""Registry for tool personalities with validation and export capabilities."""
|
|
29
10
|
|
|
30
|
-
_personalities: Dict[str, ToolPersonality] = {}
|
|
11
|
+
_personalities: Dict[str, 'ToolPersonality'] = {}
|
|
31
12
|
_active_personality: Optional[str] = None
|
|
32
13
|
|
|
33
14
|
@classmethod
|
|
34
|
-
def register(cls, personality: ToolPersonality) -> None:
|
|
35
|
-
"""Register a tool personality."""
|
|
15
|
+
def register(cls, personality: 'ToolPersonality') -> None:
|
|
16
|
+
"""Register a tool personality with validation."""
|
|
17
|
+
# Ensure agent enabled if API keys present
|
|
18
|
+
personality = ensure_agent_enabled(personality)
|
|
19
|
+
# Normalize tools (dedupe and sort)
|
|
20
|
+
personality.tools = sorted(set(personality.tools))
|
|
36
21
|
cls._personalities[personality.name] = personality
|
|
37
22
|
|
|
38
23
|
@classmethod
|
|
39
|
-
def
|
|
24
|
+
def add_personality(cls, personality: 'ToolPersonality') -> None:
|
|
25
|
+
"""Add a custom personality with validation."""
|
|
26
|
+
if personality.name in cls._personalities:
|
|
27
|
+
raise ValueError(f"Personality '{personality.name}' already exists")
|
|
28
|
+
cls.register(personality)
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def get(cls, name: str) -> Optional['ToolPersonality']:
|
|
40
32
|
"""Get a personality by name."""
|
|
41
33
|
return cls._personalities.get(name)
|
|
42
34
|
|
|
43
35
|
@classmethod
|
|
44
|
-
def list(cls) -> List[ToolPersonality]:
|
|
36
|
+
def list(cls) -> List['ToolPersonality']:
|
|
45
37
|
"""List all registered personalities."""
|
|
46
38
|
return list(cls._personalities.values())
|
|
47
39
|
|
|
40
|
+
@classmethod
|
|
41
|
+
def export(cls, include_tools: bool = False) -> List[Dict[str, Any]]:
|
|
42
|
+
"""Export personalities with metadata for UI/CLI."""
|
|
43
|
+
result = []
|
|
44
|
+
for p in cls._personalities.values():
|
|
45
|
+
export = {
|
|
46
|
+
"name": p.name,
|
|
47
|
+
"programmer": p.programmer,
|
|
48
|
+
"description": p.description,
|
|
49
|
+
"tool_count": len(p.tools),
|
|
50
|
+
"tags": p.tags if hasattr(p, 'tags') else [],
|
|
51
|
+
"philosophy": p.philosophy if hasattr(p, 'philosophy') else None,
|
|
52
|
+
}
|
|
53
|
+
if include_tools:
|
|
54
|
+
export["tools"] = p.tools
|
|
55
|
+
if hasattr(p, 'metadata') and p.metadata:
|
|
56
|
+
export["metadata"] = p.metadata
|
|
57
|
+
result.append(export)
|
|
58
|
+
return result
|
|
59
|
+
|
|
60
|
+
@classmethod
|
|
61
|
+
def filter_by_tags(cls, tags: List[str]) -> List['ToolPersonality']:
|
|
62
|
+
"""Filter personalities by tags."""
|
|
63
|
+
return [
|
|
64
|
+
p for p in cls._personalities.values()
|
|
65
|
+
if hasattr(p, 'tags') and any(tag in p.tags for tag in tags)
|
|
66
|
+
]
|
|
67
|
+
|
|
48
68
|
@classmethod
|
|
49
69
|
def set_active(cls, name: str) -> None:
|
|
50
70
|
"""Set the active personality."""
|
|
@@ -52,8 +72,14 @@ class PersonalityRegistry:
|
|
|
52
72
|
raise ValueError(f"Personality '{name}' not found")
|
|
53
73
|
cls._active_personality = name
|
|
54
74
|
|
|
75
|
+
# Apply environment variables from the mode
|
|
76
|
+
personality = cls._personalities[name]
|
|
77
|
+
if personality.environment:
|
|
78
|
+
for key, value in personality.environment.items():
|
|
79
|
+
os.environ[key] = value
|
|
80
|
+
|
|
55
81
|
@classmethod
|
|
56
|
-
def get_active(cls) -> Optional[ToolPersonality]:
|
|
82
|
+
def get_active(cls) -> Optional['ToolPersonality']:
|
|
57
83
|
"""Get the active personality."""
|
|
58
84
|
if cls._active_personality:
|
|
59
85
|
return cls._personalities.get(cls._active_personality)
|
|
@@ -68,917 +94,1173 @@ class PersonalityRegistry:
|
|
|
68
94
|
return set()
|
|
69
95
|
|
|
70
96
|
|
|
97
|
+
def ensure_agent_enabled(personality: 'ToolPersonality') -> 'ToolPersonality':
|
|
98
|
+
"""Enable agent tool if API keys are present."""
|
|
99
|
+
# Check for any API key environment variables
|
|
100
|
+
api_keys = [
|
|
101
|
+
"OPENAI_API_KEY",
|
|
102
|
+
"ANTHROPIC_API_KEY",
|
|
103
|
+
"TOGETHER_API_KEY",
|
|
104
|
+
"HANZO_API_KEY",
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
if any(os.environ.get(key) for key in api_keys):
|
|
108
|
+
if "agent" not in personality.tools:
|
|
109
|
+
personality.tools = personality.tools + ["agent"]
|
|
110
|
+
|
|
111
|
+
return personality
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def validate_tools(tools: List[str]) -> List[str]:
|
|
115
|
+
"""Validate and normalize tool names."""
|
|
116
|
+
valid_tools = []
|
|
117
|
+
for tool in tools:
|
|
118
|
+
if tool in ALL_TOOL_NAMES:
|
|
119
|
+
valid_tools.append(tool)
|
|
120
|
+
else:
|
|
121
|
+
# Silently skip unknown tools for now
|
|
122
|
+
pass
|
|
123
|
+
return sorted(set(valid_tools))
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def register_default_personalities():
|
|
127
|
+
"""Register all default tool personalities with validation and deduplication."""
|
|
128
|
+
for personality in personalities:
|
|
129
|
+
# Ensure agent enabled if API keys present
|
|
130
|
+
personality = ensure_agent_enabled(personality)
|
|
131
|
+
# Validate and normalize tools (commented out to avoid issues with unknown tools)
|
|
132
|
+
# personality.tools = validate_tools(personality.tools)
|
|
133
|
+
personality.tools = sorted(set(personality.tools))
|
|
134
|
+
PersonalityRegistry.register(personality)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def get_personality_from_env() -> Optional[str]:
|
|
138
|
+
"""Get personality name from environment variables."""
|
|
139
|
+
return os.environ.get("HANZO_MODE") or os.environ.get("PERSONALITY") or os.environ.get("MODE")
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def activate_personality_from_env():
|
|
143
|
+
"""Activate personality from environment if set."""
|
|
144
|
+
personality_name = get_personality_from_env()
|
|
145
|
+
if personality_name:
|
|
146
|
+
try:
|
|
147
|
+
PersonalityRegistry.set_active(personality_name)
|
|
148
|
+
print(f"Activated personality: {personality_name}")
|
|
149
|
+
except ValueError as e:
|
|
150
|
+
print(f"Failed to activate personality: {e}")
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
@dataclass
|
|
154
|
+
class ToolPersonality:
|
|
155
|
+
"""Represents a programmer personality with tool preferences."""
|
|
156
|
+
|
|
157
|
+
name: str
|
|
158
|
+
programmer: str
|
|
159
|
+
description: str
|
|
160
|
+
tools: List[str]
|
|
161
|
+
environment: Optional[Dict[str, str]] = None
|
|
162
|
+
philosophy: Optional[str] = None
|
|
163
|
+
tags: List[str] = field(default_factory=list)
|
|
164
|
+
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
165
|
+
|
|
166
|
+
def __post_init__(self):
|
|
167
|
+
"""Validate and normalize personality configuration."""
|
|
168
|
+
if not self.name:
|
|
169
|
+
raise ValueError("Personality name is required")
|
|
170
|
+
if not self.tools:
|
|
171
|
+
raise ValueError("Personality must include at least one tool")
|
|
172
|
+
# Deduplicate and sort tools
|
|
173
|
+
self.tools = sorted(set(self.tools))
|
|
174
|
+
|
|
175
|
+
|
|
71
176
|
# Essential tools that are always available
|
|
72
|
-
ESSENTIAL_TOOLS = [
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
UNIX_TOOLS = [
|
|
76
|
-
BUILD_TOOLS = [
|
|
77
|
-
VERSION_CONTROL = [
|
|
78
|
-
AI_TOOLS = [
|
|
79
|
-
SEARCH_TOOLS = [
|
|
80
|
-
DATABASE_TOOLS = [
|
|
81
|
-
VECTOR_TOOLS = [
|
|
82
|
-
|
|
83
|
-
#
|
|
177
|
+
ESSENTIAL_TOOLS = ['read', 'write', 'edit', 'tree', 'bash', 'think']
|
|
178
|
+
|
|
179
|
+
# Classic tool sets
|
|
180
|
+
UNIX_TOOLS = ['grep', 'find_files', 'bash', 'process', 'diff']
|
|
181
|
+
BUILD_TOOLS = ['bash', 'npx', 'uvx', 'process', 'cargo', 'gem', 'pip']
|
|
182
|
+
VERSION_CONTROL = ['git_search', 'diff', 'gh', 'gitlab']
|
|
183
|
+
AI_TOOLS = ['agent', 'consensus', 'critic', 'think', 'llm']
|
|
184
|
+
SEARCH_TOOLS = ['search', 'symbols', 'grep', 'git_search', 'ast_search']
|
|
185
|
+
DATABASE_TOOLS = ['sql_query', 'sql_search', 'graph_add', 'graph_query']
|
|
186
|
+
VECTOR_TOOLS = ['vector_index', 'vector_search', 'embeddings']
|
|
187
|
+
|
|
188
|
+
# Modern DevOps & Cloud tools
|
|
189
|
+
DEVOPS_TOOLS = ['docker', 'container_build', 'k8s', 'kubectl', 'helm', 'kustomize', 'minikube']
|
|
190
|
+
CI_CD_TOOLS = ['ci', 'github_actions', 'gitlab_ci', 'jenkins', 'circleci', 'artifact_publish']
|
|
191
|
+
CLOUD_TOOLS = ['terraform', 'ansible', 'cloud_cli', 'aws_s3', 'kms', 'secrets_manager']
|
|
192
|
+
OBSERVABILITY_TOOLS = ['prometheus', 'grafana', 'otel', 'logs', 'tracing', 'slo', 'chaos']
|
|
193
|
+
|
|
194
|
+
# Security & Quality tools
|
|
195
|
+
SECURITY_TOOLS = ['sast', 'dast', 'fuzz', 'dependency_scan', 'secret_scan', 'sigstore', 'sbom', 'snyk', 'trivy']
|
|
196
|
+
TESTING_TOOLS = ['pytest', 'jest', 'mocha', 'go_test', 'linters', 'formatter', 'coverage']
|
|
197
|
+
|
|
198
|
+
# ML/DataOps tools
|
|
199
|
+
ML_TOOLS = ['mlflow', 'dvc', 'kedro', 'mlem', 'model_registry', 'feature_store', 'jupyter', 'notebook']
|
|
200
|
+
AI_OPS_TOOLS = ['model_deploy', 'gpu_manager', 'quantize', 'onnx_convert', 'huggingface', 'hf_hub']
|
|
201
|
+
|
|
202
|
+
# Developer UX tools
|
|
203
|
+
DEV_UX_TOOLS = ['ngrok', 'localstack', 'devcontainer', 'vscode_remote', 'repl', 'watch', 'hot_reload']
|
|
204
|
+
|
|
205
|
+
# Utility tools
|
|
206
|
+
UTILITY_TOOLS = ['package_manager', 'image_scan', 'signing', 'notebook', 'batch', 'todo', 'rules']
|
|
207
|
+
|
|
208
|
+
# All available tools for validation
|
|
209
|
+
ALL_TOOL_NAMES = ['agent', 'ansible', 'artifact_publish', 'ast_search', 'aws_s3', 'bash', 'batch', 'cargo', 'chaos', 'ci', 'circleci', 'cloud_cli', 'consensus', 'container_build', 'coverage', 'critic', 'dast', 'dependency_scan', 'devcontainer', 'diff', 'docker', 'dvc', 'edit', 'embeddings', 'feature_store', 'find_files', 'formatter', 'fuzz', 'gem', 'gh', 'git_search', 'github_actions', 'gitlab', 'gitlab_ci', 'go_test', 'gpu_manager', 'grafana', 'graph_add', 'graph_query', 'grep', 'helm', 'hf_hub', 'hot_reload', 'huggingface', 'image_scan', 'jenkins', 'jest', 'jupyter', 'k8s', 'kedro', 'kms', 'kubectl', 'kustomize', 'linters', 'llm', 'localstack', 'logs', 'minikube', 'mlem', 'mlflow', 'mocha', 'model_deploy', 'model_registry', 'ngrok', 'notebook', 'npx', 'onnx_convert', 'otel', 'package_manager', 'pip', 'process', 'prometheus', 'pytest', 'quantize', 'read', 'repl', 'rules', 'sast', 'sbom', 'search', 'secret_scan', 'secrets_manager', 'signing', 'sigstore', 'slo', 'snyk', 'sql_query', 'sql_search', 'symbols', 'terraform', 'think', 'todo', 'tracing', 'tree', 'trivy', 'uvx', 'vector_index', 'vector_search', 'vscode_remote', 'watch', 'write']
|
|
210
|
+
|
|
211
|
+
# Complete list of 117 programmer personalities
|
|
84
212
|
personalities = [
|
|
85
|
-
# 1-10: Language Creators
|
|
86
|
-
ToolPersonality(
|
|
87
|
-
name="guido",
|
|
88
|
-
programmer="Guido van Rossum",
|
|
89
|
-
description="Python's BDFL - readability counts",
|
|
90
|
-
philosophy="There should be one-- and preferably only one --obvious way to do it.",
|
|
91
|
-
tools=ESSENTIAL_TOOLS
|
|
92
|
-
+ ["uvx", "jupyter", "multi_edit", "symbols", "rules"]
|
|
93
|
-
+ AI_TOOLS
|
|
94
|
-
+ SEARCH_TOOLS,
|
|
95
|
-
environment={"PYTHONPATH": ".", "PYTEST_ARGS": "-xvs"},
|
|
96
|
-
),
|
|
97
213
|
ToolPersonality(
|
|
98
|
-
name="
|
|
99
|
-
programmer="
|
|
100
|
-
description="
|
|
101
|
-
philosophy="
|
|
102
|
-
tools=
|
|
103
|
-
environment={
|
|
104
|
-
|
|
105
|
-
ToolPersonality(
|
|
106
|
-
name="brendan",
|
|
107
|
-
programmer="Brendan Eich",
|
|
108
|
-
description="JavaScript creator - dynamic and flexible",
|
|
109
|
-
philosophy="Always bet on JS.",
|
|
110
|
-
tools=ESSENTIAL_TOOLS
|
|
111
|
-
+ ["npx", "watch", "symbols", "todo", "rules"]
|
|
112
|
-
+ BUILD_TOOLS
|
|
113
|
-
+ SEARCH_TOOLS,
|
|
114
|
-
environment={"NODE_ENV": "development", "NPM_CONFIG_LOGLEVEL": "warn"},
|
|
214
|
+
name="10x",
|
|
215
|
+
programmer="10x Engineer",
|
|
216
|
+
description="Maximum productivity, all tools enabled",
|
|
217
|
+
philosophy="Move fast and optimize everything.",
|
|
218
|
+
tools=['agent', 'ansible', 'artifact_publish', 'ast_search', 'aws_s3', 'bash', 'batch', 'cargo', 'chaos', 'ci', 'circleci', 'cloud_cli', 'consensus', 'container_build', 'coverage', 'critic', 'dast', 'dependency_scan', 'devcontainer', 'diff', 'docker', 'dvc', 'edit', 'embeddings', 'feature_store', 'find_files', 'formatter', 'fuzz', 'gem', 'gh', 'git_search', 'github_actions', 'gitlab', 'gitlab_ci', 'go_test', 'gpu_manager', 'grafana', 'graph_add', 'graph_query', 'grep', 'helm', 'hf_hub', 'hot_reload', 'huggingface', 'image_scan', 'jenkins', 'jest', 'jupyter', 'k8s', 'kedro', 'kms', 'kubectl', 'kustomize', 'linters', 'llm', 'localstack', 'logs', 'minikube', 'mlem', 'mlflow', 'mocha', 'model_deploy', 'model_registry', 'ngrok', 'notebook', 'npx', 'onnx_convert', 'otel', 'package_manager', 'pip', 'process', 'prometheus', 'pytest', 'quantize', 'read', 'repl', 'rules', 'sast', 'sbom', 'search', 'secret_scan', 'secrets_manager', 'signing', 'sigstore', 'slo', 'snyk', 'sql_query', 'sql_search', 'symbols', 'terraform', 'think', 'todo', 'tracing', 'tree', 'trivy', 'uvx', 'vector_index', 'vector_search', 'vscode_remote', 'watch', 'write'],
|
|
219
|
+
environment={'PRODUCTIVITY': 'MAX', 'TOOLS': 'ALL', 'DOCKER_BUILDKIT': '1', 'CI': 'true'},
|
|
220
|
+
tags=['productivity', 'fullstack', 'power-user'],
|
|
115
221
|
),
|
|
116
222
|
ToolPersonality(
|
|
117
|
-
name="
|
|
118
|
-
programmer="
|
|
119
|
-
description="
|
|
120
|
-
philosophy="
|
|
121
|
-
tools=
|
|
122
|
-
environment={
|
|
223
|
+
name="academic",
|
|
224
|
+
programmer="Academic Researcher",
|
|
225
|
+
description="Publish or perish",
|
|
226
|
+
philosophy="Standing on the shoulders of giants.",
|
|
227
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'jupyter', 'todo', 'critic', 'agent', 'consensus', 'critic', 'think', 'search', 'symbols', 'grep', 'git_search'],
|
|
228
|
+
environment={'LATEX_ENGINE': 'xelatex'},
|
|
229
|
+
tags=['general'],
|
|
123
230
|
),
|
|
124
231
|
ToolPersonality(
|
|
125
|
-
name="
|
|
126
|
-
programmer="
|
|
127
|
-
description="
|
|
128
|
-
philosophy="
|
|
129
|
-
tools=
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
+ BUILD_TOOLS,
|
|
133
|
-
environment={"CXX": "g++", "CXXFLAGS": "-std=c++20 -Wall"},
|
|
232
|
+
name="ada",
|
|
233
|
+
programmer="Ada Lovelace",
|
|
234
|
+
description="First programmer - algorithms as poetry",
|
|
235
|
+
philosophy="The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform.",
|
|
236
|
+
tools=['ast_search', 'bash', 'edit', 'formatter', 'git_search', 'grep', 'notebook', 'read', 'search', 'symbols', 'think', 'tree', 'write'],
|
|
237
|
+
environment={'ALGORITHM_STYLE': 'poetic'},
|
|
238
|
+
tags=['pioneer', 'academic', 'algorithms'],
|
|
134
239
|
),
|
|
135
240
|
ToolPersonality(
|
|
136
|
-
name="
|
|
137
|
-
programmer="
|
|
138
|
-
description="
|
|
139
|
-
philosophy="
|
|
140
|
-
tools=
|
|
141
|
-
environment={
|
|
241
|
+
name="adrian",
|
|
242
|
+
programmer="Adrian Holovaty",
|
|
243
|
+
description="Django co-creator - web framework for perfectionists",
|
|
244
|
+
philosophy="The web framework for perfectionists with deadlines.",
|
|
245
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'uvx', 'sql_query', 'watch', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
246
|
+
environment={'DJANGO_SETTINGS_MODULE': 'settings'},
|
|
247
|
+
tags=['pioneer', 'web'],
|
|
142
248
|
),
|
|
143
249
|
ToolPersonality(
|
|
144
250
|
name="anders",
|
|
145
251
|
programmer="Anders Hejlsberg",
|
|
146
252
|
description="TypeScript/C# creator - type safety matters",
|
|
147
253
|
philosophy="TypeScript is JavaScript that scales.",
|
|
148
|
-
tools=
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
+ SEARCH_TOOLS,
|
|
152
|
-
environment={"TYPESCRIPT_VERSION": "5.0"},
|
|
153
|
-
),
|
|
154
|
-
ToolPersonality(
|
|
155
|
-
name="larry",
|
|
156
|
-
programmer="Larry Wall",
|
|
157
|
-
description="Perl creator - there's more than one way to do it",
|
|
158
|
-
philosophy="The three chief virtues of a programmer are laziness, impatience, and hubris.",
|
|
159
|
-
tools=ESSENTIAL_TOOLS + ["grep", "content_replace", "batch"] + UNIX_TOOLS,
|
|
160
|
-
environment={"PERL5LIB": "./lib"},
|
|
161
|
-
),
|
|
162
|
-
ToolPersonality(
|
|
163
|
-
name="rasmus",
|
|
164
|
-
programmer="Rasmus Lerdorf",
|
|
165
|
-
description="PHP creator - pragmatic web development",
|
|
166
|
-
philosophy="I'm not a real programmer. I throw together things until it works.",
|
|
167
|
-
tools=ESSENTIAL_TOOLS + ["npx", "sql_query", "watch"] + DATABASE_TOOLS,
|
|
168
|
-
environment={"PHP_VERSION": "8.0"},
|
|
169
|
-
),
|
|
170
|
-
ToolPersonality(
|
|
171
|
-
name="rich",
|
|
172
|
-
programmer="Rich Hickey",
|
|
173
|
-
description="Clojure creator - simplicity matters",
|
|
174
|
-
philosophy="Programming is not about typing... it's about thinking.",
|
|
175
|
-
tools=ESSENTIAL_TOOLS + ["symbols", "todo", "batch"] + AI_TOOLS,
|
|
176
|
-
environment={"CLOJURE_VERSION": "1.11"},
|
|
254
|
+
tools=['ast_search', 'bash', 'cargo', 'edit', 'formatter', 'gem', 'git_search', 'grep', 'npx', 'pip', 'process', 'read', 'rules', 'search', 'symbols', 'think', 'tree', 'uvx', 'watch', 'write'],
|
|
255
|
+
environment={'TYPESCRIPT_VERSION': '5.0', 'DOTNET_VERSION': '8.0'},
|
|
256
|
+
tags=['languages', 'typescript', 'types'],
|
|
177
257
|
),
|
|
178
|
-
# 11-20: Systems & Infrastructure
|
|
179
258
|
ToolPersonality(
|
|
180
|
-
name="
|
|
181
|
-
programmer="
|
|
182
|
-
description="
|
|
183
|
-
philosophy="
|
|
184
|
-
tools=
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
environment={"KERNEL_VERSION": "6.0", "GIT_AUTHOR_NAME": "Linus Torvalds"},
|
|
188
|
-
),
|
|
189
|
-
ToolPersonality(
|
|
190
|
-
name="rob",
|
|
191
|
-
programmer="Rob Pike",
|
|
192
|
-
description="Go creator - simplicity and concurrency",
|
|
193
|
-
philosophy="A little copying is better than a little dependency.",
|
|
194
|
-
tools=ESSENTIAL_TOOLS
|
|
195
|
-
+ ["symbols", "batch", "process"]
|
|
196
|
-
+ UNIX_TOOLS
|
|
197
|
-
+ BUILD_TOOLS,
|
|
198
|
-
environment={"GOPATH": "~/go", "GO111MODULE": "on"},
|
|
259
|
+
name="andrej",
|
|
260
|
+
programmer="Andrej Karpathy",
|
|
261
|
+
description="AI educator & former Tesla AI director",
|
|
262
|
+
philosophy="The unreasonable effectiveness of neural networks.",
|
|
263
|
+
tools=['agent', 'ast_search', 'bash', 'consensus', 'critic', 'dvc', 'edit', 'feature_store', 'git_search', 'gpu_manager', 'grep', 'jupyter', 'kedro', 'llm', 'mlem', 'mlflow', 'model_registry', 'notebook', 'read', 'search', 'symbols', 'think', 'tree', 'uvx', 'watch', 'write'],
|
|
264
|
+
environment={'CUDA_VISIBLE_DEVICES': '0', 'PYTHONUNBUFFERED': '1'},
|
|
265
|
+
tags=['ai', 'ml', 'education'],
|
|
199
266
|
),
|
|
200
267
|
ToolPersonality(
|
|
201
|
-
name="
|
|
202
|
-
programmer="
|
|
203
|
-
description="
|
|
204
|
-
philosophy="
|
|
205
|
-
tools=
|
|
206
|
-
environment={
|
|
268
|
+
name="andrew",
|
|
269
|
+
programmer="Andrew Ng",
|
|
270
|
+
description="AI educator & Coursera co-founder",
|
|
271
|
+
philosophy="AI is the new electricity.",
|
|
272
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'jupyter', 'todo', 'watch'],
|
|
273
|
+
environment={'CUDA_VISIBLE_DEVICES': '0'},
|
|
274
|
+
tags=['pioneer', 'ai'],
|
|
207
275
|
),
|
|
208
276
|
ToolPersonality(
|
|
209
277
|
name="bill",
|
|
210
278
|
programmer="Bill Joy",
|
|
211
279
|
description="Vi creator & BSD contributor",
|
|
212
280
|
philosophy="The best way to predict the future is to invent it.",
|
|
213
|
-
tools=
|
|
214
|
-
environment={
|
|
281
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'neovim_edit', 'neovim_command', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
282
|
+
environment={'EDITOR': 'vi'},
|
|
283
|
+
tags=['pioneer'],
|
|
215
284
|
),
|
|
216
285
|
ToolPersonality(
|
|
217
|
-
name="
|
|
218
|
-
programmer="
|
|
219
|
-
description="
|
|
220
|
-
philosophy="
|
|
221
|
-
tools=
|
|
222
|
-
environment={
|
|
286
|
+
name="bjarne",
|
|
287
|
+
programmer="Bjarne Stroustrup",
|
|
288
|
+
description="C++ creator - zero-overhead abstractions",
|
|
289
|
+
philosophy="C++ is designed to allow you to express ideas.",
|
|
290
|
+
tools=['bash', 'cargo', 'content_replace', 'diff', 'edit', 'find_files', 'formatter', 'gem', 'grep', 'multi_edit', 'npx', 'pip', 'process', 'read', 'symbols', 'think', 'tree', 'uvx', 'write'],
|
|
291
|
+
environment={'CXX': 'g++', 'CXXFLAGS': '-std=c++20 -Wall'},
|
|
292
|
+
tags=['languages', 'cpp', 'performance'],
|
|
293
|
+
),
|
|
294
|
+
ToolPersonality(
|
|
295
|
+
name="bram",
|
|
296
|
+
programmer="Bram Moolenaar",
|
|
297
|
+
description="Vim creator",
|
|
298
|
+
philosophy="The best way to avoid RSI is to not type so much.",
|
|
299
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'neovim_edit', 'neovim_command', 'neovim_session'],
|
|
300
|
+
environment={'VIM_VERSION': '9.0'},
|
|
301
|
+
tags=['pioneer'],
|
|
302
|
+
),
|
|
303
|
+
ToolPersonality(
|
|
304
|
+
name="brendan",
|
|
305
|
+
programmer="Brendan Eich",
|
|
306
|
+
description="JavaScript creator - dynamic and flexible",
|
|
307
|
+
philosophy="Always bet on JS.",
|
|
308
|
+
tools=['ast_search', 'bash', 'cargo', 'devcontainer', 'edit', 'formatter', 'gem', 'git_search', 'grep', 'hot_reload', 'jest', 'localstack', 'ngrok', 'npx', 'pip', 'process', 'read', 'repl', 'rules', 'search', 'symbols', 'think', 'todo', 'tree', 'uvx', 'vscode_remote', 'watch', 'write'],
|
|
309
|
+
environment={'NODE_ENV': 'development', 'NPM_CONFIG_LOGLEVEL': 'warn'},
|
|
310
|
+
tags=['languages', 'javascript', 'web'],
|
|
223
311
|
),
|
|
224
312
|
ToolPersonality(
|
|
225
313
|
name="brian",
|
|
226
314
|
programmer="Brian Kernighan",
|
|
227
315
|
description="AWK co-creator & Unix pioneer",
|
|
228
316
|
philosophy="Controlling complexity is the essence of computer programming.",
|
|
229
|
-
tools=
|
|
230
|
-
environment={
|
|
317
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'grep', 'content_replace', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
318
|
+
environment={'AWK': 'gawk'},
|
|
319
|
+
tags=['pioneer'],
|
|
231
320
|
),
|
|
232
321
|
ToolPersonality(
|
|
233
|
-
name="
|
|
234
|
-
programmer="
|
|
235
|
-
description="
|
|
236
|
-
philosophy="
|
|
237
|
-
tools=
|
|
238
|
-
environment={
|
|
322
|
+
name="bruce",
|
|
323
|
+
programmer="Bruce Schneier",
|
|
324
|
+
description="Security expert & cryptographer",
|
|
325
|
+
philosophy="Security is a process, not a product.",
|
|
326
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'git_search', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
327
|
+
environment={'SECURITY_AUDIT': 'true'},
|
|
328
|
+
tags=['security'],
|
|
239
329
|
),
|
|
240
330
|
ToolPersonality(
|
|
241
|
-
name="
|
|
242
|
-
programmer="
|
|
243
|
-
description="
|
|
244
|
-
philosophy="
|
|
245
|
-
tools=
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
environment={"RUST_BACKTRACE": "1", "CARGO_HOME": "~/.cargo"},
|
|
331
|
+
name="carmack",
|
|
332
|
+
programmer="John Carmack",
|
|
333
|
+
description="id Software - Doom & Quake creator",
|
|
334
|
+
philosophy="Focus is a matter of deciding what things you're not going to do.",
|
|
335
|
+
tools=['bash', 'cargo', 'diff', 'edit', 'find_files', 'gem', 'gpu_manager', 'grep', 'multi_edit', 'npx', 'pip', 'process', 'read', 'symbols', 'think', 'tree', 'uvx', 'watch', 'write'],
|
|
336
|
+
environment={'GL_VERSION': '4.6', 'VULKAN_SDK': '/usr/local/vulkan'},
|
|
337
|
+
tags=['gaming', 'graphics', 'performance'],
|
|
249
338
|
),
|
|
250
339
|
ToolPersonality(
|
|
251
|
-
name="
|
|
252
|
-
programmer="
|
|
253
|
-
description="
|
|
254
|
-
philosophy="
|
|
255
|
-
tools=
|
|
256
|
-
environment={
|
|
340
|
+
name="casey",
|
|
341
|
+
programmer="Casey Muratori",
|
|
342
|
+
description="Handmade Hero creator",
|
|
343
|
+
philosophy="Performance matters. Write code from scratch.",
|
|
344
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'watch', 'process', 'critic'],
|
|
345
|
+
environment={'HANDMADE': 'true'},
|
|
346
|
+
tags=['pioneer'],
|
|
257
347
|
),
|
|
258
348
|
ToolPersonality(
|
|
259
|
-
name="
|
|
260
|
-
programmer="
|
|
261
|
-
description="
|
|
262
|
-
philosophy="
|
|
263
|
-
tools=
|
|
264
|
-
environment={
|
|
349
|
+
name="chris",
|
|
350
|
+
programmer="Chris Olah",
|
|
351
|
+
description="AI interpretability researcher",
|
|
352
|
+
philosophy="Understanding neural networks matters.",
|
|
353
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'vector_index', 'vector_search', 'jupyter', 'critic'],
|
|
354
|
+
environment={'DISTILL_MODE': 'interactive'},
|
|
355
|
+
tags=['ai'],
|
|
265
356
|
),
|
|
266
|
-
# 21-30: Web & Frontend
|
|
267
357
|
ToolPersonality(
|
|
268
|
-
name="
|
|
269
|
-
programmer="
|
|
270
|
-
description="
|
|
271
|
-
philosophy="
|
|
272
|
-
tools=
|
|
273
|
-
environment={
|
|
358
|
+
name="chris_lattner",
|
|
359
|
+
programmer="Chris Lattner",
|
|
360
|
+
description="LLVM & Swift creator",
|
|
361
|
+
philosophy="Compiler infrastructure should be modular.",
|
|
362
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'multi_edit', 'critic', 'bash', 'npx', 'uvx', 'process'],
|
|
363
|
+
environment={'LLVM_VERSION': '16'},
|
|
364
|
+
tags=['pioneer'],
|
|
274
365
|
),
|
|
275
366
|
ToolPersonality(
|
|
276
|
-
name="
|
|
277
|
-
programmer="
|
|
278
|
-
description="
|
|
279
|
-
philosophy="
|
|
280
|
-
tools=
|
|
281
|
-
environment={
|
|
367
|
+
name="cloud_native",
|
|
368
|
+
programmer="Cloud Native Developer",
|
|
369
|
+
description="Kubernetes-first development",
|
|
370
|
+
philosophy="Containers everywhere, orchestrate everything.",
|
|
371
|
+
tools=['ansible', 'artifact_publish', 'aws_s3', 'bash', 'chaos', 'ci', 'circleci', 'cloud_cli', 'container_build', 'dast', 'dependency_scan', 'diff', 'docker', 'edit', 'fuzz', 'gh', 'git_search', 'github_actions', 'gitlab', 'gitlab_ci', 'grafana', 'helm', 'jenkins', 'k8s', 'kms', 'kubectl', 'kustomize', 'logs', 'minikube', 'otel', 'prometheus', 'read', 'sast', 'sbom', 'secret_scan', 'secrets_manager', 'sigstore', 'slo', 'snyk', 'terraform', 'think', 'tracing', 'tree', 'trivy', 'write'],
|
|
372
|
+
environment={'KUBECONFIG': '~/.kube/config', 'DOCKER_REGISTRY': 'ghcr.io', 'CLOUD_PROVIDER': 'aws', 'TERRAFORM_VERSION': '1.5'},
|
|
373
|
+
tags=['devops', 'kubernetes', 'cloud'],
|
|
282
374
|
),
|
|
283
375
|
ToolPersonality(
|
|
284
|
-
name="
|
|
285
|
-
programmer="
|
|
286
|
-
description="
|
|
287
|
-
philosophy="
|
|
288
|
-
tools=
|
|
289
|
-
environment={
|
|
376
|
+
name="creative",
|
|
377
|
+
programmer="Creative Coder",
|
|
378
|
+
description="Code as art",
|
|
379
|
+
philosophy="Programming is the art of the possible.",
|
|
380
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'watch', 'jupyter', 'todo', 'agent', 'consensus', 'critic', 'think'],
|
|
381
|
+
environment={'P5_MODE': 'global'},
|
|
382
|
+
tags=['general'],
|
|
290
383
|
),
|
|
291
384
|
ToolPersonality(
|
|
292
|
-
name="
|
|
293
|
-
programmer="
|
|
294
|
-
description="
|
|
295
|
-
philosophy="
|
|
296
|
-
tools=
|
|
297
|
-
environment={
|
|
385
|
+
name="dan_kaminsky",
|
|
386
|
+
programmer="Dan Kaminsky",
|
|
387
|
+
description="DNS security researcher",
|
|
388
|
+
philosophy="Break it to make it better.",
|
|
389
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'process', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
390
|
+
environment={'DNSSEC': 'true'},
|
|
391
|
+
tags=['security'],
|
|
298
392
|
),
|
|
299
393
|
ToolPersonality(
|
|
300
|
-
name="
|
|
301
|
-
programmer="
|
|
302
|
-
description="
|
|
303
|
-
philosophy="
|
|
304
|
-
tools=
|
|
305
|
-
environment={
|
|
394
|
+
name="daniel_b",
|
|
395
|
+
programmer="Daniel J. Bernstein",
|
|
396
|
+
description="djb - qmail & Curve25519 creator",
|
|
397
|
+
philosophy="Security through simplicity.",
|
|
398
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
399
|
+
environment={'QMAIL_HOME': '/var/qmail'},
|
|
400
|
+
tags=['pioneer', 'ai'],
|
|
306
401
|
),
|
|
307
402
|
ToolPersonality(
|
|
308
|
-
name="
|
|
309
|
-
programmer="
|
|
310
|
-
description="
|
|
311
|
-
philosophy="
|
|
312
|
-
tools=
|
|
313
|
-
environment={
|
|
403
|
+
name="daniel_r",
|
|
404
|
+
programmer="Daniel Robbins",
|
|
405
|
+
description="Gentoo founder",
|
|
406
|
+
philosophy="Your system, your way.",
|
|
407
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'bash', 'npx', 'uvx', 'process', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
408
|
+
environment={'GENTOO_PROFILE': 'default/linux/amd64/17.1'},
|
|
409
|
+
tags=['pioneer'],
|
|
410
|
+
),
|
|
411
|
+
ToolPersonality(
|
|
412
|
+
name="data_scientist",
|
|
413
|
+
programmer="Data Scientist",
|
|
414
|
+
description="Analyze all the things",
|
|
415
|
+
philosophy="In God we trust. All others must bring data.",
|
|
416
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'jupyter', 'sql_query', 'stats', 'vector_index', 'vector_search', 'agent', 'consensus', 'critic', 'think'],
|
|
417
|
+
environment={'JUPYTER_THEME': 'dark'},
|
|
418
|
+
tags=['general'],
|
|
314
419
|
),
|
|
315
420
|
ToolPersonality(
|
|
316
421
|
name="david",
|
|
317
422
|
programmer="David Heinemeier Hansson",
|
|
318
423
|
description="Rails creator - convention over configuration",
|
|
319
424
|
philosophy="Optimize for programmer happiness.",
|
|
320
|
-
tools=
|
|
321
|
-
environment={
|
|
322
|
-
|
|
323
|
-
ToolPersonality(
|
|
324
|
-
name="taylor",
|
|
325
|
-
programmer="Taylor Otwell",
|
|
326
|
-
description="Laravel creator - PHP artisan",
|
|
327
|
-
philosophy="Love beautiful code? We do too.",
|
|
328
|
-
tools=ESSENTIAL_TOOLS + ["npx", "sql_query", "watch"] + DATABASE_TOOLS,
|
|
329
|
-
environment={"LARAVEL_VERSION": "10"},
|
|
425
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'sql_query', 'watch', 'todo', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
426
|
+
environment={'RAILS_ENV': 'development'},
|
|
427
|
+
tags=['pioneer', 'ai'],
|
|
330
428
|
),
|
|
331
429
|
ToolPersonality(
|
|
332
|
-
name="
|
|
333
|
-
programmer="
|
|
334
|
-
description="
|
|
335
|
-
philosophy="
|
|
336
|
-
tools=
|
|
337
|
-
environment={
|
|
430
|
+
name="demis",
|
|
431
|
+
programmer="Demis Hassabis",
|
|
432
|
+
description="DeepMind co-founder",
|
|
433
|
+
philosophy="Solve intelligence, use it to solve everything else.",
|
|
434
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'vector_index', 'vector_search', 'agent', 'consensus'],
|
|
435
|
+
environment={'JAX_VERSION': '0.4'},
|
|
436
|
+
tags=['pioneer'],
|
|
338
437
|
),
|
|
339
438
|
ToolPersonality(
|
|
340
|
-
name="
|
|
341
|
-
programmer="
|
|
342
|
-
description="
|
|
343
|
-
philosophy="
|
|
344
|
-
tools=
|
|
345
|
-
environment={
|
|
439
|
+
name="dennis",
|
|
440
|
+
programmer="Dennis Ritchie",
|
|
441
|
+
description="C creator - close to the metal",
|
|
442
|
+
philosophy="UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.",
|
|
443
|
+
tools=['bash', 'content_replace', 'diff', 'edit', 'find_files', 'gdb', 'grep', 'process', 'read', 'symbols', 'think', 'tree', 'write'],
|
|
444
|
+
environment={'CC': 'gcc', 'CFLAGS': '-Wall -O2'},
|
|
445
|
+
tags=['languages', 'c', 'unix'],
|
|
346
446
|
),
|
|
347
|
-
# 31-40: Database & Data
|
|
348
447
|
ToolPersonality(
|
|
349
|
-
name="
|
|
350
|
-
programmer="
|
|
351
|
-
description="
|
|
352
|
-
philosophy="
|
|
353
|
-
tools=
|
|
354
|
-
environment={
|
|
448
|
+
name="devops",
|
|
449
|
+
programmer="DevOps Engineer",
|
|
450
|
+
description="Automate everything",
|
|
451
|
+
philosophy="You build it, you run it.",
|
|
452
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'bash', 'npx', 'uvx', 'process', 'process', 'watch', 'todo', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
453
|
+
environment={'CI_CD': 'enabled'},
|
|
454
|
+
tags=['general'],
|
|
355
455
|
),
|
|
356
456
|
ToolPersonality(
|
|
357
|
-
name="
|
|
358
|
-
programmer="
|
|
359
|
-
description="
|
|
360
|
-
philosophy="
|
|
361
|
-
tools=
|
|
362
|
-
environment={
|
|
457
|
+
name="dijkstra",
|
|
458
|
+
programmer="Edsger W. Dijkstra",
|
|
459
|
+
description="Structured programming and correctness",
|
|
460
|
+
philosophy="Simplicity is prerequisite for reliability.",
|
|
461
|
+
tools=['bash', 'coverage', 'edit', 'formatter', 'go_test', 'jest', 'linters', 'mocha', 'model_check', 'pytest', 'read', 'symbols', 'think', 'tree', 'write'],
|
|
462
|
+
environment={'GOTO_ALLOWED': 'false', 'PROOF_REQUIRED': 'true'},
|
|
463
|
+
tags=['academic', 'correctness', 'algorithms'],
|
|
363
464
|
),
|
|
364
465
|
ToolPersonality(
|
|
365
|
-
name="
|
|
366
|
-
programmer="
|
|
367
|
-
description="
|
|
368
|
-
philosophy="
|
|
369
|
-
tools=
|
|
370
|
-
environment={
|
|
466
|
+
name="donald",
|
|
467
|
+
programmer="Donald Knuth",
|
|
468
|
+
description="TeX creator - literate programming",
|
|
469
|
+
philosophy="Premature optimization is the root of all evil.",
|
|
470
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'todo', 'critic'],
|
|
471
|
+
environment={'TEXMFHOME': '~/texmf'},
|
|
472
|
+
tags=['pioneer'],
|
|
473
|
+
),
|
|
474
|
+
ToolPersonality(
|
|
475
|
+
name="douglas",
|
|
476
|
+
programmer="Douglas Crockford",
|
|
477
|
+
description="JSON creator - JavaScript the good parts",
|
|
478
|
+
philosophy="JavaScript has some extraordinarily good parts.",
|
|
479
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'symbols', 'critic', 'search', 'symbols', 'grep', 'git_search'],
|
|
480
|
+
environment={'JSLINT': 'true'},
|
|
481
|
+
tags=['pioneer'],
|
|
371
482
|
),
|
|
372
483
|
ToolPersonality(
|
|
373
484
|
name="dwight",
|
|
374
485
|
programmer="Dwight Merriman",
|
|
375
486
|
description="MongoDB co-creator - document databases",
|
|
376
487
|
philosophy="Build the database you want to use.",
|
|
377
|
-
tools=
|
|
378
|
-
environment={
|
|
488
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'watch', 'todo'],
|
|
489
|
+
environment={'MONGO_VERSION': '6.0'},
|
|
490
|
+
tags=['pioneer', 'database'],
|
|
491
|
+
),
|
|
492
|
+
ToolPersonality(
|
|
493
|
+
name="dylan",
|
|
494
|
+
programmer="Dylan Field",
|
|
495
|
+
description="Figma co-founder",
|
|
496
|
+
philosophy="Design tools should be collaborative.",
|
|
497
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'watch', 'todo', 'rules'],
|
|
498
|
+
environment={'FIGMA_API': 'enabled'},
|
|
499
|
+
tags=['pioneer'],
|
|
379
500
|
),
|
|
380
501
|
ToolPersonality(
|
|
381
502
|
name="edgar",
|
|
382
503
|
programmer="Edgar F. Codd",
|
|
383
504
|
description="Relational model inventor",
|
|
384
505
|
philosophy="Data independence is key.",
|
|
385
|
-
tools=
|
|
386
|
-
environment={
|
|
506
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'critic'],
|
|
507
|
+
environment={'SQL_MODE': 'ANSI'},
|
|
508
|
+
tags=['pioneer'],
|
|
387
509
|
),
|
|
388
510
|
ToolPersonality(
|
|
389
|
-
name="
|
|
390
|
-
programmer="
|
|
391
|
-
description="
|
|
392
|
-
philosophy="
|
|
393
|
-
tools=
|
|
394
|
-
environment={
|
|
511
|
+
name="enterprise",
|
|
512
|
+
programmer="Enterprise Developer",
|
|
513
|
+
description="Process and compliance",
|
|
514
|
+
philosophy="Nobody ever got fired for buying IBM.",
|
|
515
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'critic', 'rules', 'stats', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
516
|
+
environment={'COMPLIANCE': 'SOC2'},
|
|
517
|
+
tags=['general'],
|
|
395
518
|
),
|
|
396
519
|
ToolPersonality(
|
|
397
|
-
name="
|
|
398
|
-
programmer="
|
|
399
|
-
description="
|
|
400
|
-
philosophy="
|
|
401
|
-
tools=
|
|
402
|
-
environment={
|
|
520
|
+
name="evan",
|
|
521
|
+
programmer="Evan You",
|
|
522
|
+
description="Vue.js creator - progressive framework",
|
|
523
|
+
philosophy="Approachable, versatile, performant.",
|
|
524
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'watch', 'symbols', 'todo', 'bash', 'npx', 'uvx', 'process'],
|
|
525
|
+
environment={'VUE_VERSION': '3'},
|
|
526
|
+
tags=['pioneer'],
|
|
403
527
|
),
|
|
404
528
|
ToolPersonality(
|
|
405
|
-
name="
|
|
406
|
-
programmer="
|
|
407
|
-
description="
|
|
408
|
-
philosophy="
|
|
409
|
-
tools=
|
|
410
|
-
environment={
|
|
529
|
+
name="fabrice",
|
|
530
|
+
programmer="Fabrice Bellard",
|
|
531
|
+
description="QEMU & FFmpeg creator",
|
|
532
|
+
philosophy="Small, fast, and elegant code.",
|
|
533
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'process', 'bash', 'npx', 'uvx', 'process'],
|
|
534
|
+
environment={'QEMU_VERSION': '8.0'},
|
|
535
|
+
tags=['pioneer'],
|
|
411
536
|
),
|
|
412
537
|
ToolPersonality(
|
|
413
|
-
name="
|
|
414
|
-
programmer="
|
|
415
|
-
description="
|
|
416
|
-
philosophy="
|
|
417
|
-
tools=
|
|
418
|
-
environment={
|
|
538
|
+
name="frances",
|
|
539
|
+
programmer="Frances E. Allen",
|
|
540
|
+
description="Compiler optimization and parallelization",
|
|
541
|
+
philosophy="Parallel computing is the future.",
|
|
542
|
+
tools=['bash', 'chaos', 'compiler', 'edit', 'gpu_manager', 'grafana', 'logs', 'otel', 'prometheus', 'read', 'slo', 'think', 'tracing', 'tree', 'write'],
|
|
543
|
+
environment={'OPTIMIZATION_LEVEL': 'O3', 'PARALLELISM': 'auto'},
|
|
544
|
+
tags=['compilers', 'optimization', 'parallel'],
|
|
419
545
|
),
|
|
420
546
|
ToolPersonality(
|
|
421
|
-
name="
|
|
422
|
-
programmer="
|
|
423
|
-
description="
|
|
424
|
-
philosophy="
|
|
425
|
-
tools=
|
|
426
|
-
environment={
|
|
547
|
+
name="francois",
|
|
548
|
+
programmer="François Chollet",
|
|
549
|
+
description="Keras creator",
|
|
550
|
+
philosophy="Deep learning for humans.",
|
|
551
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'jupyter', 'watch', 'todo'],
|
|
552
|
+
environment={'KERAS_BACKEND': 'tensorflow'},
|
|
553
|
+
tags=['pioneer'],
|
|
427
554
|
),
|
|
428
|
-
# 41-50: AI & Machine Learning
|
|
429
555
|
ToolPersonality(
|
|
430
|
-
name="
|
|
431
|
-
programmer="
|
|
432
|
-
description="
|
|
433
|
-
philosophy="
|
|
434
|
-
tools=
|
|
435
|
-
environment={
|
|
556
|
+
name="fullstack",
|
|
557
|
+
programmer="Full Stack Developer",
|
|
558
|
+
description="Every tool for every job",
|
|
559
|
+
philosophy="Jack of all trades, master of... well, all trades.",
|
|
560
|
+
tools=['grep', 'sql_search', 'git_search', 'tree', 'read', 'critic', 'think', 'graph_query', 'sql_query', 'watch', 'diff', 'bash', 'consensus', 'jupyter', 'vector_index', 'neovim_edit', 'mcp', 'edit', 'rules', 'todo', 'npx', 'find_files', 'vector_search', 'process', 'uvx', 'search', 'write', 'graph_add', 'symbols', 'agent'],
|
|
561
|
+
environment={'ALL_TOOLS': 'enabled'},
|
|
562
|
+
tags=['general'],
|
|
563
|
+
),
|
|
564
|
+
ToolPersonality(
|
|
565
|
+
name="gabe",
|
|
566
|
+
programmer="Gabe Newell",
|
|
567
|
+
description="Valve founder - Half-Life & Steam",
|
|
568
|
+
philosophy="The easiest way to stop piracy is not by putting antipiracy technology to work. It's by giving those people a service that's better than what they're receiving from the pirates.",
|
|
569
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'process', 'watch', 'todo', 'bash', 'npx', 'uvx', 'process'],
|
|
570
|
+
environment={'STEAM_RUNTIME': '1'},
|
|
571
|
+
tags=['pioneer'],
|
|
436
572
|
),
|
|
437
573
|
ToolPersonality(
|
|
438
574
|
name="geoffrey",
|
|
439
575
|
programmer="Geoffrey Hinton",
|
|
440
576
|
description="Deep learning godfather",
|
|
441
577
|
philosophy="The brain has to work with what it's got.",
|
|
442
|
-
tools=
|
|
443
|
-
environment={
|
|
578
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'vector_index', 'vector_search', 'jupyter'],
|
|
579
|
+
environment={'TF_VERSION': '2.13'},
|
|
580
|
+
tags=['general'],
|
|
444
581
|
),
|
|
445
582
|
ToolPersonality(
|
|
446
|
-
name="
|
|
447
|
-
programmer="
|
|
448
|
-
description="
|
|
449
|
-
philosophy="
|
|
450
|
-
tools=
|
|
451
|
-
environment={
|
|
583
|
+
name="grace",
|
|
584
|
+
programmer="Grace Hopper",
|
|
585
|
+
description="Compiler pioneer and debugging inventor",
|
|
586
|
+
philosophy="The most dangerous phrase in the language is 'We've always done it this way.'",
|
|
587
|
+
tools=['artifact_publish', 'bash', 'ci', 'circleci', 'compiler', 'coverage', 'docker', 'edit', 'formatter', 'github_actions', 'gitlab_ci', 'go_test', 'jenkins', 'jest', 'linters', 'mocha', 'pytest', 'read', 'think', 'tree', 'write'],
|
|
588
|
+
environment={'COMPILER_TOOL': 'cobol-compat', 'DOCKER_REGISTRY': 'ghcr.io'},
|
|
589
|
+
tags=['pioneer', 'compilers', 'pragmatic'],
|
|
452
590
|
),
|
|
453
591
|
ToolPersonality(
|
|
454
|
-
name="
|
|
455
|
-
programmer="
|
|
456
|
-
description="
|
|
457
|
-
philosophy="
|
|
458
|
-
tools=
|
|
459
|
-
environment={
|
|
592
|
+
name="graydon",
|
|
593
|
+
programmer="Graydon Hoare",
|
|
594
|
+
description="Rust creator - memory safety without GC",
|
|
595
|
+
philosophy="Memory safety without garbage collection, concurrency without data races.",
|
|
596
|
+
tools=['bash', 'cargo', 'coverage', 'critic', 'edit', 'formatter', 'gem', 'go_test', 'jest', 'linters', 'mocha', 'multi_edit', 'npx', 'pip', 'process', 'pytest', 'read', 'symbols', 'think', 'todo', 'tree', 'uvx', 'write'],
|
|
597
|
+
environment={'RUST_BACKTRACE': '1', 'CARGO_HOME': '~/.cargo'},
|
|
598
|
+
tags=['languages', 'rust', 'safety'],
|
|
460
599
|
),
|
|
461
600
|
ToolPersonality(
|
|
462
|
-
name="
|
|
463
|
-
programmer="
|
|
464
|
-
description="
|
|
465
|
-
philosophy="
|
|
466
|
-
tools=
|
|
467
|
-
environment={
|
|
601
|
+
name="guido",
|
|
602
|
+
programmer="Guido van Rossum",
|
|
603
|
+
description="Python's BDFL - readability counts",
|
|
604
|
+
philosophy="There should be one-- and preferably only one --obvious way to do it.",
|
|
605
|
+
tools=['agent', 'ast_search', 'bash', 'consensus', 'critic', 'dvc', 'edit', 'feature_store', 'formatter', 'git_search', 'grep', 'jupyter', 'kedro', 'llm', 'mlem', 'mlflow', 'model_registry', 'multi_edit', 'notebook', 'pytest', 'read', 'rules', 'search', 'symbols', 'think', 'tree', 'uvx', 'write'],
|
|
606
|
+
environment={'PYTHONPATH': '.', 'PYTEST_ARGS': '-xvs', 'BLACK_CONFIG': 'pyproject.toml'},
|
|
607
|
+
tags=['languages', 'python', 'readability'],
|
|
608
|
+
),
|
|
609
|
+
ToolPersonality(
|
|
610
|
+
name="guillermo",
|
|
611
|
+
programmer="Guillermo Rauch",
|
|
612
|
+
description="Vercel founder & Next.js creator",
|
|
613
|
+
philosophy="Make the Web. Faster.",
|
|
614
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'watch', 'rules', 'bash', 'npx', 'uvx', 'process'],
|
|
615
|
+
environment={'NEXT_VERSION': '14'},
|
|
616
|
+
tags=['pioneer'],
|
|
617
|
+
),
|
|
618
|
+
ToolPersonality(
|
|
619
|
+
name="hanzo",
|
|
620
|
+
programmer="Hanzo AI Default",
|
|
621
|
+
description="Balanced productivity and quality",
|
|
622
|
+
philosophy="AI-powered development at scale.",
|
|
623
|
+
tools=['agent', 'artifact_publish', 'ast_search', 'bash', 'cargo', 'ci', 'circleci', 'consensus', 'container_build', 'critic', 'diff', 'docker', 'dvc', 'edit', 'feature_store', 'gem', 'gh', 'git_search', 'github_actions', 'gitlab', 'gitlab_ci', 'grep', 'helm', 'jenkins', 'jupyter', 'k8s', 'kedro', 'kubectl', 'kustomize', 'llm', 'minikube', 'mlem', 'mlflow', 'model_registry', 'multi_edit', 'notebook', 'npx', 'pip', 'process', 'read', 'rules', 'search', 'symbols', 'think', 'todo', 'tree', 'uvx', 'watch', 'write'],
|
|
624
|
+
environment={'HANZO_MODE': 'enabled', 'AI_ASSIST': 'true', 'DOCKER_BUILDKIT': '1', 'KUBECONFIG': '~/.kube/config'},
|
|
625
|
+
tags=['default', 'balanced', 'ai'],
|
|
626
|
+
),
|
|
627
|
+
ToolPersonality(
|
|
628
|
+
name="hideo",
|
|
629
|
+
programmer="Hideo Kojima",
|
|
630
|
+
description="Metal Gear creator",
|
|
631
|
+
philosophy="70% of my body is made of movies.",
|
|
632
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'watch', 'critic'],
|
|
633
|
+
environment={'KOJIMA_PRODUCTIONS': 'true'},
|
|
634
|
+
tags=['pioneer'],
|
|
635
|
+
),
|
|
636
|
+
ToolPersonality(
|
|
637
|
+
name="hoare",
|
|
638
|
+
programmer="Tony Hoare",
|
|
639
|
+
description="Algorithms, CSP, and Hoare logic",
|
|
640
|
+
philosophy="Premature optimization is the root of all evil.",
|
|
641
|
+
tools=['bash', 'coverage', 'edit', 'formatter', 'go_test', 'jest', 'linters', 'mocha', 'model_check', 'pytest', 'read', 'symbols', 'think', 'tree', 'write'],
|
|
642
|
+
environment={'PROOF_ASSISTANT': 'coq', 'NULL_REFERENCES': 'banned'},
|
|
643
|
+
tags=['algorithms', 'correctness', 'theory'],
|
|
644
|
+
),
|
|
645
|
+
ToolPersonality(
|
|
646
|
+
name="ian",
|
|
647
|
+
programmer="Ian Murdock",
|
|
648
|
+
description="Debian founder",
|
|
649
|
+
philosophy="Free software, free society.",
|
|
650
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'grep', 'find_files', 'bash', 'process', 'diff', 'todo'],
|
|
651
|
+
environment={'DEBIAN_FRONTEND': 'noninteractive'},
|
|
652
|
+
tags=['pioneer'],
|
|
468
653
|
),
|
|
469
654
|
ToolPersonality(
|
|
470
655
|
name="ilya",
|
|
471
656
|
programmer="Ilya Sutskever",
|
|
472
|
-
description="OpenAI co-founder",
|
|
473
|
-
philosophy="
|
|
474
|
-
tools=
|
|
475
|
-
environment={
|
|
657
|
+
description="OpenAI co-founder - scaling is all you need",
|
|
658
|
+
philosophy="AGI is the goal.",
|
|
659
|
+
tools=['agent', 'ansible', 'aws_s3', 'bash', 'batch', 'cloud_cli', 'consensus', 'critic', 'dvc', 'edit', 'feature_store', 'gpu_manager', 'hf_hub', 'huggingface', 'jupyter', 'kedro', 'kms', 'llm', 'mlem', 'mlflow', 'model_deploy', 'model_registry', 'notebook', 'onnx_convert', 'quantize', 'read', 'secrets_manager', 'symbols', 'terraform', 'think', 'tree', 'uvx', 'write'],
|
|
660
|
+
environment={'OPENAI_API_KEY': '', 'PYTORCH_ENABLE_MPS': '1', 'CUDA_VISIBLE_DEVICES': '0'},
|
|
661
|
+
tags=['ai', 'ml', 'research'],
|
|
476
662
|
),
|
|
477
663
|
ToolPersonality(
|
|
478
|
-
name="
|
|
479
|
-
programmer="
|
|
480
|
-
description="
|
|
481
|
-
philosophy="
|
|
482
|
-
tools=
|
|
483
|
-
environment={
|
|
664
|
+
name="james",
|
|
665
|
+
programmer="James Gosling",
|
|
666
|
+
description="Java creator - write once, run anywhere",
|
|
667
|
+
philosophy="Java is C++ without the guns, knives, and clubs.",
|
|
668
|
+
tools=['bash', 'batch', 'cargo', 'edit', 'gem', 'gradle', 'maven', 'npx', 'pip', 'process', 'read', 'symbols', 'think', 'todo', 'tree', 'uvx', 'write'],
|
|
669
|
+
environment={'JAVA_HOME': '/usr/lib/jvm/java-11-openjdk', 'MAVEN_OPTS': '-Xmx1024m'},
|
|
670
|
+
tags=['languages', 'java', 'enterprise'],
|
|
484
671
|
),
|
|
485
672
|
ToolPersonality(
|
|
486
|
-
name="
|
|
487
|
-
programmer="
|
|
488
|
-
description="
|
|
489
|
-
philosophy="
|
|
490
|
-
tools=
|
|
491
|
-
environment={
|
|
673
|
+
name="jeff_dean",
|
|
674
|
+
programmer="Jeff Dean",
|
|
675
|
+
description="MapReduce & BigTable co-creator",
|
|
676
|
+
philosophy="Design for planet-scale.",
|
|
677
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'vector_index', 'vector_search', 'batch'],
|
|
678
|
+
environment={'HADOOP_HOME': '/opt/hadoop'},
|
|
679
|
+
tags=['pioneer'],
|
|
492
680
|
),
|
|
493
681
|
ToolPersonality(
|
|
494
|
-
name="
|
|
495
|
-
programmer="
|
|
496
|
-
description="
|
|
497
|
-
philosophy="
|
|
498
|
-
tools=
|
|
499
|
-
environment={
|
|
682
|
+
name="jeremy",
|
|
683
|
+
programmer="Jeremy Ashkenas",
|
|
684
|
+
description="CoffeeScript & Backbone creator",
|
|
685
|
+
philosophy="It's just JavaScript.",
|
|
686
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'symbols', 'watch'],
|
|
687
|
+
environment={'COFFEE_VERSION': '2.0'},
|
|
688
|
+
tags=['pioneer'],
|
|
500
689
|
),
|
|
501
690
|
ToolPersonality(
|
|
502
691
|
name="jeremy_howard",
|
|
503
692
|
programmer="Jeremy Howard",
|
|
504
693
|
description="fast.ai founder",
|
|
505
694
|
philosophy="Deep learning should be accessible to all.",
|
|
506
|
-
tools=
|
|
507
|
-
environment={
|
|
695
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'jupyter', 'watch', 'rules'],
|
|
696
|
+
environment={'FASTAI_VERSION': '2.7'},
|
|
697
|
+
tags=['pioneer', 'ai'],
|
|
508
698
|
),
|
|
509
|
-
# 51-60: Security & Cryptography
|
|
510
699
|
ToolPersonality(
|
|
511
|
-
name="
|
|
512
|
-
programmer="
|
|
513
|
-
description="
|
|
514
|
-
philosophy="
|
|
515
|
-
tools=
|
|
516
|
-
environment={
|
|
700
|
+
name="jim_gray",
|
|
701
|
+
programmer="Jim Gray",
|
|
702
|
+
description="Transaction processing pioneer",
|
|
703
|
+
philosophy="The transaction is the unit of work.",
|
|
704
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'batch', 'critic'],
|
|
705
|
+
environment={'ISOLATION_LEVEL': 'SERIALIZABLE'},
|
|
706
|
+
tags=['general'],
|
|
517
707
|
),
|
|
518
708
|
ToolPersonality(
|
|
519
|
-
name="
|
|
520
|
-
programmer="
|
|
521
|
-
description="
|
|
522
|
-
philosophy="
|
|
523
|
-
tools=
|
|
524
|
-
environment={
|
|
709
|
+
name="joe",
|
|
710
|
+
programmer="Joe Armstrong",
|
|
711
|
+
description="Erlang creator",
|
|
712
|
+
philosophy="Let it crash.",
|
|
713
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'process', 'watch', 'critic'],
|
|
714
|
+
environment={'ERL_VERSION': 'OTP-26'},
|
|
715
|
+
tags=['pioneer'],
|
|
525
716
|
),
|
|
526
717
|
ToolPersonality(
|
|
527
|
-
name="
|
|
528
|
-
programmer="
|
|
529
|
-
description="
|
|
530
|
-
philosophy="
|
|
531
|
-
tools=
|
|
532
|
-
environment={
|
|
718
|
+
name="john",
|
|
719
|
+
programmer="John Resig",
|
|
720
|
+
description="jQuery creator - write less, do more",
|
|
721
|
+
philosophy="Do more with less code.",
|
|
722
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'watch', 'symbols', 'search', 'symbols', 'grep', 'git_search'],
|
|
723
|
+
environment={'JQUERY_VERSION': '3.6'},
|
|
724
|
+
tags=['pioneer'],
|
|
533
725
|
),
|
|
534
726
|
ToolPersonality(
|
|
535
|
-
name="
|
|
536
|
-
programmer="
|
|
537
|
-
description="
|
|
538
|
-
philosophy="
|
|
539
|
-
tools=
|
|
540
|
-
environment={
|
|
727
|
+
name="john_carmack",
|
|
728
|
+
programmer="John Carmack",
|
|
729
|
+
description="id Software - Doom & Quake creator",
|
|
730
|
+
philosophy="Focus is a matter of deciding what things you're not going to do.",
|
|
731
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'watch', 'process', 'bash', 'npx', 'uvx', 'process'],
|
|
732
|
+
environment={'OPENGL_VERSION': '4.6'},
|
|
733
|
+
tags=['pioneer'],
|
|
541
734
|
),
|
|
542
735
|
ToolPersonality(
|
|
543
|
-
name="
|
|
544
|
-
programmer="
|
|
545
|
-
description="
|
|
546
|
-
philosophy="
|
|
547
|
-
tools=
|
|
548
|
-
environment={
|
|
736
|
+
name="jonathan",
|
|
737
|
+
programmer="Jonathan Blow",
|
|
738
|
+
description="Braid & The Witness creator",
|
|
739
|
+
philosophy="Optimize for deep, meaningful experiences.",
|
|
740
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'critic', 'watch'],
|
|
741
|
+
environment={'JAI_COMPILER': 'beta'},
|
|
742
|
+
tags=['pioneer', 'ai'],
|
|
549
743
|
),
|
|
550
744
|
ToolPersonality(
|
|
551
|
-
name="
|
|
552
|
-
programmer="
|
|
553
|
-
description="
|
|
554
|
-
philosophy="
|
|
555
|
-
tools=
|
|
556
|
-
environment={
|
|
745
|
+
name="jordan",
|
|
746
|
+
programmer="Jordan Walke",
|
|
747
|
+
description="React creator - declarative UIs",
|
|
748
|
+
philosophy="Learn once, write anywhere.",
|
|
749
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'watch', 'symbols', 'rules', 'bash', 'npx', 'uvx', 'process'],
|
|
750
|
+
environment={'REACT_VERSION': '18'},
|
|
751
|
+
tags=['pioneer'],
|
|
557
752
|
),
|
|
558
753
|
ToolPersonality(
|
|
559
|
-
name="
|
|
560
|
-
programmer="
|
|
561
|
-
description="
|
|
562
|
-
philosophy="
|
|
563
|
-
tools=
|
|
564
|
-
environment={
|
|
754
|
+
name="jose",
|
|
755
|
+
programmer="José Valim",
|
|
756
|
+
description="Elixir creator",
|
|
757
|
+
philosophy="Productive. Reliable. Fast.",
|
|
758
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'watch', 'process', 'todo'],
|
|
759
|
+
environment={'ELIXIR_VERSION': '1.15'},
|
|
760
|
+
tags=['pioneer'],
|
|
565
761
|
),
|
|
566
762
|
ToolPersonality(
|
|
567
|
-
name="
|
|
568
|
-
programmer="
|
|
569
|
-
description="
|
|
570
|
-
philosophy="
|
|
571
|
-
tools=
|
|
572
|
-
environment={
|
|
763
|
+
name="judd",
|
|
764
|
+
programmer="Judd Vinet",
|
|
765
|
+
description="Arch Linux creator",
|
|
766
|
+
philosophy="Keep it simple.",
|
|
767
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'bash', 'npx', 'uvx', 'process', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
768
|
+
environment={'ARCH_VERSION': 'rolling'},
|
|
769
|
+
tags=['pioneer'],
|
|
573
770
|
),
|
|
574
771
|
ToolPersonality(
|
|
575
772
|
name="katie",
|
|
576
773
|
programmer="Katie Moussouris",
|
|
577
774
|
description="Bug bounty pioneer",
|
|
578
775
|
philosophy="Hackers are a resource, not a threat.",
|
|
579
|
-
tools=
|
|
580
|
-
environment={
|
|
581
|
-
|
|
582
|
-
ToolPersonality(
|
|
583
|
-
name="matt_blaze",
|
|
584
|
-
programmer="Matt Blaze",
|
|
585
|
-
description="Cryptographer & security researcher",
|
|
586
|
-
philosophy="Crypto is hard to get right.",
|
|
587
|
-
tools=ESSENTIAL_TOOLS + ["critic", "symbols", "git_search"],
|
|
588
|
-
environment={"CRYPTO_LIBRARY": "nacl"},
|
|
776
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'todo'],
|
|
777
|
+
environment={'BUG_BOUNTY': 'enabled'},
|
|
778
|
+
tags=['general'],
|
|
589
779
|
),
|
|
590
|
-
# 61-70: Gaming & Graphics
|
|
591
780
|
ToolPersonality(
|
|
592
|
-
name="
|
|
593
|
-
programmer="
|
|
594
|
-
description="
|
|
595
|
-
philosophy="
|
|
596
|
-
tools=
|
|
597
|
-
environment={
|
|
781
|
+
name="ken",
|
|
782
|
+
programmer="Ken Thompson",
|
|
783
|
+
description="Unix creator - elegant minimalism",
|
|
784
|
+
philosophy="When in doubt, use brute force.",
|
|
785
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
786
|
+
environment={'PATH': '/usr/local/bin:$PATH'},
|
|
787
|
+
tags=['pioneer'],
|
|
598
788
|
),
|
|
599
789
|
ToolPersonality(
|
|
600
|
-
name="
|
|
601
|
-
programmer="
|
|
602
|
-
description="
|
|
603
|
-
philosophy="A
|
|
604
|
-
tools=
|
|
605
|
-
environment={
|
|
790
|
+
name="lamport",
|
|
791
|
+
programmer="Leslie Lamport",
|
|
792
|
+
description="Distributed systems and TLA+",
|
|
793
|
+
philosophy="A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.",
|
|
794
|
+
tools=['bash', 'chaos', 'container_build', 'docker', 'edit', 'grafana', 'helm', 'k8s', 'kubectl', 'kubernetes', 'kustomize', 'logs', 'minikube', 'model_check', 'otel', 'prometheus', 'read', 'slo', 'think', 'tla_plus', 'tracing', 'tree', 'write'],
|
|
795
|
+
environment={'SPEC_TOOL': 'tla+', 'MODEL_CHECK_TIMEOUT': '300'},
|
|
796
|
+
tags=['distributed', 'correctness', 'theory'],
|
|
606
797
|
),
|
|
607
798
|
ToolPersonality(
|
|
608
|
-
name="
|
|
609
|
-
programmer="
|
|
610
|
-
description="
|
|
611
|
-
philosophy="
|
|
612
|
-
tools=
|
|
613
|
-
environment={
|
|
799
|
+
name="larry",
|
|
800
|
+
programmer="Larry Wall",
|
|
801
|
+
description="Perl creator - there's more than one way to do it",
|
|
802
|
+
philosophy="The three chief virtues of a programmer are laziness, impatience, and hubris.",
|
|
803
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'grep', 'content_replace', 'batch', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
804
|
+
environment={'PERL5LIB': './lib'},
|
|
805
|
+
tags=['pioneer'],
|
|
614
806
|
),
|
|
615
807
|
ToolPersonality(
|
|
616
|
-
name="
|
|
617
|
-
programmer="
|
|
618
|
-
description="
|
|
619
|
-
philosophy="
|
|
620
|
-
tools=
|
|
621
|
-
environment={
|
|
808
|
+
name="lennart",
|
|
809
|
+
programmer="Lennart Poettering",
|
|
810
|
+
description="systemd creator",
|
|
811
|
+
philosophy="Do one thing and do it well... or do everything.",
|
|
812
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'process', 'watch', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
813
|
+
environment={'SYSTEMD_VERSION': '253'},
|
|
814
|
+
tags=['pioneer'],
|
|
622
815
|
),
|
|
623
816
|
ToolPersonality(
|
|
624
|
-
name="
|
|
817
|
+
name="linus",
|
|
818
|
+
programmer="Linus Torvalds",
|
|
819
|
+
description="Linux & Git creator - pragmatic excellence",
|
|
820
|
+
philosophy="Talk is cheap. Show me the code.",
|
|
821
|
+
tools=['bash', 'content_replace', 'critic', 'diff', 'edit', 'find_files', 'gh', 'git_search', 'gitlab', 'grep', 'process', 'read', 'think', 'tree', 'write'],
|
|
822
|
+
environment={'KERNEL_VERSION': '6.0', 'GIT_AUTHOR_NAME': 'Linus Torvalds'},
|
|
823
|
+
tags=['systems', 'linux', 'git'],
|
|
824
|
+
),
|
|
825
|
+
ToolPersonality(
|
|
826
|
+
name="liskov",
|
|
827
|
+
programmer="Barbara Liskov",
|
|
828
|
+
description="Software engineering principles & abstraction",
|
|
829
|
+
philosophy="Abstraction is the key to managing complexity.",
|
|
830
|
+
tools=['bash', 'coverage', 'edit', 'formatter', 'go_test', 'jest', 'linters', 'mocha', 'pytest', 'read', 'symbols', 'think', 'tree', 'write'],
|
|
831
|
+
environment={'SOLID_PRINCIPLES': 'true', 'LISKOV_SUBSTITUTION': 'enforced'},
|
|
832
|
+
tags=['engineering', 'principles', 'oop'],
|
|
833
|
+
),
|
|
834
|
+
ToolPersonality(
|
|
835
|
+
name="margaret",
|
|
836
|
+
programmer="Margaret Hamilton",
|
|
837
|
+
description="Software engineering for mission-critical systems",
|
|
838
|
+
philosophy="There was no choice but to be pioneers.",
|
|
839
|
+
tools=['bash', 'coverage', 'dast', 'dependency_scan', 'edit', 'formatter', 'fuzz', 'go_test', 'jest', 'linters', 'mocha', 'model_check', 'pytest', 'read', 'sast', 'sbom', 'secret_scan', 'sigstore', 'snyk', 'think', 'tree', 'trivy', 'write'],
|
|
840
|
+
environment={'ERROR_HANDLING': 'exhaustive', 'MISSION_CRITICAL': 'true'},
|
|
841
|
+
tags=['engineering', 'reliability', 'space'],
|
|
842
|
+
),
|
|
843
|
+
ToolPersonality(
|
|
844
|
+
name="mark_shuttleworth",
|
|
845
|
+
programmer="Mark Shuttleworth",
|
|
846
|
+
description="Ubuntu founder",
|
|
847
|
+
philosophy="Linux for human beings.",
|
|
848
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'rules', 'bash', 'npx', 'uvx', 'process'],
|
|
849
|
+
environment={'UBUNTU_VERSION': '22.04'},
|
|
850
|
+
tags=['pioneer'],
|
|
851
|
+
),
|
|
852
|
+
ToolPersonality(
|
|
853
|
+
name="markus",
|
|
625
854
|
programmer="Markus Persson",
|
|
626
855
|
description="Minecraft creator - Notch",
|
|
627
856
|
philosophy="Just make games for yourself and try to have fun.",
|
|
628
|
-
tools=
|
|
629
|
-
environment={
|
|
857
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'watch', 'todo', 'process'],
|
|
858
|
+
environment={'LWJGL_VERSION': '3.3'},
|
|
859
|
+
tags=['pioneer'],
|
|
630
860
|
),
|
|
631
861
|
ToolPersonality(
|
|
632
|
-
name="
|
|
633
|
-
programmer="
|
|
634
|
-
description="
|
|
635
|
-
philosophy="
|
|
636
|
-
tools=
|
|
637
|
-
environment={
|
|
862
|
+
name="matei",
|
|
863
|
+
programmer="Matei Zaharia",
|
|
864
|
+
description="Apache Spark creator",
|
|
865
|
+
philosophy="In-memory computing changes everything.",
|
|
866
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'batch', 'process', 'jupyter'],
|
|
867
|
+
environment={'SPARK_MASTER': 'local[*]'},
|
|
868
|
+
tags=['pioneer'],
|
|
638
869
|
),
|
|
639
870
|
ToolPersonality(
|
|
640
|
-
name="
|
|
641
|
-
programmer="
|
|
642
|
-
description="
|
|
643
|
-
philosophy="
|
|
644
|
-
tools=
|
|
645
|
-
environment={
|
|
871
|
+
name="matt",
|
|
872
|
+
programmer="Matt Mullenweg",
|
|
873
|
+
description="WordPress creator - democratize publishing",
|
|
874
|
+
philosophy="Code is poetry.",
|
|
875
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'watch', 'rules', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
876
|
+
environment={'WP_DEBUG': 'true'},
|
|
877
|
+
tags=['pioneer'],
|
|
646
878
|
),
|
|
647
879
|
ToolPersonality(
|
|
648
|
-
name="
|
|
649
|
-
programmer="
|
|
650
|
-
description="
|
|
651
|
-
philosophy="
|
|
652
|
-
tools=
|
|
653
|
-
environment={
|
|
880
|
+
name="matt_blaze",
|
|
881
|
+
programmer="Matt Blaze",
|
|
882
|
+
description="Cryptographer & security researcher",
|
|
883
|
+
philosophy="Crypto is hard to get right.",
|
|
884
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'git_search'],
|
|
885
|
+
environment={'CRYPTO_LIBRARY': 'nacl'},
|
|
886
|
+
tags=['security'],
|
|
654
887
|
),
|
|
655
888
|
ToolPersonality(
|
|
656
|
-
name="
|
|
657
|
-
programmer="
|
|
658
|
-
description="
|
|
659
|
-
philosophy="
|
|
660
|
-
tools=
|
|
661
|
-
environment={
|
|
889
|
+
name="matz",
|
|
890
|
+
programmer="Yukihiro Matsumoto",
|
|
891
|
+
description="Ruby creator - optimize for developer happiness",
|
|
892
|
+
philosophy="Ruby is designed to make programmers happy.",
|
|
893
|
+
tools=['artifact_publish', 'ast_search', 'bash', 'batch', 'ci', 'circleci', 'edit', 'gem', 'git_search', 'github_actions', 'gitlab_ci', 'grep', 'jenkins', 'read', 'search', 'symbols', 'think', 'todo', 'tree', 'write'],
|
|
894
|
+
environment={'RUBY_VERSION': '3.0', 'BUNDLE_PATH': 'vendor/bundle'},
|
|
895
|
+
tags=['languages', 'ruby', 'happiness'],
|
|
662
896
|
),
|
|
663
897
|
ToolPersonality(
|
|
664
|
-
name="
|
|
665
|
-
programmer="
|
|
666
|
-
description="
|
|
667
|
-
philosophy="
|
|
668
|
-
tools=
|
|
669
|
-
environment={
|
|
898
|
+
name="mccarthy",
|
|
899
|
+
programmer="John McCarthy",
|
|
900
|
+
description="AI pioneer and Lisp inventor",
|
|
901
|
+
philosophy="He who refuses to do arithmetic is doomed to talk nonsense.",
|
|
902
|
+
tools=['agent', 'bash', 'consensus', 'critic', 'edit', 'llm', 'notebook', 'read', 'repl', 'symbols', 'think', 'tree', 'write'],
|
|
903
|
+
environment={'LISP_DIALECT': 'common-lisp', 'AI_PARADIGM': 'symbolic'},
|
|
904
|
+
tags=['ai', 'languages', 'pioneer'],
|
|
905
|
+
),
|
|
906
|
+
ToolPersonality(
|
|
907
|
+
name="michael_s",
|
|
908
|
+
programmer="Michael Stonebraker",
|
|
909
|
+
description="PostgreSQL creator - ACID matters",
|
|
910
|
+
philosophy="One size does not fit all in databases.",
|
|
911
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'batch', 'todo'],
|
|
912
|
+
environment={'PGDATA': '/var/lib/postgresql/data'},
|
|
913
|
+
tags=['pioneer'],
|
|
914
|
+
),
|
|
915
|
+
ToolPersonality(
|
|
916
|
+
name="michael_w",
|
|
917
|
+
programmer="Michael Widenius",
|
|
918
|
+
description="MySQL/MariaDB creator",
|
|
919
|
+
philosophy="A small fast database for the web.",
|
|
920
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'watch'],
|
|
921
|
+
environment={'MYSQL_HOME': '/usr/local/mysql'},
|
|
922
|
+
tags=['pioneer'],
|
|
670
923
|
),
|
|
671
|
-
# 71-80: Open Source Leaders
|
|
672
924
|
ToolPersonality(
|
|
673
925
|
name="miguel",
|
|
674
926
|
programmer="Miguel de Icaza",
|
|
675
927
|
description="GNOME & Mono creator",
|
|
676
928
|
philosophy="Open source is about standing on the shoulders of giants.",
|
|
677
|
-
tools=
|
|
678
|
-
environment={
|
|
929
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'todo', 'bash', 'npx', 'uvx', 'process'],
|
|
930
|
+
environment={'MONO_VERSION': '6.12'},
|
|
931
|
+
tags=['pioneer'],
|
|
932
|
+
),
|
|
933
|
+
ToolPersonality(
|
|
934
|
+
name="mike",
|
|
935
|
+
programmer="Mike Cafarella",
|
|
936
|
+
description="Hadoop co-creator",
|
|
937
|
+
philosophy="Storage is cheap, compute is cheap.",
|
|
938
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'batch', 'process'],
|
|
939
|
+
environment={'HADOOP_CONF_DIR': '/etc/hadoop'},
|
|
940
|
+
tags=['pioneer'],
|
|
941
|
+
),
|
|
942
|
+
ToolPersonality(
|
|
943
|
+
name="minimal",
|
|
944
|
+
programmer="Minimalist",
|
|
945
|
+
description="Just the essentials",
|
|
946
|
+
philosophy="Less is more.",
|
|
947
|
+
tools=['bash', 'edit', 'read', 'think', 'tree', 'write'],
|
|
948
|
+
environment={'MINIMAL_MODE': 'true'},
|
|
949
|
+
tags=['minimal', 'focused', 'simple'],
|
|
950
|
+
),
|
|
951
|
+
ToolPersonality(
|
|
952
|
+
name="mitchell",
|
|
953
|
+
programmer="Mitchell Hashimoto",
|
|
954
|
+
description="HashiCorp founder - infrastructure as code",
|
|
955
|
+
philosophy="Automate everything.",
|
|
956
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'bash', 'process', 'watch', 'todo', 'bash', 'npx', 'uvx', 'process'],
|
|
957
|
+
environment={'TERRAFORM_VERSION': '1.0'},
|
|
958
|
+
tags=['pioneer'],
|
|
959
|
+
),
|
|
960
|
+
ToolPersonality(
|
|
961
|
+
name="ml_engineer",
|
|
962
|
+
programmer="ML Engineer",
|
|
963
|
+
description="Production ML systems",
|
|
964
|
+
philosophy="From notebook to production pipeline.",
|
|
965
|
+
tools=['agent', 'ansible', 'aws_s3', 'bash', 'chaos', 'cloud_cli', 'consensus', 'container_build', 'critic', 'docker', 'dvc', 'edit', 'feature_store', 'gpu_manager', 'grafana', 'helm', 'hf_hub', 'huggingface', 'jupyter', 'k8s', 'kedro', 'kms', 'kubectl', 'kustomize', 'llm', 'logs', 'minikube', 'mlem', 'mlflow', 'model_deploy', 'model_registry', 'notebook', 'onnx_convert', 'otel', 'prometheus', 'quantize', 'read', 'secrets_manager', 'slo', 'terraform', 'think', 'tracing', 'tree', 'write'],
|
|
966
|
+
environment={'MLFLOW_TRACKING_URI': 'http://localhost:5000', 'DVC_REMOTE': 's3://ml-artifacts', 'CUDA_VISIBLE_DEVICES': '0,1'},
|
|
967
|
+
tags=['ml', 'mlops', 'production'],
|
|
968
|
+
),
|
|
969
|
+
ToolPersonality(
|
|
970
|
+
name="moxie",
|
|
971
|
+
programmer="Moxie Marlinspike",
|
|
972
|
+
description="Signal creator - privacy for everyone",
|
|
973
|
+
philosophy="Making private communication simple.",
|
|
974
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'rules'],
|
|
975
|
+
environment={'SIGNAL_PROTOCOL': 'true'},
|
|
976
|
+
tags=['pioneer'],
|
|
679
977
|
),
|
|
680
978
|
ToolPersonality(
|
|
681
979
|
name="nat",
|
|
682
980
|
programmer="Nat Friedman",
|
|
683
981
|
description="GitHub CEO & AI entrepreneur",
|
|
684
982
|
philosophy="Developers are the builders of the digital world.",
|
|
685
|
-
tools=
|
|
686
|
-
environment={
|
|
983
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'git_search', 'todo'],
|
|
984
|
+
environment={'GITHUB_TOKEN': 'ghp_...'},
|
|
985
|
+
tags=['ai'],
|
|
986
|
+
),
|
|
987
|
+
ToolPersonality(
|
|
988
|
+
name="palmer",
|
|
989
|
+
programmer="Palmer Luckey",
|
|
990
|
+
description="Oculus founder",
|
|
991
|
+
philosophy="VR is the final medium.",
|
|
992
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'watch', 'process', 'bash', 'npx', 'uvx', 'process'],
|
|
993
|
+
environment={'UNITY_VERSION': '2023.1'},
|
|
994
|
+
tags=['pioneer'],
|
|
687
995
|
),
|
|
688
996
|
ToolPersonality(
|
|
689
997
|
name="patrick",
|
|
690
998
|
programmer="Patrick Volkerding",
|
|
691
999
|
description="Slackware creator",
|
|
692
1000
|
philosophy="Keep it simple, keep it stable.",
|
|
693
|
-
tools=
|
|
694
|
-
environment={
|
|
1001
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
1002
|
+
environment={'SLACKWARE_VERSION': '15.0'},
|
|
1003
|
+
tags=['pioneer'],
|
|
695
1004
|
),
|
|
696
1005
|
ToolPersonality(
|
|
697
|
-
name="
|
|
698
|
-
programmer="
|
|
699
|
-
description="
|
|
700
|
-
philosophy="
|
|
701
|
-
tools=
|
|
702
|
-
environment={
|
|
703
|
-
|
|
704
|
-
ToolPersonality(
|
|
705
|
-
name="mark_shuttleworth",
|
|
706
|
-
programmer="Mark Shuttleworth",
|
|
707
|
-
description="Ubuntu founder",
|
|
708
|
-
philosophy="Linux for human beings.",
|
|
709
|
-
tools=ESSENTIAL_TOOLS + ["todo", "rules"] + BUILD_TOOLS,
|
|
710
|
-
environment={"UBUNTU_VERSION": "22.04"},
|
|
1006
|
+
name="phil",
|
|
1007
|
+
programmer="Phil Zimmermann",
|
|
1008
|
+
description="PGP creator - privacy matters",
|
|
1009
|
+
philosophy="If privacy is outlawed, only outlaws will have privacy.",
|
|
1010
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'content_replace', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
1011
|
+
environment={'GPG_TTY': '$(tty)'},
|
|
1012
|
+
tags=['pioneer'],
|
|
711
1013
|
),
|
|
712
1014
|
ToolPersonality(
|
|
713
|
-
name="
|
|
714
|
-
programmer="
|
|
715
|
-
description="
|
|
716
|
-
philosophy="
|
|
717
|
-
tools=
|
|
718
|
-
environment={
|
|
1015
|
+
name="radia",
|
|
1016
|
+
programmer="Radia Perlman",
|
|
1017
|
+
description="Network protocols and spanning tree",
|
|
1018
|
+
philosophy="The beautiful thing about standards is that there are so many to choose from.",
|
|
1019
|
+
tools=['ansible', 'aws_s3', 'bash', 'cloud_cli', 'container_build', 'docker', 'edit', 'helm', 'k8s', 'kms', 'kubectl', 'kustomize', 'minikube', 'read', 'secrets_manager', 'terraform', 'think', 'tree', 'write'],
|
|
1020
|
+
environment={'NETWORK_PROTOCOL': 'stp', 'ROUTING_ALGORITHM': 'is-is'},
|
|
1021
|
+
tags=['networking', 'protocols', 'infrastructure'],
|
|
719
1022
|
),
|
|
720
1023
|
ToolPersonality(
|
|
721
|
-
name="
|
|
722
|
-
programmer="
|
|
723
|
-
description="
|
|
724
|
-
philosophy="
|
|
725
|
-
tools=
|
|
726
|
-
environment={
|
|
1024
|
+
name="ralph",
|
|
1025
|
+
programmer="Ralph Merkle",
|
|
1026
|
+
description="Merkle trees inventor",
|
|
1027
|
+
philosophy="Cryptography is about mathematical guarantees.",
|
|
1028
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'critic', 'batch'],
|
|
1029
|
+
environment={'HASH_ALGORITHM': 'SHA256'},
|
|
1030
|
+
tags=['pioneer'],
|
|
727
1031
|
),
|
|
728
1032
|
ToolPersonality(
|
|
729
|
-
name="
|
|
730
|
-
programmer="
|
|
731
|
-
description="
|
|
732
|
-
philosophy="
|
|
733
|
-
tools=
|
|
734
|
-
environment={
|
|
1033
|
+
name="rasmus",
|
|
1034
|
+
programmer="Rasmus Lerdorf",
|
|
1035
|
+
description="PHP creator - pragmatic web development",
|
|
1036
|
+
philosophy="I'm not a real programmer. I throw together things until it works.",
|
|
1037
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'sql_query', 'watch', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
1038
|
+
environment={'PHP_VERSION': '8.0'},
|
|
1039
|
+
tags=['pioneer', 'web'],
|
|
735
1040
|
),
|
|
736
1041
|
ToolPersonality(
|
|
737
|
-
name="
|
|
738
|
-
programmer="
|
|
739
|
-
description="
|
|
740
|
-
philosophy="
|
|
741
|
-
tools=
|
|
742
|
-
environment={
|
|
1042
|
+
name="rich",
|
|
1043
|
+
programmer="Rich Hickey",
|
|
1044
|
+
description="Clojure creator - simplicity matters",
|
|
1045
|
+
philosophy="Programming is not about typing... it's about thinking.",
|
|
1046
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'todo', 'batch', 'agent', 'consensus', 'critic', 'think'],
|
|
1047
|
+
environment={'CLOJURE_VERSION': '1.11'},
|
|
1048
|
+
tags=['pioneer'],
|
|
743
1049
|
),
|
|
744
1050
|
ToolPersonality(
|
|
745
|
-
name="
|
|
746
|
-
programmer="
|
|
747
|
-
description="
|
|
748
|
-
philosophy="
|
|
749
|
-
tools=
|
|
750
|
-
environment={
|
|
1051
|
+
name="richard",
|
|
1052
|
+
programmer="Richard Stallman",
|
|
1053
|
+
description="GNU creator - software freedom",
|
|
1054
|
+
philosophy="Free software is a matter of liberty, not price.",
|
|
1055
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'content_replace', 'batch', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
1056
|
+
environment={'EDITOR': 'emacs'},
|
|
1057
|
+
tags=['pioneer'],
|
|
751
1058
|
),
|
|
752
|
-
# 81-90: Modern Innovators
|
|
753
1059
|
ToolPersonality(
|
|
754
|
-
name="
|
|
755
|
-
programmer="
|
|
756
|
-
description="
|
|
757
|
-
philosophy="
|
|
758
|
-
tools=
|
|
759
|
-
environment={
|
|
1060
|
+
name="rob",
|
|
1061
|
+
programmer="Rob Pike",
|
|
1062
|
+
description="Go creator - simplicity and concurrency",
|
|
1063
|
+
philosophy="A little copying is better than a little dependency.",
|
|
1064
|
+
tools=['bash', 'batch', 'cargo', 'diff', 'edit', 'find_files', 'gem', 'go_test', 'grep', 'npx', 'pip', 'process', 'read', 'symbols', 'think', 'tree', 'uvx', 'write'],
|
|
1065
|
+
environment={'GOPATH': '~/go', 'GO111MODULE': 'on'},
|
|
1066
|
+
tags=['languages', 'go', 'concurrency'],
|
|
760
1067
|
),
|
|
761
1068
|
ToolPersonality(
|
|
762
|
-
name="
|
|
763
|
-
programmer="
|
|
764
|
-
description="
|
|
765
|
-
philosophy="
|
|
766
|
-
tools=
|
|
767
|
-
environment={
|
|
1069
|
+
name="ryan",
|
|
1070
|
+
programmer="Ryan Dahl",
|
|
1071
|
+
description="Node.js & Deno creator",
|
|
1072
|
+
philosophy="I/O needs to be done differently.",
|
|
1073
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'uvx', 'watch', 'process', 'bash', 'npx', 'uvx', 'process'],
|
|
1074
|
+
environment={'DENO_DIR': '~/.deno'},
|
|
1075
|
+
tags=['pioneer'],
|
|
768
1076
|
),
|
|
769
1077
|
ToolPersonality(
|
|
770
|
-
name="
|
|
771
|
-
programmer="
|
|
772
|
-
description="
|
|
773
|
-
philosophy="
|
|
774
|
-
tools=
|
|
775
|
-
environment={
|
|
1078
|
+
name="salvatore",
|
|
1079
|
+
programmer="Salvatore Sanfilippo",
|
|
1080
|
+
description="Redis creator - data structures server",
|
|
1081
|
+
philosophy="Simplicity is a great virtue.",
|
|
1082
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'bash', 'watch', 'process', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
1083
|
+
environment={'REDIS_VERSION': '7.0'},
|
|
1084
|
+
tags=['pioneer', 'database'],
|
|
776
1085
|
),
|
|
777
1086
|
ToolPersonality(
|
|
778
|
-
name="
|
|
779
|
-
programmer="
|
|
780
|
-
description="
|
|
781
|
-
philosophy="
|
|
782
|
-
tools=
|
|
783
|
-
environment={
|
|
1087
|
+
name="sanjay",
|
|
1088
|
+
programmer="Sanjay Ghemawat",
|
|
1089
|
+
description="MapReduce & BigTable co-creator",
|
|
1090
|
+
philosophy="Simple abstractions for complex systems.",
|
|
1091
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'sql_query', 'sql_search', 'graph_add', 'graph_query', 'batch', 'process'],
|
|
1092
|
+
environment={'SPARK_HOME': '/opt/spark'},
|
|
1093
|
+
tags=['pioneer'],
|
|
784
1094
|
),
|
|
785
1095
|
ToolPersonality(
|
|
786
|
-
name="
|
|
787
|
-
programmer="
|
|
788
|
-
description="
|
|
789
|
-
philosophy="
|
|
790
|
-
tools=
|
|
791
|
-
environment={
|
|
1096
|
+
name="satoshi",
|
|
1097
|
+
programmer="Satoshi Nakamoto",
|
|
1098
|
+
description="Bitcoin creator - peer-to-peer electronic cash",
|
|
1099
|
+
philosophy="A purely peer-to-peer version of electronic cash.",
|
|
1100
|
+
tools=['bash', 'content_replace', 'critic', 'dast', 'dependency_scan', 'diff', 'edit', 'find_files', 'fuzz', 'gh', 'git_search', 'gitlab', 'grep', 'kms', 'process', 'read', 'sast', 'sbom', 'secret_scan', 'signing', 'sigstore', 'snyk', 'symbols', 'think', 'tree', 'trivy', 'write'],
|
|
1101
|
+
environment={'BITCOIN_NETWORK': 'mainnet', 'RPC_USER': 'bitcoin', 'SIGNING_KEY': ''},
|
|
1102
|
+
tags=['blockchain', 'crypto', 'p2p'],
|
|
792
1103
|
),
|
|
793
1104
|
ToolPersonality(
|
|
794
1105
|
name="sebastian",
|
|
795
1106
|
programmer="Sebastian Thrun",
|
|
796
1107
|
description="Udacity founder & self-driving car pioneer",
|
|
797
1108
|
philosophy="Education should be accessible to all.",
|
|
798
|
-
tools=
|
|
799
|
-
environment={
|
|
1109
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'jupyter', 'watch'],
|
|
1110
|
+
environment={'ROS_VERSION': 'noetic'},
|
|
1111
|
+
tags=['pioneer'],
|
|
800
1112
|
),
|
|
801
1113
|
ToolPersonality(
|
|
802
|
-
name="
|
|
803
|
-
programmer="
|
|
804
|
-
description="
|
|
805
|
-
philosophy="
|
|
806
|
-
tools=
|
|
807
|
-
environment={
|
|
1114
|
+
name="security",
|
|
1115
|
+
programmer="Security Researcher",
|
|
1116
|
+
description="Break it to secure it",
|
|
1117
|
+
philosophy="The only secure system is one that's powered off.",
|
|
1118
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols', 'git_search', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
1119
|
+
environment={'SECURITY_MODE': 'paranoid'},
|
|
1120
|
+
tags=['general'],
|
|
808
1121
|
),
|
|
809
1122
|
ToolPersonality(
|
|
810
|
-
name="
|
|
811
|
-
programmer="
|
|
812
|
-
description="
|
|
813
|
-
philosophy="
|
|
814
|
-
tools=
|
|
815
|
-
environment={
|
|
1123
|
+
name="security_first",
|
|
1124
|
+
programmer="Security Engineer",
|
|
1125
|
+
description="Security-first development",
|
|
1126
|
+
philosophy="Trust nothing, verify everything.",
|
|
1127
|
+
tools=['artifact_publish', 'bash', 'ci', 'circleci', 'coverage', 'dast', 'dependency_scan', 'diff', 'edit', 'formatter', 'fuzz', 'gh', 'git_search', 'github_actions', 'gitlab', 'gitlab_ci', 'go_test', 'jenkins', 'jest', 'kms', 'linters', 'mocha', 'pytest', 'read', 'sast', 'sbom', 'secret_scan', 'secrets_manager', 'signing', 'sigstore', 'snyk', 'think', 'tree', 'trivy', 'write'],
|
|
1128
|
+
environment={'SECURITY_SCAN': 'enabled', 'SIGNING_KEY': '', 'KMS_KEY': '', 'SNYK_TOKEN': ''},
|
|
1129
|
+
tags=['security', 'devsecops', 'compliance'],
|
|
816
1130
|
),
|
|
817
1131
|
ToolPersonality(
|
|
818
|
-
name="
|
|
819
|
-
programmer="
|
|
820
|
-
description="
|
|
821
|
-
philosophy="
|
|
822
|
-
tools=
|
|
823
|
-
environment={
|
|
1132
|
+
name="shigeru",
|
|
1133
|
+
programmer="Shigeru Miyamoto",
|
|
1134
|
+
description="Mario & Zelda creator",
|
|
1135
|
+
philosophy="A delayed game is eventually good, but a rushed game is forever bad.",
|
|
1136
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'watch', 'critic'],
|
|
1137
|
+
environment={'NINTENDO_SDK': 'true'},
|
|
1138
|
+
tags=['pioneer'],
|
|
824
1139
|
),
|
|
825
1140
|
ToolPersonality(
|
|
826
|
-
name="
|
|
827
|
-
programmer="
|
|
828
|
-
description="
|
|
829
|
-
philosophy="
|
|
830
|
-
tools=
|
|
831
|
-
environment={
|
|
1141
|
+
name="sid",
|
|
1142
|
+
programmer="Sid Meier",
|
|
1143
|
+
description="Civilization creator",
|
|
1144
|
+
philosophy="A game is a series of interesting choices.",
|
|
1145
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'watch', 'process'],
|
|
1146
|
+
environment={'GAME_MODE': 'debug'},
|
|
1147
|
+
tags=['pioneer'],
|
|
832
1148
|
),
|
|
833
|
-
# 91-100: Special Configurations
|
|
834
1149
|
ToolPersonality(
|
|
835
|
-
name="
|
|
836
|
-
programmer="
|
|
837
|
-
description="
|
|
838
|
-
philosophy="
|
|
839
|
-
tools=
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
+ AI_TOOLS
|
|
843
|
-
+ SEARCH_TOOLS
|
|
844
|
-
+ DATABASE_TOOLS
|
|
845
|
-
+ BUILD_TOOLS
|
|
846
|
-
+ UNIX_TOOLS
|
|
847
|
-
+ VECTOR_TOOLS
|
|
848
|
-
+ [
|
|
849
|
-
"todo",
|
|
850
|
-
"rules",
|
|
851
|
-
"watch",
|
|
852
|
-
"jupyter",
|
|
853
|
-
"neovim_edit",
|
|
854
|
-
"mcp",
|
|
855
|
-
"consensus",
|
|
856
|
-
]
|
|
857
|
-
)
|
|
858
|
-
),
|
|
859
|
-
environment={"ALL_TOOLS": "enabled"},
|
|
1150
|
+
name="startup",
|
|
1151
|
+
programmer="Startup Founder",
|
|
1152
|
+
description="Move fast and fix things",
|
|
1153
|
+
philosophy="Done is better than perfect.",
|
|
1154
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'agent', 'consensus', 'bash', 'npx', 'uvx', 'process', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
1155
|
+
environment={'STARTUP_MODE': 'hustle'},
|
|
1156
|
+
tags=['general'],
|
|
860
1157
|
),
|
|
861
1158
|
ToolPersonality(
|
|
862
|
-
name="
|
|
863
|
-
programmer="
|
|
864
|
-
description="
|
|
865
|
-
philosophy="
|
|
866
|
-
tools=
|
|
867
|
-
environment={
|
|
1159
|
+
name="taylor",
|
|
1160
|
+
programmer="Taylor Otwell",
|
|
1161
|
+
description="Laravel creator - PHP artisan",
|
|
1162
|
+
philosophy="Love beautiful code? We do too.",
|
|
1163
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'sql_query', 'watch', 'sql_query', 'sql_search', 'graph_add', 'graph_query'],
|
|
1164
|
+
environment={'LARAVEL_VERSION': '10'},
|
|
1165
|
+
tags=['pioneer'],
|
|
868
1166
|
),
|
|
869
1167
|
ToolPersonality(
|
|
870
|
-
name="
|
|
871
|
-
programmer="
|
|
872
|
-
description="
|
|
873
|
-
philosophy="
|
|
874
|
-
tools=
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
+ AI_TOOLS,
|
|
878
|
-
environment={"JUPYTER_THEME": "dark"},
|
|
1168
|
+
name="theo",
|
|
1169
|
+
programmer="Theo de Raadt",
|
|
1170
|
+
description="OpenBSD creator - security by default",
|
|
1171
|
+
philosophy="Shut up and hack.",
|
|
1172
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'diff', 'grep', 'find_files', 'bash', 'process', 'diff'],
|
|
1173
|
+
environment={'OPENBSD_VERSION': '7.3'},
|
|
1174
|
+
tags=['pioneer', 'security'],
|
|
879
1175
|
),
|
|
880
1176
|
ToolPersonality(
|
|
881
|
-
name="
|
|
882
|
-
programmer="
|
|
883
|
-
description="
|
|
884
|
-
philosophy="
|
|
885
|
-
tools=
|
|
886
|
-
environment={
|
|
1177
|
+
name="tim",
|
|
1178
|
+
programmer="Tim Berners-Lee",
|
|
1179
|
+
description="WWW inventor - open web",
|
|
1180
|
+
philosophy="The Web is for everyone.",
|
|
1181
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'npx', 'watch', 'rules', 'search', 'symbols', 'grep', 'git_search'],
|
|
1182
|
+
environment={'W3C_VALIDATOR': 'true'},
|
|
1183
|
+
tags=['pioneer', 'web'],
|
|
887
1184
|
),
|
|
888
1185
|
ToolPersonality(
|
|
889
|
-
name="
|
|
890
|
-
programmer="
|
|
891
|
-
description="
|
|
892
|
-
philosophy="The
|
|
893
|
-
tools=
|
|
894
|
-
environment={
|
|
1186
|
+
name="tim_sweeney",
|
|
1187
|
+
programmer="Tim Sweeney",
|
|
1188
|
+
description="Epic Games founder - Unreal Engine",
|
|
1189
|
+
philosophy="The engine is the game.",
|
|
1190
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'symbols', 'watch', 'process', 'bash', 'npx', 'uvx', 'process'],
|
|
1191
|
+
environment={'UNREAL_ENGINE': '5'},
|
|
1192
|
+
tags=['pioneer', 'gaming'],
|
|
895
1193
|
),
|
|
896
1194
|
ToolPersonality(
|
|
897
|
-
name="
|
|
898
|
-
programmer="
|
|
899
|
-
description="
|
|
900
|
-
philosophy="
|
|
901
|
-
tools=
|
|
902
|
-
environment={
|
|
1195
|
+
name="tom",
|
|
1196
|
+
programmer="Tom Preston-Werner",
|
|
1197
|
+
description="GitHub co-founder & TOML creator",
|
|
1198
|
+
philosophy="Optimize for happiness.",
|
|
1199
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'git_search', 'todo', 'rules'],
|
|
1200
|
+
environment={'GITHUB_ACTIONS': 'true'},
|
|
1201
|
+
tags=['pioneer', 'ai'],
|
|
903
1202
|
),
|
|
904
1203
|
ToolPersonality(
|
|
905
|
-
name="
|
|
906
|
-
programmer="
|
|
907
|
-
description="
|
|
908
|
-
philosophy="
|
|
909
|
-
tools=
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
+ DATABASE_TOOLS,
|
|
913
|
-
environment={"STARTUP_MODE": "hustle"},
|
|
1204
|
+
name="turing",
|
|
1205
|
+
programmer="Alan Turing",
|
|
1206
|
+
description="Computing foundations and AI pioneer",
|
|
1207
|
+
philosophy="We can only see a short distance ahead, but we can see plenty there that needs to be done.",
|
|
1208
|
+
tools=['agent', 'bash', 'consensus', 'critic', 'edit', 'llm', 'model_check', 'notebook', 'read', 'symbols', 'think', 'tree', 'write'],
|
|
1209
|
+
environment={'TURING_COMPLETE': 'true'},
|
|
1210
|
+
tags=['pioneer', 'ai', 'theory'],
|
|
914
1211
|
),
|
|
915
1212
|
ToolPersonality(
|
|
916
|
-
name="
|
|
917
|
-
programmer="
|
|
918
|
-
description="
|
|
919
|
-
philosophy="
|
|
920
|
-
tools=
|
|
921
|
-
environment={
|
|
1213
|
+
name="vitalik",
|
|
1214
|
+
programmer="Vitalik Buterin",
|
|
1215
|
+
description="Ethereum creator - world computer",
|
|
1216
|
+
philosophy="Decentralized world computer.",
|
|
1217
|
+
tools=['ast_search', 'bash', 'cargo', 'dast', 'dependency_scan', 'edit', 'fuzz', 'gem', 'git_search', 'grep', 'hardhat', 'multi_edit', 'npx', 'pip', 'process', 'read', 'sast', 'sbom', 'search', 'secret_scan', 'sigstore', 'snyk', 'symbols', 'think', 'todo', 'tree', 'trivy', 'truffle', 'uvx', 'write'],
|
|
1218
|
+
environment={'ETH_NETWORK': 'mainnet', 'WEB3_PROVIDER': 'https://mainnet.infura.io'},
|
|
1219
|
+
tags=['blockchain', 'ethereum', 'smart-contracts'],
|
|
922
1220
|
),
|
|
923
1221
|
ToolPersonality(
|
|
924
|
-
name="
|
|
925
|
-
programmer="
|
|
926
|
-
description="
|
|
927
|
-
philosophy="
|
|
928
|
-
tools=
|
|
929
|
-
environment={
|
|
1222
|
+
name="whitfield",
|
|
1223
|
+
programmer="Whitfield Diffie",
|
|
1224
|
+
description="Public-key cryptography pioneer",
|
|
1225
|
+
philosophy="Privacy is necessary for an open society.",
|
|
1226
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'critic', 'symbols'],
|
|
1227
|
+
environment={'OPENSSL_VERSION': '3.0'},
|
|
1228
|
+
tags=['general'],
|
|
930
1229
|
),
|
|
931
1230
|
ToolPersonality(
|
|
932
|
-
name="
|
|
933
|
-
programmer="
|
|
934
|
-
description="
|
|
935
|
-
philosophy="
|
|
936
|
-
tools=
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
1231
|
+
name="will",
|
|
1232
|
+
programmer="Will Wright",
|
|
1233
|
+
description="SimCity & The Sims creator",
|
|
1234
|
+
philosophy="Games are a form of communication.",
|
|
1235
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'todo', 'watch', 'process'],
|
|
1236
|
+
environment={'SIMULATION_MODE': 'debug'},
|
|
1237
|
+
tags=['pioneer'],
|
|
1238
|
+
),
|
|
1239
|
+
ToolPersonality(
|
|
1240
|
+
name="wirth",
|
|
1241
|
+
programmer="Niklaus Wirth",
|
|
1242
|
+
description="Language design - Pascal/Modula/Oberon",
|
|
1243
|
+
philosophy="Algorithms + Data Structures = Programs",
|
|
1244
|
+
tools=['bash', 'compiler', 'edit', 'formatter', 'linters', 'read', 'symbols', 'think', 'tree', 'write'],
|
|
1245
|
+
environment={'LANGUAGE_STYLE': 'pascal', 'TYPE_SAFETY': 'strict'},
|
|
1246
|
+
tags=['languages', 'academic', 'design'],
|
|
1247
|
+
),
|
|
1248
|
+
ToolPersonality(
|
|
1249
|
+
name="yann",
|
|
1250
|
+
programmer="Yann LeCun",
|
|
1251
|
+
description="Deep learning pioneer - ConvNets",
|
|
1252
|
+
philosophy="AI is not magic; it's just math and data.",
|
|
1253
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'vector_index', 'vector_search', 'jupyter', 'watch'],
|
|
1254
|
+
environment={'PYTORCH_VERSION': '2.0'},
|
|
1255
|
+
tags=['general'],
|
|
1256
|
+
),
|
|
1257
|
+
ToolPersonality(
|
|
1258
|
+
name="yoshua",
|
|
1259
|
+
programmer="Yoshua Bengio",
|
|
1260
|
+
description="Deep learning pioneer",
|
|
1261
|
+
philosophy="We need to think about AI that helps humanity.",
|
|
1262
|
+
tools=['read', 'write', 'edit', 'tree', 'bash', 'think', 'agent', 'consensus', 'critic', 'think', 'vector_index', 'vector_search', 'jupyter', 'batch'],
|
|
1263
|
+
environment={'THEANO_FLAGS': 'device=cuda'},
|
|
1264
|
+
tags=['general'],
|
|
951
1265
|
),
|
|
952
1266
|
]
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
# Register all personalities
|
|
956
|
-
def register_default_personalities():
|
|
957
|
-
"""Register all default tool personalities."""
|
|
958
|
-
for personality in personalities:
|
|
959
|
-
PersonalityRegistry.register(personality)
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
# Ensure agent tool is enabled when API keys are present
|
|
963
|
-
def ensure_agent_enabled(personality: ToolPersonality) -> ToolPersonality:
|
|
964
|
-
"""Ensure agent tool is enabled if API keys are present."""
|
|
965
|
-
api_keys_present = any(
|
|
966
|
-
os.environ.get(key)
|
|
967
|
-
for key in [
|
|
968
|
-
"OPENAI_API_KEY",
|
|
969
|
-
"ANTHROPIC_API_KEY",
|
|
970
|
-
"GOOGLE_API_KEY",
|
|
971
|
-
"HANZO_API_KEY",
|
|
972
|
-
"GROQ_API_KEY",
|
|
973
|
-
"TOGETHER_API_KEY",
|
|
974
|
-
"MISTRAL_API_KEY",
|
|
975
|
-
"PERPLEXITY_API_KEY",
|
|
976
|
-
]
|
|
977
|
-
)
|
|
978
|
-
|
|
979
|
-
if api_keys_present and "agent" not in personality.tools:
|
|
980
|
-
personality.tools.append("agent")
|
|
981
|
-
if "consensus" not in personality.tools:
|
|
982
|
-
personality.tools.append("consensus")
|
|
983
|
-
|
|
984
|
-
return personality
|