1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 poetry-core,
6
7 anthropic,
8 astor,
9 fastapi,
10 google-generativeai,
11 html2image,
12 html2text,
13 inquirer,
14 ipykernel,
15 jupyter-client,
16 litellm,
17 matplotlib,
18 platformdirs,
19 psutil,
20 pyautogui,
21 pydantic,
22 pyperclip,
23 pyyaml,
24 rich,
25 selenium,
26 send2trash,
27 setuptools,
28 shortuuid,
29 six,
30 starlette,
31 tiktoken,
32 tokentrim,
33 toml,
34 typer,
35 uvicorn,
36 webdriver-manager,
37 wget,
38 yaspin,
39
40 nltk,
41}:
42
43buildPythonPackage rec {
44 pname = "open-interpreter";
45 version = "0.4.2";
46 pyproject = true;
47
48 src = fetchFromGitHub {
49 owner = "KillianLucas";
50 repo = "open-interpreter";
51 tag = "v${version}";
52 hash = "sha256-fogCcWAhcrCrrcV0q4oKttkf/GeJaJSZnbgiFxvySs8=";
53 };
54
55 pythonRemoveDeps = [ "git-python" ];
56
57 pythonRelaxDeps = [
58 "anthropic"
59 "google-generativeai"
60 "psutil"
61 "rich"
62 "starlette"
63 "tiktoken"
64 "typer"
65 "yaspin"
66 ];
67
68 build-system = [ poetry-core ];
69
70 dependencies = [
71 anthropic
72 astor
73 fastapi
74 google-generativeai
75 html2image
76 html2text
77 inquirer
78 ipykernel
79 jupyter-client
80 litellm
81 matplotlib
82 platformdirs
83 psutil
84 pyautogui
85 pydantic
86 pyperclip
87 pyyaml
88 rich
89 selenium
90 send2trash
91 setuptools
92 shortuuid
93 six
94 starlette
95 tiktoken
96 tokentrim
97 toml
98 typer
99 uvicorn
100 webdriver-manager
101 wget
102 yaspin
103
104 # marked optional in pyproject.toml but still required?
105 nltk
106 ];
107
108 pythonImportsCheck = [ "interpreter" ];
109
110 # Most tests required network access
111 doCheck = false;
112
113 meta = {
114 description = "OpenAI's Code Interpreter in your terminal, running locally";
115 homepage = "https://github.com/KillianLucas/open-interpreter";
116 license = lib.licenses.mit;
117 changelog = "https://github.com/KillianLucas/open-interpreter/releases/tag/v${version}";
118 maintainers = with lib.maintainers; [ happysalada ];
119 mainProgram = "interpreter";
120 };
121}