diff --git a/server/app/app.go b/server/app/app.go
new file mode 100644
index 0000000..a016c4b
--- /dev/null
+++ b/server/app/app.go
@@ -0,0 +1,48 @@
+package app
+
+import (
+	"fmt"
+	"log/slog"
+
+	"github.com/iomodo/staff/agent"
+	"github.com/iomodo/staff/config"
+	"github.com/iomodo/staff/git"
+	"github.com/iomodo/staff/tm/git_tm"
+)
+
+// App type defines application global state
+type App struct {
+	logger  *slog.Logger
+	config  *config.Config
+	manager *agent.Manager
+}
+
+// NewApp creates new App
+func NewApp(config *config.Config, logger *slog.Logger) (*App, error) {
+	// Create task manager using config
+	gitInterface := git.New(config, logger)
+	taskManager := git_tm.NewGitTaskManager(gitInterface, config, logger)
+
+	manager, err := agent.NewManager(config, taskManager, logger)
+	if err != nil {
+		return nil, fmt.Errorf("failed to create agent manager: %w", err)
+	}
+
+	return &App{
+		logger:  logger,
+		config:  config,
+		manager: manager,
+	}, nil
+}
+
+func (a *App) Start() {
+	a.manager.StartAllAgents()
+}
+
+func (a *App) Stop() {
+	if a.manager != nil {
+		if err := a.manager.Close(); err != nil {
+			a.logger.Error("Error closing manager", slog.String("error", err.Error()))
+		}
+	}
+}
