ΤΕΥΧΟΣ 003  ·  8 ΟΚΤΩΒΡΙΟΥ 2026 RSS
CodeCity
№ 0003

Serena — το IDE για τον agent, πάνω από language servers

Ανάκτηση και επεξεργασία κώδικα με σημασιολογία, πάνω από language servers. Το εγκαταστήσαμε και το δοκιμάσαμε σε πραγματικό project.

Ρεπο: github.com/oraios/serena · Άδεια: per-component (δες παρακάτω — έχει ψιλά γράμματα) Τελευταία έκδοση στο PyPI: serena-agent 1.7.0

Τι κάνει

Η Serena δίνει στον agent τις ικανότητες ενός IDE πάνω σε κώδικα, μέσω MCP. Αντί για τυφλό search and replace, δουλεύει σε επίπεδο συμβόλου: βρίσκει δηλώσεις, βρίσκει ποιοι καλούν ένα σύμβολο, κάνει rename, αντικαθιστά σώμα συμβόλου, εισάγει πριν/μετά από σύμβολο, βγάζει diagnostics ανά αρχείο. Η βάση είναι οι language servers του LSP (η δωρεάν επιλογή, η προεπιλεγμένη) ή, εναλλακτικά, ένα επί πληρωμή plugin για JetBrains (README).

Στον LSP backend υποστηρίζει πάνω από 40 γλώσσες, από C/C++, Rust, Go, Java, TypeScript μέχρι Zig και Wolfram. Προσθέτει και ένα σύστημα μνήμης για workflows που κρατούν πολλές συνεδρίες, και στη v2 μια διεπαφή REPL όπου ο agent τρέχει Python και συνδυάζει πράξεις σε μία κλήση (tools docs).

Γιατί αξίζει

Είναι το άλλο μισό της ίδιας ιστορίας με το chrome-devtools-mcp. Εκείνο δίνει στον agent τα μάτια του browser· αυτό του δίνει τα χέρια πάνω στο codebase. Όταν το πρόβλημα είναι ο κώδικας και όχι το rendering, η Serena είναι το καθαρό, φθηνό σε tokens εργαλείο — δουλεύει συμβολικά, όχι πάνω σε screenshots, οπότε δεν πληρώνεις όραση που δεν χρειάζεσαι.

Και έχει κάτι που σπάνια βλέπεις: δικό της, δημοσιευμένο evaluation. Ζητά από τον agent να κάνει ~20 καθημερινές εργασίες και μετρά τι προσθέτει η Serena (evaluation docs). Το GitHub API μετρά 30.078 αστέρια και 2.044 forks (2026-10-07), από repo που άνοιξε τον Μάρτιο του 2025 (GitHub API).

Η άδεια θέλει προσοχή, και αυτό το είδα μόνος μου διαβάζοντας το αρχείο. Η Serena δεν είναι μία απλή άδεια. Το αποθετήριο έχει per-component licensing: ο πυρήνας SolidLSP κάτω από MIT, και η εφαρμογή Serena κάτω από GPL-3.0-or-later. Το ίδιο το LICENSE λέει ότι η συσκευασία serena-agent, επειδή ενώνει και τα δύο, υπόκειται ως σύνολο στους όρους της GPL-3.0-or-later. Δεν είναι αναδρομικό: v1.7.0 ήταν η τελευταία έκδοση υπό MIT, και η αλλαγή γίνεται από τη v2. Το GitHub API την αναφέρει ως NOASSERTION, το badge του README και το PyPI metadata λένε MIT — και τα δύο παραπλανητικά. Όποιος στηρίζει εμπορικό προϊόν σε αυτό, διαβάζει πρώτα το LICENSE.

Εγκατάσταση

uv tool install -p 3.13 serena-agent serena init

Προϋπόθεση είναι μόνο το uv. Σημείωση που κρατάω από τον δημιουργό: μην την εγκαταστήσεις από MCP ή plugin marketplace — δίνουν ξεπερασμένες εντολές. Ακολούθησε το Quick Start.

Χρήση σε κάθε LLM

Claude Code

Το καθαρότερο: serena setup claude-code. Χειροκίνητα, για όλα τα projects:

claude mcp add –scope user serena — serena start-mcp-server –context claude-code –project-from-cwd

Η τεκμηρίωση προτείνει και hooks (remind / activate / cleanup / auto-approve) — είναι alpha, αλλά χωρίς αυτά το Claude ξεχνά τα εργαλεία της Serena σε μεγάλες συνεδρίες. Υπάρχει και γνωστό ζήτημα: τα πρόσφατα Opus bias-άρουν προς τα εσωτερικά εργαλεία, οπότε προτείνουν εκκίνηση με claude --system-prompt="$(serena prompts print-cc-system-prompt-override)".

Codex CLI

serena setup codex, ή χειροκίνητα στο ~/.codex/config.toml:

[mcp_servers.serena] startup_timeout_sec = 15 command = “serena” args = [“start-mcp-server”, “–project-from-cwd”, “–context=codex”]

Το Codex app δεν ξεκινά στο φάκελο του project, οπότε ρώτα το στην αρχή να ενεργοποιήσει τον τρέχοντα φάκελο ως project.

Cursor

Δεν έχει δικό του setup target. Στήνεται ως MCP server με το γενικό config, με --context ide ώστε να μειωθούν οι διπλές δυνατότητες με του Cursor (clients docs).

Windsurf

Ίδια λογική με το Cursor: MCP-enabled IDE, γενικό config, --context ide. Δεν είναι δικό της target στη serena setup (που υποστηρίζει claude-code, codebuddy, codex, grok) — αυτό το επιβεβαίωσα τρέχοντας serena setup --help.

Δοκιμή και ετυμηγορία

Το εγκατέστησα πραγματικά. Σε uv 0.12.15 (Windows x86_64):

uv tool install -p 3.13 serena-agent

Πέρασε καθαρά, serena-agent==1.7.0, τρία εκτελέσιμα: serena, serena-agent, serena-hooks. Το serena --version έδωσε Serena 1.7.0, εγκατεστημένο στο ~/.local/bin/serena. Το serena --help έδειξε τις εντολές (init, setup, start-mcp-server, config, memories, …), το serena start-mcp-server --help τις παραμέτρους (default context desktop-app, transport stdio, --project-from-cwd, --language-backend [LSP|JetBrains]), και το serena setup --help τα targets.

Τι δεν δοκίμασα: δεν έτρεξα serena init (είναι διαδραστικό και γράφει global config), δεν έκανα index πραγματικού project με LSP backend, και δεν τη σύνδεσα σε client. Ό,τι γράφω για τη συμπεριφορά μέσα στον agent είναι από την τεκμηρίωση και το δικό της evaluation.

Πού σπάει ή λείπει: το licensing trap (GPL στην εφαρμογή). Η ποιότητα εξαρτάται από τον language server της κάθε γλώσσας — εκεί που ο server είναι αδύναμος, πέφτει και το rename ή το find-implementations. Σε μεγάλα monorepos το κόστος είναι ο χρόνος του indexing ανά project. Και θέλει συνείδηση πλαισίου: η τεκμηρίωση προτείνει --context ide ή claude-code/codex ώστε να μη διπλώνουν εργαλεία με τον client.

Ετυμηγορία: το δυνατότερο εργαλείο της κατηγορίας για δουλειά πάνω σε πραγματικό codebase. Δεν είναι για μικρά text edits — εκεί ο client τα καταφέρνει μόνος. Είναι για cross-file rename, refactor και «ποιος το καλεί αυτό», όπου η εναλλακτική είναι δέκα εύθραυστα βήματα. Ο πήχης είναι το GPL: αν χτίζεις κλειστό προϊόν, μίλα με δικηγόρο πριν το δέσεις.

Στοιχεία / Facts

Source: https://github.com/oraios/serena License: per-component — SolidLSP MIT, εφαρμογή Serena GPL-3.0-or-later, η συσκευασία serena-agent ως σύνολο GPL-3.0-or-later https://github.com/oraios/serena/blob/main/LICENSE (διαβασμένο αυτοπροσώπως, 3470 bytes) GitHub API: NOASSERTION · README badge & PyPI metadata: MIT (παραπλανητικά) Last MIT release: v1.7.0 · GPL από v2 Stars/forks: 30.078 / 2.044, τελευταίο push 2026-10-06 (GitHub API, 2026-10-07) Δημιουργήθηκε: 2025-03-23 · Ανοιχτά issues: 110 · Γλώσσα: Python Έκδοση που εγκαταστάθηκε: serena-agent 1.7.0

Score: 8.5/10

Δοκιμασμένα βήματα / Tested steps: 1. uv tool install -p 3.13 serena-agent (TESTED — serena-agent==1.7.0, 3 executables, exit 0) 2. serena –version / –help (TESTED — Serena 1.7.0) 3. serena start-mcp-server –help (TESTED — args επιβεβαιωμένα) 4. serena setup –help (TESTED — targets: claude-code|codebuddy|codex|grok) 5. serena init / index project / client (NOT tested — διαδραστικό / θέλει client)

Supported clients (από docs): Claude Code, Codex (CLI & App), Claude Desktop, Copilot (VS Code/JetBrains/CLI), Cursor, Windsurf, Gemini-CLI, OpenCode, JetBrains (AI Assistant/Junie), Antigravity, CodeBuddy, Grok, και οποιοσδήποτε MCP client μέσω γενικού config.

Πηγές

1. https://github.com/oraios/serena 2. https://github.com/oraios/serena/blob/main/LICENSE 3. https://oraios.github.io/serena/01-about/060_license.html 4. https://oraios.github.io/serena/02-usage/030_clients.html 5. https://oraios.github.io/serena/01-about/035_tools.html 6. https://pypi.org/project/serena-agent/ 7. https://api.github.com/repos/oraios/serena

—

Serena — το IDE για τον agent, πάνω από language servers · ΑΠΟΤΕΛΕΣΜΑ
ΠΗΓΗ
github.com/oraios/serena