Finam Terminal — это терминальный интерфейс (TUI) для торговли и просмотра рыночных данных через API брокера Финам. Приложение написано на Go и работает прямо в консоли.
Вы можете скачать скомпилированные файлы для вашей операционной системы со страницы Releases:
- Windows (amd64)
- Linux (amd64)
- macOS (Intel & Apple Silicon)
Просто скачайте файл, переименуйте его в finam-terminal (если нужно) и запустите в терминале.
Приложение доступно в GitHub Container Registry:
docker pull ghcr.io/updevru/finam-terminal:latest
docker run -it --rm ghcr.io/updevru/finam-terminal:latestТребуется Go 1.24+.
# Установка зависимостей
go mod tidy
# Сборка исполняемого файла
go build -o finam-terminal.exe main.go
# Запуск
./finam-terminal.exeДля работы с терминалом вам понадобятся:
- Брокерский счет (или демо-счет).
- API Токен.
Полезные ссылки:
- 🏦 Открыть брокерский счет: finam.ru/landings/otkrytie-scheta/
- 🎮 Открыть демо-счет: tradeapi.finam.ru/docs/tokens/
- 🔑 Создать токен: tradeapi.finam.ru/docs/tokens/
Вставьте полученный токен в экран настройки приложения, и он будет сохранен локально (в ~/.finam-cli/.env).
- 🚀 Автоматическая начальная настройка.
- 📊 Просмотр портфеля и списка счетов.
- 📈 Отображение котировок в реальном времени.
- 📝 Возможность совершать сделки.
main.go— Точка входа.api/— Клиент для взаимодействия с Finam Trade API (gRPC).ui/— Компоненты интерфейса (TUI на базеtview).config/— Управление конфигурацией.models/— Общие структуры данных.conductor/— Документация и планы разработки (Conductor Framework).
Конфигурация хранится в файле .env (в папке проекта или в домашней директории пользователя ~/.finam-cli/.env).
| Переменная | Описание | Значение по умолчанию |
|---|---|---|
FINAM_API_TOKEN |
Токен доступа к API | — |
FINAM_GRPC_ADDR |
Адрес gRPC сервера | api.finam.ru:443 |
Запуск всех тестов:
go test ./...Проверка покрытия кода:
go test -coverprofile=coverage.out ./...
go tool cover -func=coverage.outЭтот проект использует Gemini CLI и расширение Conductor для планирования и реализации задач.
- Conductor — это фреймворк для управления состоянием проекта и планирования треков (задач) в папке
conductor/. - Все крупные изменения должны сопровождаться обновлением соответствующих спецификаций (
spec.md) и планов (plan.md).
Основные команды для работы:
- Создание и описание задачи:
/conductor:newTrack "Описание задачи" - Реализация созданной задачи:
/conductor:implement
